From c6f4c830ca31ff234cb2baacbecb628b7926b244 Mon Sep 17 00:00:00 2001 From: Ivan <60302361+depocoder@users.noreply.github.com> Date: Tue, 24 Sep 2024 23:16:30 +0300 Subject: [PATCH] Event search (#11) * add modues event search controller * fix 500 error * fix mypy problems * poetry.lock * remove jinja * black linter * delete static files * fix Azamat's code * delete useless packages * ruff setup --------- Co-authored-by: AzamatKomaev --- backend/app/controllers/home.py | 29 - backend/app/controllers/models.py | 31 + backend/app/controllers/modeus.py | 37 +- backend/app/controllers/netology.py | 15 +- backend/app/docs/__init__.py | 2 +- backend/app/docs/binders.py | 2 +- backend/app/errors.py | 6 +- backend/app/main.py | 3 - .../app/static/blacksheep-favicon-white.png | Bin 5129 -> 0 bytes backend/app/static/favicon.ico | Bin 1150 -> 0 bytes .../images/blacksheep-favicon-white.png | Bin 5129 -> 0 bytes backend/app/static/images/blacksheep.png | Bin 90293 -> 0 bytes backend/app/static/img/portfolio/cabin.png | Bin 36514 -> 0 bytes backend/app/static/img/portfolio/cake.png | Bin 17068 -> 0 bytes backend/app/static/img/portfolio/circus.png | Bin 27984 -> 0 bytes backend/app/static/img/portfolio/game.png | Bin 25896 -> 0 bytes backend/app/static/img/portfolio/safe.png | Bin 19240 -> 0 bytes .../app/static/img/portfolio/submarine.png | Bin 24330 -> 0 bytes backend/app/static/scripts/freelancer.js | 63 - backend/app/static/styles/public.css | 9888 ----------------- .../bootstrap/js/bootstrap.bundle.min.js | 7 - .../bootstrap/js/bootstrap.bundle.min.js.map | 1 - .../vendor/fontawesome-free/css/all.min.css | 5 - .../webfonts/fa-brands-400.eot | Bin 129590 -> 0 bytes .../webfonts/fa-brands-400.svg | 3449 ------ .../webfonts/fa-brands-400.ttf | Bin 129284 -> 0 bytes .../webfonts/fa-brands-400.woff | Bin 87520 -> 0 bytes .../webfonts/fa-brands-400.woff2 | Bin 74524 -> 0 bytes .../webfonts/fa-regular-400.eot | Bin 34394 -> 0 bytes .../webfonts/fa-regular-400.svg | 803 -- .../webfonts/fa-regular-400.ttf | Bin 34096 -> 0 bytes .../webfonts/fa-regular-400.woff | Bin 16804 -> 0 bytes .../webfonts/fa-regular-400.woff2 | Bin 13584 -> 0 bytes .../webfonts/fa-solid-900.eot | Bin 192122 -> 0 bytes .../webfonts/fa-solid-900.svg | 4649 -------- .../webfonts/fa-solid-900.ttf | Bin 191836 -> 0 bytes .../webfonts/fa-solid-900.woff | Bin 98016 -> 0 bytes .../webfonts/fa-solid-900.woff2 | Bin 75408 -> 0 bytes .../vendor/jquery-easing/jquery.easing.js | 166 - .../app/static/vendor/jquery/jquery.min.js | 2 - backend/app/templating.py | 2 +- backend/app/views/home/example.jinja | 18 - backend/app/views/home/index.jinja | 268 - backend/app/views/layout.jinja | 65 - backend/app/views/partial/footer.jinja | 3 - backend/dev.py | 2 +- backend/integration/modeus.py | 40 +- backend/poetry.lock | 618 +- backend/prod.py | 2 +- backend/pyproject.toml | 46 +- backend/setup.cfg | 3 + docker-compose.yaml | 2 + 52 files changed, 471 insertions(+), 19756 deletions(-) delete mode 100644 backend/app/controllers/home.py create mode 100644 backend/app/controllers/models.py delete mode 100755 backend/app/static/blacksheep-favicon-white.png delete mode 100644 backend/app/static/favicon.ico delete mode 100755 backend/app/static/images/blacksheep-favicon-white.png delete mode 100755 backend/app/static/images/blacksheep.png delete mode 100755 backend/app/static/img/portfolio/cabin.png delete mode 100755 backend/app/static/img/portfolio/cake.png delete mode 100755 backend/app/static/img/portfolio/circus.png delete mode 100755 backend/app/static/img/portfolio/game.png delete mode 100755 backend/app/static/img/portfolio/safe.png delete mode 100755 backend/app/static/img/portfolio/submarine.png delete mode 100755 backend/app/static/scripts/freelancer.js delete mode 100755 backend/app/static/styles/public.css delete mode 100755 backend/app/static/vendor/bootstrap/js/bootstrap.bundle.min.js delete mode 100755 backend/app/static/vendor/bootstrap/js/bootstrap.bundle.min.js.map delete mode 100755 backend/app/static/vendor/fontawesome-free/css/all.min.css delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-brands-400.eot delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-brands-400.svg delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-brands-400.ttf delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-brands-400.woff delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-brands-400.woff2 delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-regular-400.eot delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-regular-400.svg delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-regular-400.ttf delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-regular-400.woff delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-regular-400.woff2 delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-solid-900.eot delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-solid-900.svg delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-solid-900.ttf delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-solid-900.woff delete mode 100755 backend/app/static/vendor/fontawesome-free/webfonts/fa-solid-900.woff2 delete mode 100755 backend/app/static/vendor/jquery-easing/jquery.easing.js delete mode 100755 backend/app/static/vendor/jquery/jquery.min.js delete mode 100644 backend/app/views/home/example.jinja delete mode 100644 backend/app/views/home/index.jinja delete mode 100755 backend/app/views/layout.jinja delete mode 100644 backend/app/views/partial/footer.jinja diff --git a/backend/app/controllers/home.py b/backend/app/controllers/home.py deleted file mode 100644 index 88a6926..0000000 --- a/backend/app/controllers/home.py +++ /dev/null @@ -1,29 +0,0 @@ -"""Home controller.""" - -from blacksheep import Response -from blacksheep.server.controllers import Controller, get - -# class Home(Controller): -# """Home Controller.""" -# -# @get() -# def index(self) -> Response: -# """Index page.""" -# # Since the @get() decorator is used without arguments, the URL path -# # is by default "/" -# -# # Since the view function is called without parameters, the name is -# # obtained from the calling request handler: 'index', -# # -> /views/home/index.jinja -# return self.view() -# -# @get(None) -# def example(self) -> Response: -# """Example view.""" -# # Since the @get() decorator is used explicitly with None, the URL path -# # is obtained from the method name: "/example" -# -# # Since the view function is called without parameters, the name is -# # obtained from the calling request handler: 'example', -# # -> /views/home/example.jinja -# return self.view() diff --git a/backend/app/controllers/models.py b/backend/app/controllers/models.py new file mode 100644 index 0000000..defc00e --- /dev/null +++ b/backend/app/controllers/models.py @@ -0,0 +1,31 @@ +from datetime import datetime + +from pydantic import BaseModel, Field + + +class NetologyCreds(BaseModel): + """Netology creds.""" + + username: str + password: str + + +class ModeusCreds(BaseModel): + """Modeus creds.""" + + username: str + password: str + + +""" +{"size":500,"timeMin":"2024-09-23T00:00:00+03:00","timeMax":"2024-09-29T23:59:59+03:00","attendeePersonId":["d69c87c8-aece-4f39-b6a2-7b467b968211"]} +_""" + + +class ModeusSearchEvents(BaseModel): + """Modeus search events body.""" + + size: int + time_min: datetime = Field(alias="timeMin") + time_max: datetime = Field(alias="timeMax") + attendee_person_id: list[str] = Field(alias="attendeePersonId") diff --git a/backend/app/controllers/modeus.py b/backend/app/controllers/modeus.py index cfab22d..9b582fa 100644 --- a/backend/app/controllers/modeus.py +++ b/backend/app/controllers/modeus.py @@ -5,22 +5,20 @@ from typing import Optional from blacksheep import Response -from blacksheep.server.bindings import FromJson +from blacksheep.server.bindings import FromJson, FromHeader from blacksheep.server.controllers import Controller, post -from integration import modeus -from integration.exceptions import ModeusError -from pydantic import BaseModel from requests import RequestException +from integration import modeus +from integration.exceptions import ModeusError +from . import models -class ModeusCreds(BaseModel): - """Modeus creds.""" - username: str - password: str +class FromAuthorizationHeader(FromHeader[str]): + name = "Authorization" -class NetologyController(Controller): +class ModeusController(Controller): """Controller for Modeus API.""" @classmethod @@ -34,7 +32,7 @@ def class_name(cls) -> str: return "Modeus" @post() - async def get_modeus_cookies(self, item: FromJson[ModeusCreds]) -> Response: + async def get_modeus_cookies(self, item: FromJson[models.ModeusCreds]) -> Response: """ Auth in Modeus and return cookies. """ @@ -44,3 +42,22 @@ async def get_modeus_cookies(self, item: FromJson[ModeusCreds]) -> Response: ) except (RequestException, ModeusError) as exception: return self.json({"error": f"can't authenticate {exception}"}, status=400) + + @post("/events/") + async def get_modeus_events( + self, + auth: FromAuthorizationHeader, + item: FromJson[models.ModeusSearchEvents], + ) -> Response: + """ + Get events from Modeus. + """ + try: + jwt = auth.value.split()[1] + return self.json(await modeus.get_events(jwt, item.value)) + except IndexError as exception: + return self.json( + {"error": f"cannot parse authorization header {exception}"}, + ) + except (RequestException, ModeusError) as exception: + return self.json({"error": f"can't authenticate {exception}"}, status=400) diff --git a/backend/app/controllers/netology.py b/backend/app/controllers/netology.py index f5c4e6e..a13c013 100644 --- a/backend/app/controllers/netology.py +++ b/backend/app/controllers/netology.py @@ -7,16 +7,10 @@ from blacksheep import Response from blacksheep.server.bindings import FromJson from blacksheep.server.controllers import Controller, post -from integration import netology -from pydantic import BaseModel from requests import RequestException - -class NetologyCreds(BaseModel): - """Netology creds.""" - - username: str - password: str +from integration import netology +from . import models class NetologyController(Controller): @@ -33,7 +27,10 @@ def class_name(cls) -> str: return "Netology" @post() - async def get_netology_cookies(self, item: FromJson[NetologyCreds]) -> Response: + async def get_netology_cookies( + self, + item: FromJson[models.NetologyCreds], + ) -> Response: """ Auth in Netology and return cookies. """ diff --git a/backend/app/docs/__init__.py b/backend/app/docs/__init__.py index 05f948f..c91b5e0 100644 --- a/backend/app/docs/__init__.py +++ b/backend/app/docs/__init__.py @@ -9,7 +9,7 @@ from app.settings import Settings from blacksheep import Application from blacksheep.server.openapi.v3 import OpenAPIHandler -from openapidocs.v3 import Info # type: ignore[import-untyped] +from openapidocs.v3 import Info def configure_docs(app: Application, settings: Settings) -> None: diff --git a/backend/app/docs/binders.py b/backend/app/docs/binders.py index 168d179..462aca5 100644 --- a/backend/app/docs/binders.py +++ b/backend/app/docs/binders.py @@ -4,7 +4,7 @@ from app.binders import PageOptionsBinder from blacksheep.server.openapi.v3 import OpenAPIHandler -from openapidocs.v3 import ( # type: ignore[import-untyped] +from openapidocs.v3 import ( Parameter, ParameterLocation, Schema, diff --git a/backend/app/errors.py b/backend/app/errors.py index b451085..96caa91 100644 --- a/backend/app/errors.py +++ b/backend/app/errors.py @@ -14,7 +14,9 @@ def configure_error_handlers(app: Application) -> None: async def not_found_handler( - app: Application, request: Request, exception: Exception + app: Application, + request: Request, + exception: Exception, ) -> Response: return text(str(exception) or "Not found", 404) @@ -37,5 +39,5 @@ async def accepted(*args: Any) -> Response: UnauthorizedException: unauthorized, ForbiddenException: forbidden, AcceptedException: accepted, - } + }, ) diff --git a/backend/app/main.py b/backend/app/main.py index 8b8ea5d..51971b9 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -7,7 +7,6 @@ from app.errors import configure_error_handlers from app.services import configure_services from app.settings import Settings, load_settings -from app.templating import configure_templating from blacksheep import Application from rodi import Container @@ -21,11 +20,9 @@ def configure_application( show_error_details=settings.app.show_error_details, ) - app.serve_files("app/static") configure_error_handlers(app) configure_authentication(app, settings) configure_docs(app, settings) - configure_templating(app, settings) return app diff --git a/backend/app/static/blacksheep-favicon-white.png b/backend/app/static/blacksheep-favicon-white.png deleted file mode 100755 index 242d8d04cf6751a4c8aea9788ffe990a2b96d8cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5129 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 g0R;jQ1sG_&`sI^4 ziXZeQu)10(5sg+-SKr>r3Q#D}%+V}voYM1ARtAIgDvj`21q7TC0gYIb|L_9=U5_q9 zm&(oIS+%~?`@Mj$%S+Gd zd56=ZmfsNH;o)KQ=_!(df#KTi@n0>VyC;{wZ%|fOk850ZqNKESa{7OF1V)CGp8MJG jskAhP7mOn-eRsrkd3zl^!4-nQNCZ-nSBF-}ngst3NPzw% diff --git a/backend/app/static/favicon.ico b/backend/app/static/favicon.ico deleted file mode 100644 index 38ef7781a5426bfbb39549db5cd3bd3918169f6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 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 g0R;jQ1sG_&`sI^4 ziXZeQu)10(5sg+-SKr>r3Q#D}%+V}voYM1ARtAIgDvj`21q7TC0gYIb|L_9=U5_q9 zm&(oIS+%~?`@Mj$%S+Gd zd56=ZmfsNH;o)KQ=_!(df#KTi@n0>VyC;{wZ%|fOk850ZqNKESa{7OF1V)CGp8MJG jskAhP7mOn-eRsrkd3zl^!4-nQNCZ-nSBF-}ngst3NPzw% diff --git a/backend/app/static/images/blacksheep.png b/backend/app/static/images/blacksheep.png deleted file mode 100755 index 86c2afe47671cc77e002d45fc347ccb7b4c9b4a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90293 zcmZs?1yCHz_XbKJK=42ocMVQ(cUW8&4IX51cL^HYWswkkv7iBhYX}RAOOW91?hcQ8 z@Bdfz>eZXtsj2Qc^KGB6&*`2%rzc8XRSpZC1RVhZ0ZTz%Mgsu>G2-QXW_NP6`gSBj@*+h0kC2v)yFC~|%HGu6PSY9;cBb+In^9T1nmT~JoLudw z?47Kf9OCIMU&IOi5tsCEw{~(x&~P#XySh73sk?$bP2HW6qtJC;B-H+qkO8}yyV^Lr z+c-HQD8D>SW$ENf_5Z>*b+mXXdVv3b{>_cb%!lg#107y_g&D+jnw>8DrQdD%3A*~QZERD

^Pf=58n}z%K0T2l~D`b3V{%D zaEqVyUp!3cbOpxe*b+bo1{wCnpqu)?kVL@4*>|vao(Oe8(4eE{c=-Pz2 NC<0S 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%0D;YH!c>rC*0P9mur*bng1n)-Py7;2}4DRLf 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 X*CR^A@&#Uy2>9q|KGmpFw~zThFg-Z3 diff --git a/backend/app/static/img/portfolio/cabin.png b/backend/app/static/img/portfolio/cabin.png deleted file mode 100755 index c64c59ea79f2afa29e6af30aded8845da09251ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36514 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 diff --git a/backend/app/static/img/portfolio/cake.png b/backend/app/static/img/portfolio/cake.png deleted file mode 100755 index a16c3fe72ecdfc662147d431d6d73717452271e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17068 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

    5AA<|qF(mZW-B05m1%K(qtDHfA?;A9#2V|=bR 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 V>1;j74KN8!T0%j*RP^1){{=#B-(mm& diff --git a/backend/app/static/img/portfolio/circus.png b/backend/app/static/img/portfolio/circus.png deleted file mode 100755 index b3f5142e8405456f156392eae2427ef281adda77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27984 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 diff --git a/backend/app/static/img/portfolio/game.png b/backend/app/static/img/portfolio/game.png deleted file mode 100755 index 85420e8bbc16098bf26b4ee63bde0e91a19d1f2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25896 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 cz>% diff --git a/backend/app/static/img/portfolio/safe.png b/backend/app/static/img/portfolio/safe.png deleted file mode 100755 index 445942c707af53210931f9f4f99f6d3cb69e5d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19240 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
    w==XB0?3|p=#`o%NsudE(E-U#KS3Snw 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 o>ir+C;RN10sIS0&a;p 100) { - $('.scroll-to-top').fadeIn(); - } else { - $('.scroll-to-top').fadeOut(); - } - }); - - // Closes responsive menu when a scroll trigger link is clicked - $('.js-scroll-trigger').click(function() { - $('.navbar-collapse').collapse('hide'); - }); - - // Activate scrollspy to add active class to navbar items on scroll - $('body').scrollspy({ - target: '#mainNav', - offset: 80 - }); - - // Collapse Navbar - var navbarCollapse = function() { - if ($("#mainNav").offset().top > 100) { - $("#mainNav").addClass("navbar-shrink"); - } else { - $("#mainNav").removeClass("navbar-shrink"); - } - }; - // Collapse now if page is not at top - navbarCollapse(); - // Collapse the navbar when page is scrolled - $(window).scroll(navbarCollapse); - - // Floating label headings for the contact form - $(function() { - $("body").on("input propertychange", ".floating-label-form-group", function(e) { - $(this).toggleClass("floating-label-form-group-with-value", !!$(e.target).val()); - }).on("focus", ".floating-label-form-group", function() { - $(this).addClass("floating-label-form-group-with-focus"); - }).on("blur", ".floating-label-form-group", function() { - $(this).removeClass("floating-label-form-group-with-focus"); - }); - }); - -})(jQuery); // End of use strict diff --git a/backend/app/static/styles/public.css b/backend/app/static/styles/public.css deleted file mode 100755 index a1a180f..0000000 --- a/backend/app/static/styles/public.css +++ /dev/null @@ -1,9888 +0,0 @@ -/*! - * Start Bootstrap - Freelancer v5.1.3 (https://startbootstrap.com/template-overviews/freelancer) - * Copyright 2013-2019 Start Bootstrap - * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-freelancer/blob/master/LICENSE) - */ - -/*! - * Bootstrap v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -:root { - --blue: #007bff; - --indigo: #6610f2; - --purple: #6f42c1; - --pink: #e83e8c; - --red: #dc3545; - --orange: #fd7e14; - --yellow: #ffc107; - --green: #28a745; - --teal: #1abc9c; - --cyan: #17a2b8; - --white: #fff; - --gray: #6c757d; - --gray-dark: #343a40; - --primary: #1abc9c; - --secondary: #2c3e50; - --success: #28a745; - --info: #17a2b8; - --warning: #ffc107; - --danger: #dc3545; - --light: #f8f9fa; - --dark: #343a40; - --breakpoint-xs: 0; - --breakpoint-sm: 576px; - --breakpoint-md: 768px; - --breakpoint-lg: 992px; - --breakpoint-xl: 1200px; - --font-family-sans-serif: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; -} - -*, -*::before, -*::after { - box-sizing: border-box; -} - -html { - font-family: sans-serif; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { - display: block; -} - -body { - margin: 0; - font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #212529; - text-align: left; - background-color: #fff; -} - -[tabindex="-1"]:focus { - outline: 0 !important; -} - -hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} - -h1, h2, h3, h4, h5, h6 { - margin-top: 0; - margin-bottom: 0.5rem; -} - -p { - margin-top: 0; - margin-bottom: 1rem; -} - -abbr[title], -abbr[data-original-title] { - text-decoration: underline; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; - -webkit-text-decoration-skip-ink: none; - text-decoration-skip-ink: none; -} - -address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; -} - -ol, -ul, -dl { - margin-top: 0; - margin-bottom: 1rem; -} - -ol ol, -ul ul, -ol ul, -ul ol { - margin-bottom: 0; -} - -dt { - font-weight: 700; -} - -dd { - margin-bottom: .5rem; - margin-left: 0; -} - -blockquote { - margin: 0 0 1rem; -} - -b, -strong { - font-weight: bolder; -} - -small { - font-size: 80%; -} - -sub, -sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} - -sub { - bottom: -.25em; -} - -sup { - top: -.5em; -} - -a { - color: #1abc9c; - text-decoration: none; - background-color: transparent; -} - -a:hover { - color: #117964; - text-decoration: underline; -} - -a:not([href]):not([tabindex]) { - color: inherit; - text-decoration: none; -} - -a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus { - color: inherit; - text-decoration: none; -} - -a:not([href]):not([tabindex]):focus { - outline: 0; -} - -pre, -code, -kbd, -samp { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - font-size: 1em; -} - -pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; -} - -figure { - margin: 0 0 1rem; -} - -img { - vertical-align: middle; - border-style: none; -} - -svg { - overflow: hidden; - vertical-align: middle; -} - -table { - border-collapse: collapse; -} - -caption { - padding-top: 0.75rem; - padding-bottom: 0.75rem; - color: #6c757d; - text-align: left; - caption-side: bottom; -} - -th { - text-align: inherit; -} - -label { - display: inline-block; - margin-bottom: 0.5rem; -} - -button { - border-radius: 0; -} - -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} - -input, -button, -select, -optgroup, -textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -button, -input { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -select { - word-wrap: normal; -} - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -button:not(:disabled), -[type="button"]:not(:disabled), -[type="reset"]:not(:disabled), -[type="submit"]:not(:disabled) { - cursor: pointer; -} - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; -} - -input[type="radio"], -input[type="checkbox"] { - box-sizing: border-box; - padding: 0; -} - -input[type="date"], -input[type="time"], -input[type="datetime-local"], -input[type="month"] { - -webkit-appearance: listbox; -} - -textarea { - overflow: auto; - resize: vertical; -} - -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} - -legend { - display: block; - width: 100%; - max-width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - color: inherit; - white-space: normal; -} - -progress { - vertical-align: baseline; -} - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -[type="search"] { - outline-offset: -2px; - -webkit-appearance: none; -} - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; -} - -output { - display: inline-block; -} - -summary { - display: list-item; - cursor: pointer; -} - -template { - display: none; -} - -[hidden] { - display: none !important; -} - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6 { - margin-bottom: 0.5rem; - font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-weight: 700; - line-height: 1.2; -} - -h1, .h1 { - font-size: 2.5rem; -} - -h2, .h2 { - font-size: 2rem; -} - -h3, .h3 { - font-size: 1.75rem; -} - -h4, .h4 { - font-size: 1.5rem; -} - -h5, .h5 { - font-size: 1.25rem; -} - -h6, .h6 { - font-size: 1rem; -} - -.lead { - font-size: 1.5rem; - font-weight: 300; -} - -.display-1 { - font-size: 6rem; - font-weight: 300; - line-height: 1.2; -} - -.display-2 { - font-size: 5.5rem; - font-weight: 300; - line-height: 1.2; -} - -.display-3 { - font-size: 4.5rem; - font-weight: 300; - line-height: 1.2; -} - -.display-4 { - font-size: 3.5rem; - font-weight: 300; - line-height: 1.2; -} - -hr { - margin-top: 1rem; - margin-bottom: 1rem; - border: 0; - border-top: 0.125rem solid rgba(0, 0, 0, 0.1); -} - -small, -.small { - font-size: 80%; - font-weight: 400; -} - -mark, -.mark { - padding: 0.2em; - background-color: #fcf8e3; -} - -.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: 0.5rem; -} - -.initialism { - font-size: 90%; - text-transform: uppercase; -} - -.blockquote { - margin-bottom: 1rem; - font-size: 1.25rem; -} - -.blockquote-footer { - display: block; - font-size: 80%; - color: #6c757d; -} - -.blockquote-footer::before { - content: "\2014\00A0"; -} - -.img-fluid { - max-width: 100%; - height: auto; -} - -.img-thumbnail { - padding: 0.25rem; - background-color: #fff; - border: 0.125rem solid #dee2e6; - border-radius: 0.5rem; - max-width: 100%; - height: auto; -} - -.figure { - display: inline-block; -} - -.figure-img { - margin-bottom: 0.5rem; - line-height: 1; -} - -.figure-caption { - font-size: 90%; - color: #6c757d; -} - -code { - font-size: 87.5%; - color: #e83e8c; - word-break: break-word; -} - -a > code { - color: inherit; -} - -kbd { - padding: 0.2rem 0.4rem; - font-size: 87.5%; - color: #fff; - background-color: #212529; - border-radius: 0.25rem; -} - -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; -} - -pre { - display: block; - font-size: 87.5%; - color: #212529; -} - -pre code { - font-size: inherit; - color: inherit; - word-break: normal; -} - -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} - -.container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 576px) { - .container { - max-width: 540px; - } -} - -@media (min-width: 768px) { - .container { - max-width: 720px; - } -} - -@media (min-width: 992px) { - .container { - max-width: 960px; - } -} - -@media (min-width: 1200px) { - .container { - max-width: 1140px; - } -} - -.container-fluid { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -.row { - display: flex; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} - -.no-gutters { - margin-right: 0; - margin-left: 0; -} - -.no-gutters > .col, -.no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} - -.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, -.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, -.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, -.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, -.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, -.col-xl-auto { - position: relative; - width: 100%; - padding-right: 15px; - padding-left: 15px; -} - -.col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; -} - -.col-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; -} - -.col-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; -} - -.col-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; -} - -.col-3 { - flex: 0 0 25%; - max-width: 25%; -} - -.col-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; -} - -.col-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; -} - -.col-6 { - flex: 0 0 50%; - max-width: 50%; -} - -.col-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; -} - -.col-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; -} - -.col-9 { - flex: 0 0 75%; - max-width: 75%; -} - -.col-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; -} - -.col-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; -} - -.col-12 { - flex: 0 0 100%; - max-width: 100%; -} - -.order-first { - order: -1; -} - -.order-last { - order: 13; -} - -.order-0 { - order: 0; -} - -.order-1 { - order: 1; -} - -.order-2 { - order: 2; -} - -.order-3 { - order: 3; -} - -.order-4 { - order: 4; -} - -.order-5 { - order: 5; -} - -.order-6 { - order: 6; -} - -.order-7 { - order: 7; -} - -.order-8 { - order: 8; -} - -.order-9 { - order: 9; -} - -.order-10 { - order: 10; -} - -.order-11 { - order: 11; -} - -.order-12 { - order: 12; -} - -.offset-1 { - margin-left: 8.33333%; -} - -.offset-2 { - margin-left: 16.66667%; -} - -.offset-3 { - margin-left: 25%; -} - -.offset-4 { - margin-left: 33.33333%; -} - -.offset-5 { - margin-left: 41.66667%; -} - -.offset-6 { - margin-left: 50%; -} - -.offset-7 { - margin-left: 58.33333%; -} - -.offset-8 { - margin-left: 66.66667%; -} - -.offset-9 { - margin-left: 75%; -} - -.offset-10 { - margin-left: 83.33333%; -} - -.offset-11 { - margin-left: 91.66667%; -} - -@media (min-width: 576px) { - .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-sm-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .col-sm-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-sm-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .col-sm-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-sm-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .col-sm-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-sm-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .col-sm-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-sm-first { - order: -1; - } - .order-sm-last { - order: 13; - } - .order-sm-0 { - order: 0; - } - .order-sm-1 { - order: 1; - } - .order-sm-2 { - order: 2; - } - .order-sm-3 { - order: 3; - } - .order-sm-4 { - order: 4; - } - .order-sm-5 { - order: 5; - } - .order-sm-6 { - order: 6; - } - .order-sm-7 { - order: 7; - } - .order-sm-8 { - order: 8; - } - .order-sm-9 { - order: 9; - } - .order-sm-10 { - order: 10; - } - .order-sm-11 { - order: 11; - } - .order-sm-12 { - order: 12; - } - .offset-sm-0 { - margin-left: 0; - } - .offset-sm-1 { - margin-left: 8.33333%; - } - .offset-sm-2 { - margin-left: 16.66667%; - } - .offset-sm-3 { - margin-left: 25%; - } - .offset-sm-4 { - margin-left: 33.33333%; - } - .offset-sm-5 { - margin-left: 41.66667%; - } - .offset-sm-6 { - margin-left: 50%; - } - .offset-sm-7 { - margin-left: 58.33333%; - } - .offset-sm-8 { - margin-left: 66.66667%; - } - .offset-sm-9 { - margin-left: 75%; - } - .offset-sm-10 { - margin-left: 83.33333%; - } - .offset-sm-11 { - margin-left: 91.66667%; - } -} - -@media (min-width: 768px) { - .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-md-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .col-md-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-md-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .col-md-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .col-md-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-md-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .col-md-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-md-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .col-md-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .col-md-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-md-first { - order: -1; - } - .order-md-last { - order: 13; - } - .order-md-0 { - order: 0; - } - .order-md-1 { - order: 1; - } - .order-md-2 { - order: 2; - } - .order-md-3 { - order: 3; - } - .order-md-4 { - order: 4; - } - .order-md-5 { - order: 5; - } - .order-md-6 { - order: 6; - } - .order-md-7 { - order: 7; - } - .order-md-8 { - order: 8; - } - .order-md-9 { - order: 9; - } - .order-md-10 { - order: 10; - } - .order-md-11 { - order: 11; - } - .order-md-12 { - order: 12; - } - .offset-md-0 { - margin-left: 0; - } - .offset-md-1 { - margin-left: 8.33333%; - } - .offset-md-2 { - margin-left: 16.66667%; - } - .offset-md-3 { - margin-left: 25%; - } - .offset-md-4 { - margin-left: 33.33333%; - } - .offset-md-5 { - margin-left: 41.66667%; - } - .offset-md-6 { - margin-left: 50%; - } - .offset-md-7 { - margin-left: 58.33333%; - } - .offset-md-8 { - margin-left: 66.66667%; - } - .offset-md-9 { - margin-left: 75%; - } - .offset-md-10 { - margin-left: 83.33333%; - } - .offset-md-11 { - margin-left: 91.66667%; - } -} - -@media (min-width: 992px) { - .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-lg-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .col-lg-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-lg-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .col-lg-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-lg-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .col-lg-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-lg-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .col-lg-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-lg-first { - order: -1; - } - .order-lg-last { - order: 13; - } - .order-lg-0 { - order: 0; - } - .order-lg-1 { - order: 1; - } - .order-lg-2 { - order: 2; - } - .order-lg-3 { - order: 3; - } - .order-lg-4 { - order: 4; - } - .order-lg-5 { - order: 5; - } - .order-lg-6 { - order: 6; - } - .order-lg-7 { - order: 7; - } - .order-lg-8 { - order: 8; - } - .order-lg-9 { - order: 9; - } - .order-lg-10 { - order: 10; - } - .order-lg-11 { - order: 11; - } - .order-lg-12 { - order: 12; - } - .offset-lg-0 { - margin-left: 0; - } - .offset-lg-1 { - margin-left: 8.33333%; - } - .offset-lg-2 { - margin-left: 16.66667%; - } - .offset-lg-3 { - margin-left: 25%; - } - .offset-lg-4 { - margin-left: 33.33333%; - } - .offset-lg-5 { - margin-left: 41.66667%; - } - .offset-lg-6 { - margin-left: 50%; - } - .offset-lg-7 { - margin-left: 58.33333%; - } - .offset-lg-8 { - margin-left: 66.66667%; - } - .offset-lg-9 { - margin-left: 75%; - } - .offset-lg-10 { - margin-left: 83.33333%; - } - .offset-lg-11 { - margin-left: 91.66667%; - } -} - -@media (min-width: 1200px) { - .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: 100%; - } - .col-xl-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .col-xl-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-xl-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .col-xl-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; - } - .col-xl-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .col-xl-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; - } - .col-xl-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .col-xl-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; - } - .order-xl-first { - order: -1; - } - .order-xl-last { - order: 13; - } - .order-xl-0 { - order: 0; - } - .order-xl-1 { - order: 1; - } - .order-xl-2 { - order: 2; - } - .order-xl-3 { - order: 3; - } - .order-xl-4 { - order: 4; - } - .order-xl-5 { - order: 5; - } - .order-xl-6 { - order: 6; - } - .order-xl-7 { - order: 7; - } - .order-xl-8 { - order: 8; - } - .order-xl-9 { - order: 9; - } - .order-xl-10 { - order: 10; - } - .order-xl-11 { - order: 11; - } - .order-xl-12 { - order: 12; - } - .offset-xl-0 { - margin-left: 0; - } - .offset-xl-1 { - margin-left: 8.33333%; - } - .offset-xl-2 { - margin-left: 16.66667%; - } - .offset-xl-3 { - margin-left: 25%; - } - .offset-xl-4 { - margin-left: 33.33333%; - } - .offset-xl-5 { - margin-left: 41.66667%; - } - .offset-xl-6 { - margin-left: 50%; - } - .offset-xl-7 { - margin-left: 58.33333%; - } - .offset-xl-8 { - margin-left: 66.66667%; - } - .offset-xl-9 { - margin-left: 75%; - } - .offset-xl-10 { - margin-left: 83.33333%; - } - .offset-xl-11 { - margin-left: 91.66667%; - } -} - -.table { - width: 100%; - margin-bottom: 1rem; - color: #212529; -} - -.table th, -.table td { - padding: 0.75rem; - vertical-align: top; - border-top: 0.125rem solid #dee2e6; -} - -.table thead th { - vertical-align: bottom; - border-bottom: 0.25rem solid #dee2e6; -} - -.table tbody + tbody { - border-top: 0.25rem solid #dee2e6; -} - -.table-sm th, -.table-sm td { - padding: 0.3rem; -} - -.table-bordered { - border: 0.125rem solid #dee2e6; -} - -.table-bordered th, -.table-bordered td { - border: 0.125rem solid #dee2e6; -} - -.table-bordered thead th, -.table-bordered thead td { - border-bottom-width: 0.25rem; -} - -.table-borderless th, -.table-borderless td, -.table-borderless thead th, -.table-borderless tbody + tbody { - border: 0; -} - -.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(0, 0, 0, 0.05); -} - -.table-hover tbody tr:hover { - color: #212529; - background-color: rgba(0, 0, 0, 0.075); -} - -.table-primary, -.table-primary > th, -.table-primary > td { - background-color: #bfece3; -} - -.table-primary th, -.table-primary td, -.table-primary thead th, -.table-primary tbody + tbody { - border-color: #88dccc; -} - -.table-hover .table-primary:hover { - background-color: #abe6da; -} - -.table-hover .table-primary:hover > td, -.table-hover .table-primary:hover > th { - background-color: #abe6da; -} - -.table-secondary, -.table-secondary > th, -.table-secondary > td { - background-color: #c4c9ce; -} - -.table-secondary th, -.table-secondary td, -.table-secondary thead th, -.table-secondary tbody + tbody { - border-color: #919ba4; -} - -.table-hover .table-secondary:hover { - background-color: #b6bcc2; -} - -.table-hover .table-secondary:hover > td, -.table-hover .table-secondary:hover > th { - background-color: #b6bcc2; -} - -.table-success, -.table-success > th, -.table-success > td { - background-color: #c3e6cb; -} - -.table-success th, -.table-success td, -.table-success thead th, -.table-success tbody + tbody { - border-color: #8fd19e; -} - -.table-hover .table-success:hover { - background-color: #b1dfbb; -} - -.table-hover .table-success:hover > td, -.table-hover .table-success:hover > th { - background-color: #b1dfbb; -} - -.table-info, -.table-info > th, -.table-info > td { - background-color: #bee5eb; -} - -.table-info th, -.table-info td, -.table-info thead th, -.table-info tbody + tbody { - border-color: #86cfda; -} - -.table-hover .table-info:hover { - background-color: #abdde5; -} - -.table-hover .table-info:hover > td, -.table-hover .table-info:hover > th { - background-color: #abdde5; -} - -.table-warning, -.table-warning > th, -.table-warning > td { - background-color: #ffeeba; -} - -.table-warning th, -.table-warning td, -.table-warning thead th, -.table-warning tbody + tbody { - border-color: #ffdf7e; -} - -.table-hover .table-warning:hover { - background-color: #ffe8a1; -} - -.table-hover .table-warning:hover > td, -.table-hover .table-warning:hover > th { - background-color: #ffe8a1; -} - -.table-danger, -.table-danger > th, -.table-danger > td { - background-color: #f5c6cb; -} - -.table-danger th, -.table-danger td, -.table-danger thead th, -.table-danger tbody + tbody { - border-color: #ed969e; -} - -.table-hover .table-danger:hover { - background-color: #f1b0b7; -} - -.table-hover .table-danger:hover > td, -.table-hover .table-danger:hover > th { - background-color: #f1b0b7; -} - -.table-light, -.table-light > th, -.table-light > td { - background-color: #fdfdfe; -} - -.table-light th, -.table-light td, -.table-light thead th, -.table-light tbody + tbody { - border-color: #fbfcfc; -} - -.table-hover .table-light:hover { - background-color: #ececf6; -} - -.table-hover .table-light:hover > td, -.table-hover .table-light:hover > th { - background-color: #ececf6; -} - -.table-dark, -.table-dark > th, -.table-dark > td { - background-color: #c6c8ca; -} - -.table-dark th, -.table-dark td, -.table-dark thead th, -.table-dark tbody + tbody { - border-color: #95999c; -} - -.table-hover .table-dark:hover { - background-color: #b9bbbe; -} - -.table-hover .table-dark:hover > td, -.table-hover .table-dark:hover > th { - background-color: #b9bbbe; -} - -.table-active, -.table-active > th, -.table-active > td { - background-color: rgba(0, 0, 0, 0.075); -} - -.table-hover .table-active:hover { - background-color: rgba(0, 0, 0, 0.075); -} - -.table-hover .table-active:hover > td, -.table-hover .table-active:hover > th { - background-color: rgba(0, 0, 0, 0.075); -} - -.table .thead-dark th { - color: #fff; - background-color: #343a40; - border-color: #454d55; -} - -.table .thead-light th { - color: #495057; - background-color: #e9ecef; - border-color: #dee2e6; -} - -.table-dark { - color: #fff; - background-color: #343a40; -} - -.table-dark th, -.table-dark td, -.table-dark thead th { - border-color: #454d55; -} - -.table-dark.table-bordered { - border: 0; -} - -.table-dark.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(255, 255, 255, 0.05); -} - -.table-dark.table-hover tbody tr:hover { - color: #fff; - background-color: rgba(255, 255, 255, 0.075); -} - -@media (max-width: 575.98px) { - .table-responsive-sm { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-sm > .table-bordered { - border: 0; - } -} - -@media (max-width: 767.98px) { - .table-responsive-md { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-md > .table-bordered { - border: 0; - } -} - -@media (max-width: 991.98px) { - .table-responsive-lg { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-lg > .table-bordered { - border: 0; - } -} - -@media (max-width: 1199.98px) { - .table-responsive-xl { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - } - .table-responsive-xl > .table-bordered { - border: 0; - } -} - -.table-responsive { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; -} - -.table-responsive > .table-bordered { - border: 0; -} - -.form-control { - display: block; - width: 100%; - height: calc(1.5em + 0.75rem + 0.25rem); - padding: 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fff; - background-clip: padding-box; - border: 0.125rem solid #ced4da; - border-radius: 0.5rem; - transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .form-control { - transition: none; - } -} - -.form-control::-ms-expand { - background-color: transparent; - border: 0; -} - -.form-control:focus { - color: #495057; - background-color: #fff; - border-color: #6bebd1; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.form-control::-webkit-input-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control::-moz-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control:-ms-input-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control::-ms-input-placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control::placeholder { - color: #6c757d; - opacity: 1; -} - -.form-control:disabled, .form-control[readonly] { - background-color: #e9ecef; - opacity: 1; -} - -select.form-control:focus::-ms-value { - color: #495057; - background-color: #fff; -} - -.form-control-file, -.form-control-range { - display: block; - width: 100%; -} - -.col-form-label { - padding-top: calc(0.375rem + 0.125rem); - padding-bottom: calc(0.375rem + 0.125rem); - margin-bottom: 0; - font-size: inherit; - line-height: 1.5; -} - -.col-form-label-lg { - padding-top: calc(0.5rem + 0.125rem); - padding-bottom: calc(0.5rem + 0.125rem); - font-size: 1.25rem; - line-height: 1.5; -} - -.col-form-label-sm { - padding-top: calc(0.25rem + 0.125rem); - padding-bottom: calc(0.25rem + 0.125rem); - font-size: 0.875rem; - line-height: 1.5; -} - -.form-control-plaintext { - display: block; - width: 100%; - padding-top: 0.375rem; - padding-bottom: 0.375rem; - margin-bottom: 0; - line-height: 1.5; - color: #212529; - background-color: transparent; - border: solid transparent; - border-width: 0.125rem 0; -} - -.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { - padding-right: 0; - padding-left: 0; -} - -.form-control-sm { - height: calc(1.5em + 0.5rem + 0.25rem); - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.25rem; -} - -.form-control-lg { - height: calc(1.5em + 1rem + 0.25rem); - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.75rem; -} - -select.form-control[size], select.form-control[multiple] { - height: auto; -} - -textarea.form-control { - height: auto; -} - -.form-group { - margin-bottom: 1rem; -} - -.form-text { - display: block; - margin-top: 0.25rem; -} - -.form-row { - display: flex; - flex-wrap: wrap; - margin-right: -5px; - margin-left: -5px; -} - -.form-row > .col, -.form-row > [class*="col-"] { - padding-right: 5px; - padding-left: 5px; -} - -.form-check { - position: relative; - display: block; - padding-left: 1.25rem; -} - -.form-check-input { - position: absolute; - margin-top: 0.3rem; - margin-left: -1.25rem; -} - -.form-check-input:disabled ~ .form-check-label { - color: #6c757d; -} - -.form-check-label { - margin-bottom: 0; -} - -.form-check-inline { - display: inline-flex; - align-items: center; - padding-left: 0; - margin-right: 0.75rem; -} - -.form-check-inline .form-check-input { - position: static; - margin-top: 0; - margin-right: 0.3125rem; - margin-left: 0; -} - -.valid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 80%; - color: #28a745; -} - -.valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(40, 167, 69, 0.9); - border-radius: 0.5rem; -} - -.was-validated .form-control:valid, .form-control.is-valid { - border-color: #28a745; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat: no-repeat; - background-position: center right calc(0.375em + 0.1875rem); - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .form-control:valid:focus, .form-control.is-valid:focus { - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.was-validated .form-control:valid ~ .valid-feedback, -.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback, -.form-control.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); -} - -.was-validated .custom-select:valid, .custom-select.is-valid { - border-color: #28a745; - padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.was-validated .custom-select:valid ~ .valid-feedback, -.was-validated .custom-select:valid ~ .valid-tooltip, .custom-select.is-valid ~ .valid-feedback, -.custom-select.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .form-control-file:valid ~ .valid-feedback, -.was-validated .form-control-file:valid ~ .valid-tooltip, .form-control-file.is-valid ~ .valid-feedback, -.form-control-file.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { - color: #28a745; -} - -.was-validated .form-check-input:valid ~ .valid-feedback, -.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, -.form-check-input.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { - color: #28a745; -} - -.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { - border-color: #28a745; -} - -.was-validated .custom-control-input:valid ~ .valid-feedback, -.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback, -.custom-control-input.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { - border-color: #34ce57; - background-color: #34ce57; -} - -.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #28a745; -} - -.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { - border-color: #28a745; -} - -.was-validated .custom-file-input:valid ~ .valid-feedback, -.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback, -.custom-file-input.is-valid ~ .valid-tooltip { - display: block; -} - -.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); -} - -.invalid-feedback { - display: none; - width: 100%; - margin-top: 0.25rem; - font-size: 80%; - color: #dc3545; -} - -.invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - max-width: 100%; - padding: 0.25rem 0.5rem; - margin-top: .1rem; - font-size: 0.875rem; - line-height: 1.5; - color: #fff; - background-color: rgba(220, 53, 69, 0.9); - border-radius: 0.5rem; -} - -.was-validated .form-control:invalid, .form-control.is-invalid { - border-color: #dc3545; - padding-right: calc(1.5em + 0.75rem); - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"); - background-repeat: no-repeat; - background-position: center right calc(0.375em + 0.1875rem); - background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.was-validated .form-control:invalid ~ .invalid-feedback, -.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback, -.form-control.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { - padding-right: calc(1.5em + 0.75rem); - background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); -} - -.was-validated .custom-select:invalid, .custom-select.is-invalid { - border-color: #dc3545; - padding-right: calc((1em + 0.75rem) * 3 / 4 + 1.75rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); -} - -.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.was-validated .custom-select:invalid ~ .invalid-feedback, -.was-validated .custom-select:invalid ~ .invalid-tooltip, .custom-select.is-invalid ~ .invalid-feedback, -.custom-select.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .form-control-file:invalid ~ .invalid-feedback, -.was-validated .form-control-file:invalid ~ .invalid-tooltip, .form-control-file.is-invalid ~ .invalid-feedback, -.form-control-file.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { - color: #dc3545; -} - -.was-validated .form-check-input:invalid ~ .invalid-feedback, -.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, -.form-check-input.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { - color: #dc3545; -} - -.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { - border-color: #dc3545; -} - -.was-validated .custom-control-input:invalid ~ .invalid-feedback, -.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback, -.custom-control-input.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { - border-color: #e4606d; - background-color: #e4606d; -} - -.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { - border-color: #dc3545; -} - -.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { - border-color: #dc3545; -} - -.was-validated .custom-file-input:invalid ~ .invalid-feedback, -.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback, -.custom-file-input.is-invalid ~ .invalid-tooltip { - display: block; -} - -.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); -} - -.form-inline { - display: flex; - flex-flow: row wrap; - align-items: center; -} - -.form-inline .form-check { - width: 100%; -} - -@media (min-width: 576px) { - .form-inline label { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; - } - .form-inline .form-group { - display: flex; - flex: 0 0 auto; - flex-flow: row wrap; - align-items: center; - margin-bottom: 0; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-plaintext { - display: inline-block; - } - .form-inline .input-group, - .form-inline .custom-select { - width: auto; - } - .form-inline .form-check { - display: flex; - align-items: center; - justify-content: center; - width: auto; - padding-left: 0; - } - .form-inline .form-check-input { - position: relative; - flex-shrink: 0; - margin-top: 0; - margin-right: 0.25rem; - margin-left: 0; - } - .form-inline .custom-control { - align-items: center; - justify-content: center; - } - .form-inline .custom-control-label { - margin-bottom: 0; - } -} - -.btn { - display: inline-block; - font-weight: 400; - color: #212529; - text-align: center; - vertical-align: middle; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-color: transparent; - border: 0.125rem solid transparent; - padding: 0.375rem 0.75rem; - font-size: 1rem; - line-height: 1.5; - border-radius: 0.5rem; - 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) { - .btn { - transition: none; - } -} - -.btn:hover { - color: #212529; - text-decoration: none; -} - -.btn:focus, .btn.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.btn.disabled, .btn:disabled { - opacity: 0.65; -} - -a.btn.disabled, -fieldset:disabled a.btn { - pointer-events: none; -} - -.btn-primary { - color: #fff; - background-color: #1abc9c; - border-color: #1abc9c; -} - -.btn-primary:hover { - color: #fff; - background-color: #159a80; - border-color: #148f77; -} - -.btn-primary:focus, .btn-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(60, 198, 171, 0.5); -} - -.btn-primary.disabled, .btn-primary:disabled { - color: #fff; - background-color: #1abc9c; - border-color: #1abc9c; -} - -.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, -.show > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #148f77; - border-color: #12846e; -} - -.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, -.show > .btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(60, 198, 171, 0.5); -} - -.btn-secondary { - color: #fff; - background-color: #2c3e50; - border-color: #2c3e50; -} - -.btn-secondary:hover { - color: #fff; - background-color: #1e2b37; - border-color: #1a252f; -} - -.btn-secondary:focus, .btn-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -.btn-secondary.disabled, .btn-secondary:disabled { - color: #fff; - background-color: #2c3e50; - border-color: #2c3e50; -} - -.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, -.show > .btn-secondary.dropdown-toggle { - color: #fff; - background-color: #1a252f; - border-color: #151e27; -} - -.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, -.show > .btn-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(76, 91, 106, 0.5); -} - -.btn-success { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-success:hover { - color: #fff; - background-color: #218838; - border-color: #1e7e34; -} - -.btn-success:focus, .btn-success.focus { - box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); -} - -.btn-success.disabled, .btn-success:disabled { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, -.show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #1e7e34; - border-color: #1c7430; -} - -.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, -.show > .btn-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); -} - -.btn-info { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-info:hover { - color: #fff; - background-color: #138496; - border-color: #117a8b; -} - -.btn-info:focus, .btn-info.focus { - box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); -} - -.btn-info.disabled, .btn-info:disabled { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, -.show > .btn-info.dropdown-toggle { - color: #fff; - background-color: #117a8b; - border-color: #10707f; -} - -.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, -.show > .btn-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); -} - -.btn-warning { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-warning:hover { - color: #212529; - background-color: #e0a800; - border-color: #d39e00; -} - -.btn-warning:focus, .btn-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); -} - -.btn-warning.disabled, .btn-warning:disabled { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, -.show > .btn-warning.dropdown-toggle { - color: #212529; - background-color: #d39e00; - border-color: #c69500; -} - -.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, -.show > .btn-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); -} - -.btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-danger:hover { - color: #fff; - background-color: #c82333; - border-color: #bd2130; -} - -.btn-danger:focus, .btn-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); -} - -.btn-danger.disabled, .btn-danger:disabled { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, -.show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #bd2130; - border-color: #b21f2d; -} - -.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, -.show > .btn-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); -} - -.btn-light { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-light:hover { - color: #212529; - background-color: #e2e6ea; - border-color: #dae0e5; -} - -.btn-light:focus, .btn-light.focus { - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); -} - -.btn-light.disabled, .btn-light:disabled { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, -.show > .btn-light.dropdown-toggle { - color: #212529; - background-color: #dae0e5; - border-color: #d3d9df; -} - -.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, -.show > .btn-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); -} - -.btn-dark { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-dark:hover { - color: #fff; - background-color: #23272b; - border-color: #1d2124; -} - -.btn-dark:focus, .btn-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); -} - -.btn-dark.disabled, .btn-dark:disabled { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, -.show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #1d2124; - border-color: #171a1d; -} - -.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, -.show > .btn-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); -} - -.btn-outline-primary { - color: #1abc9c; - border-color: #1abc9c; -} - -.btn-outline-primary:hover { - color: #fff; - background-color: #1abc9c; - border-color: #1abc9c; -} - -.btn-outline-primary:focus, .btn-outline-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.5); -} - -.btn-outline-primary.disabled, .btn-outline-primary:disabled { - color: #1abc9c; - background-color: transparent; -} - -.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, -.show > .btn-outline-primary.dropdown-toggle { - color: #fff; - background-color: #1abc9c; - border-color: #1abc9c; -} - -.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.5); -} - -.btn-outline-secondary { - color: #2c3e50; - border-color: #2c3e50; -} - -.btn-outline-secondary:hover { - color: #fff; - background-color: #2c3e50; - border-color: #2c3e50; -} - -.btn-outline-secondary:focus, .btn-outline-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.5); -} - -.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { - color: #2c3e50; - background-color: transparent; -} - -.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, -.show > .btn-outline-secondary.dropdown-toggle { - color: #fff; - background-color: #2c3e50; - border-color: #2c3e50; -} - -.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-secondary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.5); -} - -.btn-outline-success { - color: #28a745; - border-color: #28a745; -} - -.btn-outline-success:hover { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-outline-success:focus, .btn-outline-success.focus { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.btn-outline-success.disabled, .btn-outline-success:disabled { - color: #28a745; - background-color: transparent; -} - -.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, -.show > .btn-outline-success.dropdown-toggle { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} - -.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-success.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.btn-outline-info { - color: #17a2b8; - border-color: #17a2b8; -} - -.btn-outline-info:hover { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-outline-info:focus, .btn-outline-info.focus { - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.btn-outline-info.disabled, .btn-outline-info:disabled { - color: #17a2b8; - background-color: transparent; -} - -.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, -.show > .btn-outline-info.dropdown-toggle { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} - -.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-info.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.btn-outline-warning { - color: #ffc107; - border-color: #ffc107; -} - -.btn-outline-warning:hover { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-outline-warning:focus, .btn-outline-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.btn-outline-warning.disabled, .btn-outline-warning:disabled { - color: #ffc107; - background-color: transparent; -} - -.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, -.show > .btn-outline-warning.dropdown-toggle { - color: #212529; - background-color: #ffc107; - border-color: #ffc107; -} - -.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-warning.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.btn-outline-danger { - color: #dc3545; - border-color: #dc3545; -} - -.btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-outline-danger:focus, .btn-outline-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.btn-outline-danger.disabled, .btn-outline-danger:disabled { - color: #dc3545; - background-color: transparent; -} - -.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, -.show > .btn-outline-danger.dropdown-toggle { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} - -.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-danger.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.btn-outline-light { - color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-outline-light:hover { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-outline-light:focus, .btn-outline-light.focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.btn-outline-light.disabled, .btn-outline-light:disabled { - color: #f8f9fa; - background-color: transparent; -} - -.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, -.show > .btn-outline-light.dropdown-toggle { - color: #212529; - background-color: #f8f9fa; - border-color: #f8f9fa; -} - -.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-light.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.btn-outline-dark { - color: #343a40; - border-color: #343a40; -} - -.btn-outline-dark:hover { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-outline-dark:focus, .btn-outline-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.btn-outline-dark.disabled, .btn-outline-dark:disabled { - color: #343a40; - background-color: transparent; -} - -.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, -.show > .btn-outline-dark.dropdown-toggle { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} - -.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, -.show > .btn-outline-dark.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.btn-link { - font-weight: 400; - color: #1abc9c; - text-decoration: none; -} - -.btn-link:hover { - color: #117964; - text-decoration: underline; -} - -.btn-link:focus, .btn-link.focus { - text-decoration: underline; - box-shadow: none; -} - -.btn-link:disabled, .btn-link.disabled { - color: #6c757d; - pointer-events: none; -} - -.btn-lg, .btn-group-lg > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.75rem; -} - -.btn-sm, .btn-group-sm > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.25rem; -} - -.btn-block { - display: block; - width: 100%; -} - -.btn-block + .btn-block { - margin-top: 0.5rem; -} - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} - -.fade { - transition: opacity 0.15s linear; -} - -@media (prefers-reduced-motion: reduce) { - .fade { - transition: none; - } -} - -.fade:not(.show) { - opacity: 0; -} - -.collapse:not(.show) { - display: none; -} - -.collapsing { - position: relative; - height: 0; - overflow: hidden; - transition: height 0.35s ease; -} - -@media (prefers-reduced-motion: reduce) { - .collapsing { - transition: none; - } -} - -.dropup, -.dropright, -.dropdown, -.dropleft { - position: relative; -} - -.dropdown-toggle { - white-space: nowrap; -} - -.dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; -} - -.dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 1rem; - color: #212529; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 0.125rem solid rgba(0, 0, 0, 0.15); - border-radius: 0.5rem; -} - -.dropdown-menu-left { - right: auto; - left: 0; -} - -.dropdown-menu-right { - right: 0; - left: auto; -} - -@media (min-width: 576px) { - .dropdown-menu-sm-left { - right: auto; - left: 0; - } - .dropdown-menu-sm-right { - right: 0; - left: auto; - } -} - -@media (min-width: 768px) { - .dropdown-menu-md-left { - right: auto; - left: 0; - } - .dropdown-menu-md-right { - right: 0; - left: auto; - } -} - -@media (min-width: 992px) { - .dropdown-menu-lg-left { - right: auto; - left: 0; - } - .dropdown-menu-lg-right { - right: 0; - left: auto; - } -} - -@media (min-width: 1200px) { - .dropdown-menu-xl-left { - right: auto; - left: 0; - } - .dropdown-menu-xl-right { - right: 0; - left: auto; - } -} - -.dropup .dropdown-menu { - top: auto; - bottom: 100%; - margin-top: 0; - margin-bottom: 0.125rem; -} - -.dropup .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; -} - -.dropup .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropright .dropdown-menu { - top: 0; - right: auto; - left: 100%; - margin-top: 0; - margin-left: 0.125rem; -} - -.dropright .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0; - border-bottom: 0.3em solid transparent; - border-left: 0.3em solid; -} - -.dropright .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropright .dropdown-toggle::after { - vertical-align: 0; -} - -.dropleft .dropdown-menu { - top: 0; - right: 100%; - left: auto; - margin-top: 0; - margin-right: 0.125rem; -} - -.dropleft .dropdown-toggle::after { - display: inline-block; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; -} - -.dropleft .dropdown-toggle::after { - display: none; -} - -.dropleft .dropdown-toggle::before { - display: inline-block; - margin-right: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid transparent; - border-right: 0.3em solid; - border-bottom: 0.3em solid transparent; -} - -.dropleft .dropdown-toggle:empty::after { - margin-left: 0; -} - -.dropleft .dropdown-toggle::before { - vertical-align: 0; -} - -.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { - right: auto; - bottom: auto; -} - -.dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid #e9ecef; -} - -.dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1.5rem; - clear: both; - font-weight: 400; - color: #212529; - text-align: inherit; - white-space: nowrap; - background-color: transparent; - border: 0; -} - -.dropdown-item:hover, .dropdown-item:focus { - color: #16181b; - text-decoration: none; - background-color: #f8f9fa; -} - -.dropdown-item.active, .dropdown-item:active { - color: #fff; - text-decoration: none; - background-color: #1abc9c; -} - -.dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: transparent; -} - -.dropdown-menu.show { - display: block; -} - -.dropdown-header { - display: block; - padding: 0.5rem 1.5rem; - margin-bottom: 0; - font-size: 0.875rem; - color: #6c757d; - white-space: nowrap; -} - -.dropdown-item-text { - display: block; - padding: 0.25rem 1.5rem; - color: #212529; -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; -} - -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - flex: 1 1 auto; -} - -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover { - z-index: 1; -} - -.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, -.btn-group-vertical > .btn:focus, -.btn-group-vertical > .btn:active, -.btn-group-vertical > .btn.active { - z-index: 1; -} - -.btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; -} - -.btn-toolbar .input-group { - width: auto; -} - -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child) { - margin-left: -0.125rem; -} - -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.dropdown-toggle-split { - padding-right: 0.5625rem; - padding-left: 0.5625rem; -} - -.dropdown-toggle-split::after, -.dropup .dropdown-toggle-split::after, -.dropright .dropdown-toggle-split::after { - margin-left: 0; -} - -.dropleft .dropdown-toggle-split::before { - margin-right: 0; -} - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { - padding-right: 0.375rem; - padding-left: 0.375rem; -} - -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { - padding-right: 0.75rem; - padding-left: 0.75rem; -} - -.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:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child) { - margin-top: -0.125rem; -} - -.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group-vertical > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.btn-group-vertical > .btn:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.btn-group-toggle > .btn, -.btn-group-toggle > .btn-group > .btn { - margin-bottom: 0; -} - -.btn-group-toggle > .btn input[type="radio"], -.btn-group-toggle > .btn input[type="checkbox"], -.btn-group-toggle > .btn-group > .btn input[type="radio"], -.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} - -.input-group { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: stretch; - width: 100%; -} - -.input-group > .form-control, -.input-group > .form-control-plaintext, -.input-group > .custom-select, -.input-group > .custom-file { - position: relative; - flex: 1 1 auto; - width: 1%; - margin-bottom: 0; -} - -.input-group > .form-control + .form-control, -.input-group > .form-control + .custom-select, -.input-group > .form-control + .custom-file, -.input-group > .form-control-plaintext + .form-control, -.input-group > .form-control-plaintext + .custom-select, -.input-group > .form-control-plaintext + .custom-file, -.input-group > .custom-select + .form-control, -.input-group > .custom-select + .custom-select, -.input-group > .custom-select + .custom-file, -.input-group > .custom-file + .form-control, -.input-group > .custom-file + .custom-select, -.input-group > .custom-file + .custom-file { - margin-left: -0.125rem; -} - -.input-group > .form-control:focus, -.input-group > .custom-select:focus, -.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { - z-index: 3; -} - -.input-group > .custom-file .custom-file-input:focus { - z-index: 4; -} - -.input-group > .form-control:not(:last-child), -.input-group > .custom-select:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group > .form-control:not(:first-child), -.input-group > .custom-select:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.input-group > .custom-file { - display: flex; - align-items: center; -} - -.input-group > .custom-file:not(:last-child) .custom-file-label, -.input-group > .custom-file:not(:last-child) .custom-file-label::after { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group > .custom-file:not(:first-child) .custom-file-label { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.input-group-prepend, -.input-group-append { - display: flex; -} - -.input-group-prepend .btn, -.input-group-append .btn { - position: relative; - z-index: 2; -} - -.input-group-prepend .btn:focus, -.input-group-append .btn:focus { - z-index: 3; -} - -.input-group-prepend .btn + .btn, -.input-group-prepend .btn + .input-group-text, -.input-group-prepend .input-group-text + .input-group-text, -.input-group-prepend .input-group-text + .btn, -.input-group-append .btn + .btn, -.input-group-append .btn + .input-group-text, -.input-group-append .input-group-text + .input-group-text, -.input-group-append .input-group-text + .btn { - margin-left: -0.125rem; -} - -.input-group-prepend { - margin-right: -0.125rem; -} - -.input-group-append { - margin-left: -0.125rem; -} - -.input-group-text { - display: flex; - align-items: center; - padding: 0.375rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - text-align: center; - white-space: nowrap; - background-color: #e9ecef; - border: 0.125rem solid #ced4da; - border-radius: 0.5rem; -} - -.input-group-text input[type="radio"], -.input-group-text input[type="checkbox"] { - margin-top: 0; -} - -.input-group-lg > .form-control:not(textarea), -.input-group-lg > .custom-select { - height: calc(1.5em + 1rem + 0.25rem); -} - -.input-group-lg > .form-control, -.input-group-lg > .custom-select, -.input-group-lg > .input-group-prepend > .input-group-text, -.input-group-lg > .input-group-append > .input-group-text, -.input-group-lg > .input-group-prepend > .btn, -.input-group-lg > .input-group-append > .btn { - padding: 0.5rem 1rem; - font-size: 1.25rem; - line-height: 1.5; - border-radius: 0.75rem; -} - -.input-group-sm > .form-control:not(textarea), -.input-group-sm > .custom-select { - height: calc(1.5em + 0.5rem + 0.25rem); -} - -.input-group-sm > .form-control, -.input-group-sm > .custom-select, -.input-group-sm > .input-group-prepend > .input-group-text, -.input-group-sm > .input-group-append > .input-group-text, -.input-group-sm > .input-group-prepend > .btn, -.input-group-sm > .input-group-append > .btn { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; - border-radius: 0.25rem; -} - -.input-group-lg > .custom-select, -.input-group-sm > .custom-select { - padding-right: 1.75rem; -} - -.input-group > .input-group-prepend > .btn, -.input-group > .input-group-prepend > .input-group-text, -.input-group > .input-group-append:not(:last-child) > .btn, -.input-group > .input-group-append:not(:last-child) > .input-group-text, -.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.input-group > .input-group-append > .btn, -.input-group > .input-group-append > .input-group-text, -.input-group > .input-group-prepend:not(:first-child) > .btn, -.input-group > .input-group-prepend:not(:first-child) > .input-group-text, -.input-group > .input-group-prepend:first-child > .btn:not(:first-child), -.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.custom-control { - position: relative; - display: block; - min-height: 1.5rem; - padding-left: 1.5rem; -} - -.custom-control-inline { - display: inline-flex; - margin-right: 1rem; -} - -.custom-control-input { - position: absolute; - z-index: -1; - opacity: 0; -} - -.custom-control-input:checked ~ .custom-control-label::before { - color: #fff; - border-color: #1abc9c; - background-color: #1abc9c; -} - -.custom-control-input:focus ~ .custom-control-label::before { - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { - border-color: #6bebd1; -} - -.custom-control-input:not(:disabled):active ~ .custom-control-label::before { - color: #fff; - background-color: #98f1df; - border-color: #98f1df; -} - -.custom-control-input:disabled ~ .custom-control-label { - color: #6c757d; -} - -.custom-control-input:disabled ~ .custom-control-label::before { - background-color: #e9ecef; -} - -.custom-control-label { - position: relative; - margin-bottom: 0; - vertical-align: top; -} - -.custom-control-label::before { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - pointer-events: none; - content: ""; - background-color: #fff; - border: #adb5bd solid 0.125rem; -} - -.custom-control-label::after { - position: absolute; - top: 0.25rem; - left: -1.5rem; - display: block; - width: 1rem; - height: 1rem; - content: ""; - background: no-repeat 50% / 50% 50%; -} - -.custom-checkbox .custom-control-label::before { - border-radius: 0.5rem; -} - -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); -} - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { - border-color: #1abc9c; - background-color: #1abc9c; -} - -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); -} - -.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(26, 188, 156, 0.5); -} - -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { - background-color: rgba(26, 188, 156, 0.5); -} - -.custom-radio .custom-control-label::before { - border-radius: 50%; -} - -.custom-radio .custom-control-input:checked ~ .custom-control-label::after { - 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='%23fff'/%3e%3c/svg%3e"); -} - -.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(26, 188, 156, 0.5); -} - -.custom-switch { - padding-left: 2.25rem; -} - -.custom-switch .custom-control-label::before { - left: -2.25rem; - width: 1.75rem; - pointer-events: all; - border-radius: 0.5rem; -} - -.custom-switch .custom-control-label::after { - top: calc(0.25rem + 0.25rem); - left: calc(-2.25rem + 0.25rem); - width: calc(1rem - 0.5rem); - height: calc(1rem - 0.5rem); - background-color: #adb5bd; - border-radius: 0.5rem; - transition: transform 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) { - .custom-switch .custom-control-label::after { - transition: none; - } -} - -.custom-switch .custom-control-input:checked ~ .custom-control-label::after { - background-color: #fff; - transform: translateX(0.75rem); -} - -.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { - background-color: rgba(26, 188, 156, 0.5); -} - -.custom-select { - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 0.25rem); - padding: 0.375rem 1.75rem 0.375rem 0.75rem; - font-size: 1rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; - background-color: #fff; - border: 0.125rem solid #ced4da; - border-radius: 0.5rem; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.custom-select:focus { - border-color: #6bebd1; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.custom-select:focus::-ms-value { - color: #495057; - background-color: #fff; -} - -.custom-select[multiple], .custom-select[size]:not([size="1"]) { - height: auto; - padding-right: 0.75rem; - background-image: none; -} - -.custom-select:disabled { - color: #6c757d; - background-color: #e9ecef; -} - -.custom-select::-ms-expand { - display: none; -} - -.custom-select-sm { - height: calc(1.5em + 0.5rem + 0.25rem); - padding-top: 0.25rem; - padding-bottom: 0.25rem; - padding-left: 0.5rem; - font-size: 0.875rem; -} - -.custom-select-lg { - height: calc(1.5em + 1rem + 0.25rem); - padding-top: 0.5rem; - padding-bottom: 0.5rem; - padding-left: 1rem; - font-size: 1.25rem; -} - -.custom-file { - position: relative; - display: inline-block; - width: 100%; - height: calc(1.5em + 0.75rem + 0.25rem); - margin-bottom: 0; -} - -.custom-file-input { - position: relative; - z-index: 2; - width: 100%; - height: calc(1.5em + 0.75rem + 0.25rem); - margin: 0; - opacity: 0; -} - -.custom-file-input:focus ~ .custom-file-label { - border-color: #6bebd1; - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.custom-file-input:disabled ~ .custom-file-label { - background-color: #e9ecef; -} - -.custom-file-input:lang(en) ~ .custom-file-label::after { - content: "Browse"; -} - -.custom-file-input ~ .custom-file-label[data-browse]::after { - content: attr(data-browse); -} - -.custom-file-label { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 1; - height: calc(1.5em + 0.75rem + 0.25rem); - padding: 0.375rem 0.75rem; - font-weight: 400; - line-height: 1.5; - color: #495057; - background-color: #fff; - border: 0.125rem solid #ced4da; - border-radius: 0.5rem; -} - -.custom-file-label::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - z-index: 3; - display: block; - height: calc(1.5em + 0.75rem); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - content: "Browse"; - background-color: #e9ecef; - border-left: inherit; - border-radius: 0 0.5rem 0.5rem 0; -} - -.custom-range { - width: 100%; - height: calc(1rem + 0.4rem); - padding: 0; - background-color: transparent; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -.custom-range:focus { - outline: none; -} - -.custom-range:focus::-webkit-slider-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.custom-range:focus::-moz-range-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.custom-range:focus::-ms-thumb { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.custom-range::-moz-focus-outer { - border: 0; -} - -.custom-range::-webkit-slider-thumb { - width: 1rem; - height: 1rem; - margin-top: -0.25rem; - background-color: #1abc9c; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -webkit-appearance: none; - appearance: none; -} - -@media (prefers-reduced-motion: reduce) { - .custom-range::-webkit-slider-thumb { - transition: none; - } -} - -.custom-range::-webkit-slider-thumb:active { - background-color: #98f1df; -} - -.custom-range::-webkit-slider-runnable-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; -} - -.custom-range::-moz-range-thumb { - width: 1rem; - height: 1rem; - background-color: #1abc9c; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - -moz-appearance: none; - appearance: none; -} - -@media (prefers-reduced-motion: reduce) { - .custom-range::-moz-range-thumb { - transition: none; - } -} - -.custom-range::-moz-range-thumb:active { - background-color: #98f1df; -} - -.custom-range::-moz-range-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: #dee2e6; - border-color: transparent; - border-radius: 1rem; -} - -.custom-range::-ms-thumb { - width: 1rem; - height: 1rem; - margin-top: 0; - margin-right: 0.2rem; - margin-left: 0.2rem; - background-color: #1abc9c; - border: 0; - border-radius: 1rem; - transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; - appearance: none; -} - -@media (prefers-reduced-motion: reduce) { - .custom-range::-ms-thumb { - transition: none; - } -} - -.custom-range::-ms-thumb:active { - background-color: #98f1df; -} - -.custom-range::-ms-track { - width: 100%; - height: 0.5rem; - color: transparent; - cursor: pointer; - background-color: transparent; - border-color: transparent; - border-width: 0.5rem; -} - -.custom-range::-ms-fill-lower { - background-color: #dee2e6; - border-radius: 1rem; -} - -.custom-range::-ms-fill-upper { - margin-right: 15px; - background-color: #dee2e6; - border-radius: 1rem; -} - -.custom-range:disabled::-webkit-slider-thumb { - background-color: #adb5bd; -} - -.custom-range:disabled::-webkit-slider-runnable-track { - cursor: default; -} - -.custom-range:disabled::-moz-range-thumb { - background-color: #adb5bd; -} - -.custom-range:disabled::-moz-range-track { - cursor: default; -} - -.custom-range:disabled::-ms-thumb { - background-color: #adb5bd; -} - -.custom-control-label::before, -.custom-file-label, -.custom-select { - transition: 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) { - .custom-control-label::before, - .custom-file-label, - .custom-select { - transition: none; - } -} - -.nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} - -.nav-link { - display: block; - padding: 0.5rem 1rem; -} - -.nav-link:hover, .nav-link:focus { - text-decoration: none; -} - -.nav-link.disabled { - color: #6c757d; - pointer-events: none; - cursor: default; -} - -.nav-tabs { - border-bottom: 0.125rem solid #dee2e6; -} - -.nav-tabs .nav-item { - margin-bottom: -0.125rem; -} - -.nav-tabs .nav-link { - border: 0.125rem solid transparent; - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; -} - -.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { - border-color: #e9ecef #e9ecef #dee2e6; -} - -.nav-tabs .nav-link.disabled { - color: #6c757d; - background-color: transparent; - border-color: transparent; -} - -.nav-tabs .nav-link.active, -.nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #fff; - border-color: #dee2e6 #dee2e6 #fff; -} - -.nav-tabs .dropdown-menu { - margin-top: -0.125rem; - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.nav-pills .nav-link { - border-radius: 0.5rem; -} - -.nav-pills .nav-link.active, -.nav-pills .show > .nav-link { - color: #fff; - background-color: #1abc9c; -} - -.nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; -} - -.nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; -} - -.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: 0.5rem 1rem; -} - -.navbar > .container, -.navbar > .container-fluid { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; -} - -.navbar-brand { - display: inline-block; - padding-top: 0.3125rem; - padding-bottom: 0.3125rem; - margin-right: 1rem; - font-size: 1.25rem; - line-height: inherit; - white-space: nowrap; -} - -.navbar-brand:hover, .navbar-brand:focus { - 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; - float: none; -} - -.navbar-text { - display: inline-block; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} - -.navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; -} - -.navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.25rem; - line-height: 1; - background-color: transparent; - border: 0.125rem solid transparent; - border-radius: 0.5rem; -} - -.navbar-toggler:hover, .navbar-toggler:focus { - text-decoration: none; -} - -.navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - content: ""; - background: no-repeat center center; - background-size: 100% 100%; -} - -@media (max-width: 575.98px) { - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 576px) { - .navbar-expand-sm { - flex-flow: row 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: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-sm > .container, - .navbar-expand-sm > .container-fluid { - flex-wrap: nowrap; - } - .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-sm .navbar-toggler { - display: none; - } -} - -@media (max-width: 767.98px) { - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 768px) { - .navbar-expand-md { - flex-flow: row 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: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-md > .container, - .navbar-expand-md > .container-fluid { - flex-wrap: nowrap; - } - .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-md .navbar-toggler { - display: none; - } -} - -@media (max-width: 991.98px) { - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 992px) { - .navbar-expand-lg { - flex-flow: row 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: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-lg > .container, - .navbar-expand-lg > .container-fluid { - flex-wrap: nowrap; - } - .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-lg .navbar-toggler { - display: none; - } -} - -@media (max-width: 1199.98px) { - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} - -@media (min-width: 1200px) { - .navbar-expand-xl { - flex-flow: row 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: 0.5rem; - padding-left: 0.5rem; - } - .navbar-expand-xl > .container, - .navbar-expand-xl > .container-fluid { - flex-wrap: nowrap; - } - .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .navbar-expand-xl .navbar-toggler { - display: none; - } -} - -.navbar-expand { - flex-flow: row nowrap; - justify-content: flex-start; -} - -.navbar-expand > .container, -.navbar-expand > .container-fluid { - padding-right: 0; - padding-left: 0; -} - -.navbar-expand .navbar-nav { - flex-direction: row; -} - -.navbar-expand .navbar-nav .dropdown-menu { - position: absolute; -} - -.navbar-expand .navbar-nav .nav-link { - padding-right: 0.5rem; - padding-left: 0.5rem; -} - -.navbar-expand > .container, -.navbar-expand > .container-fluid { - flex-wrap: nowrap; -} - -.navbar-expand .navbar-collapse { - display: flex !important; - flex-basis: auto; -} - -.navbar-expand .navbar-toggler { - display: none; -} - -.navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.5); -} - -.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(0, 0, 0, 0.3); -} - -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .active > .nav-link, -.navbar-light .navbar-nav .nav-link.show, -.navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.5); - border-color: rgba(0, 0, 0, 0.1); -} - -.navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} - -.navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.5); -} - -.navbar-light .navbar-text a { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { - color: rgba(0, 0, 0, 0.9); -} - -.navbar-dark .navbar-brand { - color: #fff; -} - -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { - color: #fff; -} - -.navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.5); -} - -.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.25); -} - -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .active > .nav-link, -.navbar-dark .navbar-nav .nav-link.show, -.navbar-dark .navbar-nav .nav-link.active { - color: #fff; -} - -.navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.5); - border-color: rgba(255, 255, 255, 0.1); -} - -.navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} - -.navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.5); -} - -.navbar-dark .navbar-text a { - color: #fff; -} - -.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { - 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: 0.125rem solid rgba(0, 0, 0, 0.125); - border-radius: 0.5rem; -} - -.card > hr { - margin-right: 0; - margin-left: 0; -} - -.card > .list-group:first-child .list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; -} - -.card > .list-group:last-child .list-group-item:last-child { - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.card-body { - flex: 1 1 auto; - padding: 1.25rem; -} - -.card-title { - margin-bottom: 0.75rem; -} - -.card-subtitle { - margin-top: -0.375rem; - 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: 0.75rem 1.25rem; - margin-bottom: 0; - background-color: rgba(0, 0, 0, 0.03); - border-bottom: 0.125rem solid rgba(0, 0, 0, 0.125); -} - -.card-header:first-child { - border-radius: calc(0.5rem - 0.125rem) calc(0.5rem - 0.125rem) 0 0; -} - -.card-header + .list-group .list-group-item:first-child { - border-top: 0; -} - -.card-footer { - padding: 0.75rem 1.25rem; - background-color: rgba(0, 0, 0, 0.03); - border-top: 0.125rem solid rgba(0, 0, 0, 0.125); -} - -.card-footer:last-child { - border-radius: 0 0 calc(0.5rem - 0.125rem) calc(0.5rem - 0.125rem); -} - -.card-header-tabs { - margin-right: -0.625rem; - margin-bottom: -0.75rem; - margin-left: -0.625rem; - border-bottom: 0; -} - -.card-header-pills { - margin-right: -0.625rem; - margin-left: -0.625rem; -} - -.card-img-overlay { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 1.25rem; -} - -.card-img { - width: 100%; - border-radius: calc(0.5rem - 0.125rem); -} - -.card-img-top { - width: 100%; - border-top-left-radius: calc(0.5rem - 0.125rem); - border-top-right-radius: calc(0.5rem - 0.125rem); -} - -.card-img-bottom { - width: 100%; - border-bottom-right-radius: calc(0.5rem - 0.125rem); - border-bottom-left-radius: calc(0.5rem - 0.125rem); -} - -.card-deck { - display: flex; - flex-direction: column; -} - -.card-deck .card { - margin-bottom: 15px; -} - -@media (min-width: 576px) { - .card-deck { - flex-flow: row wrap; - margin-right: -15px; - margin-left: -15px; - } - .card-deck .card { - display: flex; - flex: 1 0 0%; - flex-direction: column; - margin-right: 15px; - margin-bottom: 0; - margin-left: 15px; - } -} - -.card-group { - display: flex; - flex-direction: column; -} - -.card-group > .card { - margin-bottom: 15px; -} - -@media (min-width: 576px) { - .card-group { - 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-img-top, - .card-group > .card:not(:last-child) .card-header { - border-top-right-radius: 0; - } - .card-group > .card:not(:last-child) .card-img-bottom, - .card-group > .card:not(:last-child) .card-footer { - 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-img-top, - .card-group > .card:not(:first-child) .card-header { - border-top-left-radius: 0; - } - .card-group > .card:not(:first-child) .card-img-bottom, - .card-group > .card:not(:first-child) .card-footer { - border-bottom-left-radius: 0; - } -} - -.card-columns .card { - margin-bottom: 0.75rem; -} - -@media (min-width: 576px) { - .card-columns { - -moz-column-count: 3; - column-count: 3; - -moz-column-gap: 1.25rem; - column-gap: 1.25rem; - orphans: 1; - widows: 1; - } - .card-columns .card { - display: inline-block; - width: 100%; - } -} - -.accordion > .card { - overflow: hidden; -} - -.accordion > .card:not(:first-of-type) .card-header:first-child { - border-radius: 0; -} - -.accordion > .card:not(:first-of-type):not(:last-of-type) { - border-bottom: 0; - border-radius: 0; -} - -.accordion > .card:first-of-type { - border-bottom: 0; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} - -.accordion > .card:last-of-type { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.accordion > .card .card-header { - margin-bottom: -0.125rem; -} - -.breadcrumb { - display: flex; - flex-wrap: wrap; - padding: 0.75rem 1rem; - margin-bottom: 1rem; - list-style: none; - background-color: #e9ecef; - border-radius: 0.5rem; -} - -.breadcrumb-item + .breadcrumb-item { - padding-left: 0.5rem; -} - -.breadcrumb-item + .breadcrumb-item::before { - display: inline-block; - padding-right: 0.5rem; - color: #6c757d; - content: "/"; -} - -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: underline; -} - -.breadcrumb-item + .breadcrumb-item:hover::before { - text-decoration: none; -} - -.breadcrumb-item.active { - color: #6c757d; -} - -.pagination { - display: flex; - padding-left: 0; - list-style: none; - border-radius: 0.5rem; -} - -.page-link { - position: relative; - display: block; - padding: 0.5rem 0.75rem; - margin-left: -0.125rem; - line-height: 1.25; - color: #1abc9c; - background-color: #fff; - border: 0.125rem solid #dee2e6; -} - -.page-link:hover { - z-index: 2; - color: #117964; - text-decoration: none; - background-color: #e9ecef; - border-color: #dee2e6; -} - -.page-link:focus { - z-index: 2; - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.25); -} - -.page-item:first-child .page-link { - margin-left: 0; - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.page-item:last-child .page-link { - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; -} - -.page-item.active .page-link { - z-index: 1; - color: #fff; - background-color: #1abc9c; - border-color: #1abc9c; -} - -.page-item.disabled .page-link { - color: #6c757d; - pointer-events: none; - cursor: auto; - background-color: #fff; - border-color: #dee2e6; -} - -.pagination-lg .page-link { - padding: 0.75rem 1.5rem; - font-size: 1.25rem; - line-height: 1.5; -} - -.pagination-lg .page-item:first-child .page-link { - border-top-left-radius: 0.75rem; - border-bottom-left-radius: 0.75rem; -} - -.pagination-lg .page-item:last-child .page-link { - border-top-right-radius: 0.75rem; - border-bottom-right-radius: 0.75rem; -} - -.pagination-sm .page-link { - padding: 0.25rem 0.5rem; - font-size: 0.875rem; - line-height: 1.5; -} - -.pagination-sm .page-item:first-child .page-link { - border-top-left-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} - -.pagination-sm .page-item:last-child .page-link { - border-top-right-radius: 0.25rem; - border-bottom-right-radius: 0.25rem; -} - -.badge { - display: inline-block; - padding: 0.25em 0.4em; - font-size: 75%; - font-weight: 700; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: 0.5rem; - 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) { - .badge { - transition: none; - } -} - -a.badge:hover, a.badge:focus { - text-decoration: none; -} - -.badge:empty { - display: none; -} - -.btn .badge { - position: relative; - top: -1px; -} - -.badge-pill { - padding-right: 0.6em; - padding-left: 0.6em; - border-radius: 10rem; -} - -.badge-primary { - color: #fff; - background-color: #1abc9c; -} - -a.badge-primary:hover, a.badge-primary:focus { - color: #fff; - background-color: #148f77; -} - -a.badge-primary:focus, a.badge-primary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(26, 188, 156, 0.5); -} - -.badge-secondary { - color: #fff; - background-color: #2c3e50; -} - -a.badge-secondary:hover, a.badge-secondary:focus { - color: #fff; - background-color: #1a252f; -} - -a.badge-secondary:focus, a.badge-secondary.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(44, 62, 80, 0.5); -} - -.badge-success { - color: #fff; - background-color: #28a745; -} - -a.badge-success:hover, a.badge-success:focus { - color: #fff; - background-color: #1e7e34; -} - -a.badge-success:focus, a.badge-success.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} - -.badge-info { - color: #fff; - background-color: #17a2b8; -} - -a.badge-info:hover, a.badge-info:focus { - color: #fff; - background-color: #117a8b; -} - -a.badge-info:focus, a.badge-info.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} - -.badge-warning { - color: #212529; - background-color: #ffc107; -} - -a.badge-warning:hover, a.badge-warning:focus { - color: #212529; - background-color: #d39e00; -} - -a.badge-warning:focus, a.badge-warning.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} - -.badge-danger { - color: #fff; - background-color: #dc3545; -} - -a.badge-danger:hover, a.badge-danger:focus { - color: #fff; - background-color: #bd2130; -} - -a.badge-danger:focus, a.badge-danger.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} - -.badge-light { - color: #212529; - background-color: #f8f9fa; -} - -a.badge-light:hover, a.badge-light:focus { - color: #212529; - background-color: #dae0e5; -} - -a.badge-light:focus, a.badge-light.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.badge-dark { - color: #fff; - background-color: #343a40; -} - -a.badge-dark:hover, a.badge-dark:focus { - color: #fff; - background-color: #1d2124; -} - -a.badge-dark:focus, a.badge-dark.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 0.75rem; -} - -@media (min-width: 576px) { - .jumbotron { - padding: 4rem 2rem; - } -} - -.jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; -} - -.alert { - position: relative; - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 0.125rem solid transparent; - border-radius: 0.5rem; -} - -.alert-heading { - color: inherit; -} - -.alert-link { - font-weight: 700; -} - -.alert-dismissible { - padding-right: 4rem; -} - -.alert-dismissible .close { - position: absolute; - top: 0; - right: 0; - padding: 0.75rem 1.25rem; - color: inherit; -} - -.alert-primary { - color: #0e6251; - background-color: #d1f2eb; - border-color: #bfece3; -} - -.alert-primary hr { - border-top-color: #abe6da; -} - -.alert-primary .alert-link { - color: #08352c; -} - -.alert-secondary { - color: #17202a; - background-color: #d5d8dc; - border-color: #c4c9ce; -} - -.alert-secondary hr { - border-top-color: #b6bcc2; -} - -.alert-secondary .alert-link { - color: #050709; -} - -.alert-success { - color: #155724; - background-color: #d4edda; - border-color: #c3e6cb; -} - -.alert-success hr { - border-top-color: #b1dfbb; -} - -.alert-success .alert-link { - color: #0b2e13; -} - -.alert-info { - color: #0c5460; - background-color: #d1ecf1; - border-color: #bee5eb; -} - -.alert-info hr { - border-top-color: #abdde5; -} - -.alert-info .alert-link { - color: #062c33; -} - -.alert-warning { - color: #856404; - background-color: #fff3cd; - border-color: #ffeeba; -} - -.alert-warning hr { - border-top-color: #ffe8a1; -} - -.alert-warning .alert-link { - color: #533f03; -} - -.alert-danger { - color: #721c24; - background-color: #f8d7da; - border-color: #f5c6cb; -} - -.alert-danger hr { - border-top-color: #f1b0b7; -} - -.alert-danger .alert-link { - color: #491217; -} - -.alert-light { - color: #818182; - background-color: #fefefe; - border-color: #fdfdfe; -} - -.alert-light hr { - border-top-color: #ececf6; -} - -.alert-light .alert-link { - color: #686868; -} - -.alert-dark { - color: #1b1e21; - background-color: #d6d8d9; - border-color: #c6c8ca; -} - -.alert-dark hr { - border-top-color: #b9bbbe; -} - -.alert-dark .alert-link { - color: #040505; -} - -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} - -@keyframes progress-bar-stripes { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} - -.progress { - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.5rem; -} - -.progress-bar { - display: flex; - flex-direction: column; - justify-content: center; - color: #fff; - text-align: center; - white-space: nowrap; - background-color: #1abc9c; - transition: width 0.6s ease; -} - -@media (prefers-reduced-motion: reduce) { - .progress-bar { - transition: none; - } -} - -.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: 1rem 1rem; -} - -.progress-bar-animated { - -webkit-animation: progress-bar-stripes 1s linear infinite; - animation: progress-bar-stripes 1s linear infinite; -} - -@media (prefers-reduced-motion: reduce) { - .progress-bar-animated { - -webkit-animation: none; - animation: none; - } -} - -.media { - display: flex; - align-items: flex-start; -} - -.media-body { - flex: 1; -} - -.list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; -} - -.list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; -} - -.list-group-item-action:hover, .list-group-item-action:focus { - z-index: 1; - color: #495057; - text-decoration: none; - background-color: #f8f9fa; -} - -.list-group-item-action:active { - color: #212529; - background-color: #e9ecef; -} - -.list-group-item { - position: relative; - display: block; - padding: 0.75rem 1.25rem; - margin-bottom: -0.125rem; - background-color: #fff; - border: 0.125rem solid rgba(0, 0, 0, 0.125); -} - -.list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-top-right-radius: 0.5rem; -} - -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; -} - -.list-group-item.disabled, .list-group-item:disabled { - color: #6c757d; - pointer-events: none; - background-color: #fff; -} - -.list-group-item.active { - z-index: 2; - color: #fff; - background-color: #1abc9c; - border-color: #1abc9c; -} - -.list-group-horizontal { - flex-direction: row; -} - -.list-group-horizontal .list-group-item { - margin-right: -0.125rem; - margin-bottom: 0; -} - -.list-group-horizontal .list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; - border-top-right-radius: 0; -} - -.list-group-horizontal .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0; -} - -@media (min-width: 576px) { - .list-group-horizontal-sm { - flex-direction: row; - } - .list-group-horizontal-sm .list-group-item { - margin-right: -0.125rem; - margin-bottom: 0; - } - .list-group-horizontal-sm .list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; - border-top-right-radius: 0; - } - .list-group-horizontal-sm .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0; - } -} - -@media (min-width: 768px) { - .list-group-horizontal-md { - flex-direction: row; - } - .list-group-horizontal-md .list-group-item { - margin-right: -0.125rem; - margin-bottom: 0; - } - .list-group-horizontal-md .list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; - border-top-right-radius: 0; - } - .list-group-horizontal-md .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0; - } -} - -@media (min-width: 992px) { - .list-group-horizontal-lg { - flex-direction: row; - } - .list-group-horizontal-lg .list-group-item { - margin-right: -0.125rem; - margin-bottom: 0; - } - .list-group-horizontal-lg .list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; - border-top-right-radius: 0; - } - .list-group-horizontal-lg .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0; - } -} - -@media (min-width: 1200px) { - .list-group-horizontal-xl { - flex-direction: row; - } - .list-group-horizontal-xl .list-group-item { - margin-right: -0.125rem; - margin-bottom: 0; - } - .list-group-horizontal-xl .list-group-item:first-child { - border-top-left-radius: 0.5rem; - border-bottom-left-radius: 0.5rem; - border-top-right-radius: 0; - } - .list-group-horizontal-xl .list-group-item:last-child { - margin-right: 0; - border-top-right-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - border-bottom-left-radius: 0; - } -} - -.list-group-flush .list-group-item { - border-right: 0; - border-left: 0; - border-radius: 0; -} - -.list-group-flush .list-group-item:last-child { - margin-bottom: -0.125rem; -} - -.list-group-flush:first-child .list-group-item:first-child { - border-top: 0; -} - -.list-group-flush:last-child .list-group-item:last-child { - margin-bottom: 0; - border-bottom: 0; -} - -.list-group-item-primary { - color: #0e6251; - background-color: #bfece3; -} - -.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { - color: #0e6251; - background-color: #abe6da; -} - -.list-group-item-primary.list-group-item-action.active { - color: #fff; - background-color: #0e6251; - border-color: #0e6251; -} - -.list-group-item-secondary { - color: #17202a; - background-color: #c4c9ce; -} - -.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { - color: #17202a; - background-color: #b6bcc2; -} - -.list-group-item-secondary.list-group-item-action.active { - color: #fff; - background-color: #17202a; - border-color: #17202a; -} - -.list-group-item-success { - color: #155724; - background-color: #c3e6cb; -} - -.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { - color: #155724; - background-color: #b1dfbb; -} - -.list-group-item-success.list-group-item-action.active { - color: #fff; - background-color: #155724; - border-color: #155724; -} - -.list-group-item-info { - color: #0c5460; - background-color: #bee5eb; -} - -.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { - color: #0c5460; - background-color: #abdde5; -} - -.list-group-item-info.list-group-item-action.active { - color: #fff; - background-color: #0c5460; - border-color: #0c5460; -} - -.list-group-item-warning { - color: #856404; - background-color: #ffeeba; -} - -.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { - color: #856404; - background-color: #ffe8a1; -} - -.list-group-item-warning.list-group-item-action.active { - color: #fff; - background-color: #856404; - border-color: #856404; -} - -.list-group-item-danger { - color: #721c24; - background-color: #f5c6cb; -} - -.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { - color: #721c24; - background-color: #f1b0b7; -} - -.list-group-item-danger.list-group-item-action.active { - color: #fff; - background-color: #721c24; - border-color: #721c24; -} - -.list-group-item-light { - color: #818182; - background-color: #fdfdfe; -} - -.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { - color: #818182; - background-color: #ececf6; -} - -.list-group-item-light.list-group-item-action.active { - color: #fff; - background-color: #818182; - border-color: #818182; -} - -.list-group-item-dark { - color: #1b1e21; - background-color: #c6c8ca; -} - -.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { - color: #1b1e21; - background-color: #b9bbbe; -} - -.list-group-item-dark.list-group-item-action.active { - color: #fff; - background-color: #1b1e21; - border-color: #1b1e21; -} - -.close { - float: right; - font-size: 1.5rem; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5; -} - -.close:hover { - color: #000; - text-decoration: none; -} - -.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { - opacity: .75; -} - -button.close { - padding: 0; - background-color: transparent; - border: 0; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; -} - -a.close.disabled { - pointer-events: none; -} - -.toast { - max-width: 350px; - overflow: hidden; - font-size: 0.875rem; - background-color: rgba(255, 255, 255, 0.85); - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); - opacity: 0; - border-radius: 0.25rem; -} - -.toast:not(:last-child) { - margin-bottom: 0.75rem; -} - -.toast.showing { - opacity: 1; -} - -.toast.show { - display: block; - opacity: 1; -} - -.toast.hide { - display: none; -} - -.toast-header { - display: flex; - align-items: center; - padding: 0.25rem 0.75rem; - color: #6c757d; - background-color: rgba(255, 255, 255, 0.85); - background-clip: padding-box; - border-bottom: 1px solid rgba(0, 0, 0, 0.05); -} - -.toast-body { - padding: 0.75rem; -} - -.modal-open { - overflow: hidden; -} - -.modal-open .modal { - overflow-x: hidden; - overflow-y: auto; -} - -.modal { - position: fixed; - top: 0; - left: 0; - z-index: 1050; - display: none; - width: 100%; - height: 100%; - overflow: hidden; - outline: 0; -} - -.modal-dialog { - position: relative; - width: auto; - margin: 0.5rem; - pointer-events: none; -} - -.modal.fade .modal-dialog { - transition: transform 0.3s ease-out; - transform: translate(0, -50px); -} - -@media (prefers-reduced-motion: reduce) { - .modal.fade .modal-dialog { - transition: none; - } -} - -.modal.show .modal-dialog { - transform: none; -} - -.modal-dialog-scrollable { - display: flex; - max-height: calc(100% - 1rem); -} - -.modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 1rem); - overflow: hidden; -} - -.modal-dialog-scrollable .modal-header, -.modal-dialog-scrollable .modal-footer { - flex-shrink: 0; -} - -.modal-dialog-scrollable .modal-body { - overflow-y: auto; -} - -.modal-dialog-centered { - display: flex; - align-items: center; - min-height: calc(100% - 1rem); -} - -.modal-dialog-centered::before { - display: block; - height: calc(100vh - 1rem); - content: ""; -} - -.modal-dialog-centered.modal-dialog-scrollable { - flex-direction: column; - justify-content: center; - height: 100%; -} - -.modal-dialog-centered.modal-dialog-scrollable .modal-content { - max-height: none; -} - -.modal-dialog-centered.modal-dialog-scrollable::before { - content: none; -} - -.modal-content { - position: relative; - display: flex; - flex-direction: column; - width: 100%; - pointer-events: auto; - background-color: #fff; - background-clip: padding-box; - border: 0 solid rgba(0, 0, 0, 0.2); - border-radius: 0.75rem; - outline: 0; -} - -.modal-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 1040; - width: 100vw; - height: 100vh; - background-color: #000; -} - -.modal-backdrop.fade { - opacity: 0; -} - -.modal-backdrop.show { - opacity: 0.5; -} - -.modal-header { - display: flex; - align-items: flex-start; - justify-content: space-between; - padding: 1rem 1rem; - border-bottom: 0 solid #dee2e6; - border-top-left-radius: 0.75rem; - border-top-right-radius: 0.75rem; -} - -.modal-header .close { - padding: 1rem 1rem; - margin: -1rem -1rem -1rem auto; -} - -.modal-title { - margin-bottom: 0; - line-height: 1.5; -} - -.modal-body { - position: relative; - flex: 1 1 auto; - padding: 4rem 1rem; -} - -.modal-footer { - display: flex; - align-items: center; - justify-content: flex-end; - padding: 4rem 1rem; - border-top: 0 solid #dee2e6; - border-bottom-right-radius: 0.75rem; - border-bottom-left-radius: 0.75rem; -} - -.modal-footer > :not(:first-child) { - margin-left: .25rem; -} - -.modal-footer > :not(:last-child) { - margin-right: .25rem; -} - -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} - -@media (min-width: 576px) { - .modal-dialog { - max-width: 500px; - margin: 1.75rem auto; - } - .modal-dialog-scrollable { - max-height: calc(100% - 3.5rem); - } - .modal-dialog-scrollable .modal-content { - max-height: calc(100vh - 3.5rem); - } - .modal-dialog-centered { - min-height: calc(100% - 3.5rem); - } - .modal-dialog-centered::before { - height: calc(100vh - 3.5rem); - } - .modal-sm { - max-width: 300px; - } -} - -@media (min-width: 992px) { - .modal-lg, - .modal-xl { - max-width: 800px; - } -} - -@media (min-width: 1200px) { - .modal-xl { - max-width: 1140px; - } -} - -.tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - 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: 0.875rem; - word-wrap: break-word; - opacity: 0; -} - -.tooltip.show { - opacity: 0.9; -} - -.tooltip .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; -} - -.tooltip .arrow::before { - position: absolute; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { - padding: 0.4rem 0; -} - -.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { - bottom: 0; -} - -.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { - top: 0; - border-width: 0.4rem 0.4rem 0; - border-top-color: #000; -} - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { - padding: 0 0.4rem; -} - -.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { - left: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { - right: 0; - border-width: 0.4rem 0.4rem 0.4rem 0; - border-right-color: #000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { - padding: 0.4rem 0; -} - -.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { - top: 0; -} - -.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { - bottom: 0; - border-width: 0 0.4rem 0.4rem; - border-bottom-color: #000; -} - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { - padding: 0 0.4rem; -} - -.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { - right: 0; - width: 0.4rem; - height: 0.8rem; -} - -.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { - left: 0; - border-width: 0.4rem 0 0.4rem 0.4rem; - border-left-color: #000; -} - -.tooltip-inner { - max-width: 200px; - padding: 0.25rem 0.5rem; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 0.5rem; -} - -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-style: normal; - font-weight: 400; - line-height: 1.5; - 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: 0.875rem; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 0.125rem solid rgba(0, 0, 0, 0.2); - border-radius: 0.75rem; -} - -.popover .arrow { - position: absolute; - display: block; - width: 1rem; - height: 0.5rem; - margin: 0 0.75rem; -} - -.popover .arrow::before, .popover .arrow::after { - position: absolute; - display: block; - content: ""; - border-color: transparent; - border-style: solid; -} - -.bs-popover-top, .bs-popover-auto[x-placement^="top"] { - margin-bottom: 0.5rem; -} - -.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { - bottom: calc((0.5rem + 0.125rem) * -1); -} - -.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { - bottom: 0; - border-width: 0.5rem 0.5rem 0; - border-top-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { - bottom: 0.125rem; - border-width: 0.5rem 0.5rem 0; - border-top-color: #fff; -} - -.bs-popover-right, .bs-popover-auto[x-placement^="right"] { - margin-left: 0.5rem; -} - -.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { - left: calc((0.5rem + 0.125rem) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.75rem 0; -} - -.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { - left: 0; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { - left: 0.125rem; - border-width: 0.5rem 0.5rem 0.5rem 0; - border-right-color: #fff; -} - -.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { - margin-top: 0.5rem; -} - -.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { - top: calc((0.5rem + 0.125rem) * -1); -} - -.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { - top: 0; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { - top: 0.125rem; - border-width: 0 0.5rem 0.5rem 0.5rem; - border-bottom-color: #fff; -} - -.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 1rem; - margin-left: -0.5rem; - content: ""; - border-bottom: 0.125rem solid #f7f7f7; -} - -.bs-popover-left, .bs-popover-auto[x-placement^="left"] { - margin-right: 0.5rem; -} - -.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { - right: calc((0.5rem + 0.125rem) * -1); - width: 0.5rem; - height: 1rem; - margin: 0.75rem 0; -} - -.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { - right: 0; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: rgba(0, 0, 0, 0.25); -} - -.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { - right: 0.125rem; - border-width: 0.5rem 0 0.5rem 0.5rem; - border-left-color: #fff; -} - -.popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 1rem; - background-color: #f7f7f7; - border-bottom: 0.125rem solid #ebebeb; - border-top-left-radius: calc(0.75rem - 0.125rem); - border-top-right-radius: calc(0.75rem - 0.125rem); -} - -.popover-header:empty { - display: none; -} - -.popover-body { - padding: 0.5rem 0.75rem; - color: #212529; -} - -.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 0.6s ease-in-out; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-item { - transition: none; - } -} - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev { - display: block; -} - -.carousel-item-next:not(.carousel-item-left), -.active.carousel-item-right { - transform: translateX(100%); -} - -.carousel-item-prev:not(.carousel-item-right), -.active.carousel-item-left { - transform: translateX(-100%); -} - -.carousel-fade .carousel-item { - opacity: 0; - transition-property: opacity; - transform: none; -} - -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-left, -.carousel-fade .carousel-item-prev.carousel-item-right { - z-index: 1; - opacity: 1; -} - -.carousel-fade .active.carousel-item-left, -.carousel-fade .active.carousel-item-right { - z-index: 0; - opacity: 0; - transition: 0s 0.6s opacity; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-fade .active.carousel-item-left, - .carousel-fade .active.carousel-item-right { - transition: none; - } -} - -.carousel-control-prev, -.carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - z-index: 1; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: 0.5; - transition: opacity 0.15s ease; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-control-prev, - .carousel-control-next { - transition: none; - } -} - -.carousel-control-prev:hover, .carousel-control-prev:focus, -.carousel-control-next:hover, -.carousel-control-next:focus { - color: #fff; - text-decoration: none; - outline: 0; - opacity: 0.9; -} - -.carousel-control-prev { - left: 0; -} - -.carousel-control-next { - right: 0; -} - -.carousel-control-prev-icon, -.carousel-control-next-icon { - display: inline-block; - width: 20px; - height: 20px; - background: no-repeat 50% / 100% 100%; -} - -.carousel-control-prev-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"); -} - -.carousel-control-next-icon { - background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"); -} - -.carousel-indicators { - position: absolute; - right: 0; - bottom: 0; - left: 0; - z-index: 15; - display: flex; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none; -} - -.carousel-indicators li { - box-sizing: content-box; - flex: 0 1 auto; - width: 30px; - height: 3px; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - cursor: pointer; - background-color: #fff; - background-clip: padding-box; - border-top: 10px solid transparent; - border-bottom: 10px solid transparent; - opacity: .5; - transition: opacity 0.6s ease; -} - -@media (prefers-reduced-motion: reduce) { - .carousel-indicators li { - transition: none; - } -} - -.carousel-indicators .active { - opacity: 1; -} - -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; -} - -@-webkit-keyframes spinner-border { - to { - transform: rotate(360deg); - } -} - -@keyframes spinner-border { - to { - transform: rotate(360deg); - } -} - -.spinner-border { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - border: 0.25em solid currentColor; - border-right-color: transparent; - border-radius: 50%; - -webkit-animation: spinner-border .75s linear infinite; - animation: spinner-border .75s linear infinite; -} - -.spinner-border-sm { - width: 1rem; - height: 1rem; - border-width: 0.2em; -} - -@-webkit-keyframes spinner-grow { - 0% { - transform: scale(0); - } - 50% { - opacity: 1; - } -} - -@keyframes spinner-grow { - 0% { - transform: scale(0); - } - 50% { - opacity: 1; - } -} - -.spinner-grow { - display: inline-block; - width: 2rem; - height: 2rem; - vertical-align: text-bottom; - background-color: currentColor; - border-radius: 50%; - opacity: 0; - -webkit-animation: spinner-grow .75s linear infinite; - animation: spinner-grow .75s linear infinite; -} - -.spinner-grow-sm { - width: 1rem; - height: 1rem; -} - -.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; -} - -.bg-primary { - background-color: #1abc9c !important; - /*background-color: #00735d !important;*/ -} - -a.bg-primary:hover, a.bg-primary:focus, -button.bg-primary:hover, -button.bg-primary:focus { - background-color: #148f77 !important; -} - -.bg-secondary { - background-color: #2c3e50 !important; -} - -a.bg-secondary:hover, a.bg-secondary:focus, -button.bg-secondary:hover, -button.bg-secondary:focus { - background-color: #1a252f !important; -} - -.bg-success { - background-color: #28a745 !important; -} - -a.bg-success:hover, a.bg-success:focus, -button.bg-success:hover, -button.bg-success:focus { - background-color: #1e7e34 !important; -} - -.bg-info { - background-color: #17a2b8 !important; -} - -a.bg-info:hover, a.bg-info:focus, -button.bg-info:hover, -button.bg-info:focus { - background-color: #117a8b !important; -} - -.bg-warning { - background-color: #ffc107 !important; -} - -a.bg-warning:hover, a.bg-warning:focus, -button.bg-warning:hover, -button.bg-warning:focus { - background-color: #d39e00 !important; -} - -.bg-danger { - background-color: #dc3545 !important; -} - -a.bg-danger:hover, a.bg-danger:focus, -button.bg-danger:hover, -button.bg-danger:focus { - background-color: #bd2130 !important; -} - -.bg-light { - background-color: #f8f9fa !important; -} - -a.bg-light:hover, a.bg-light:focus, -button.bg-light:hover, -button.bg-light:focus { - background-color: #dae0e5 !important; -} - -.bg-dark { - background-color: #343a40 !important; -} - -a.bg-dark:hover, a.bg-dark:focus, -button.bg-dark:hover, -button.bg-dark:focus { - background-color: #1d2124 !important; -} - -.bg-white { - background-color: #fff !important; -} - -.bg-transparent { - background-color: transparent !important; -} - -.border { - border: 0.125rem solid #dee2e6 !important; -} - -.border-top { - border-top: 0.125rem solid #dee2e6 !important; -} - -.border-right { - border-right: 0.125rem solid #dee2e6 !important; -} - -.border-bottom { - border-bottom: 0.125rem solid #dee2e6 !important; -} - -.border-left { - border-left: 0.125rem solid #dee2e6 !important; -} - -.border-0 { - border: 0 !important; -} - -.border-top-0 { - border-top: 0 !important; -} - -.border-right-0 { - border-right: 0 !important; -} - -.border-bottom-0 { - border-bottom: 0 !important; -} - -.border-left-0 { - border-left: 0 !important; -} - -.border-primary { - border-color: #1abc9c !important; -} - -.border-secondary { - border-color: #2c3e50 !important; -} - -.border-success { - border-color: #28a745 !important; -} - -.border-info { - border-color: #17a2b8 !important; -} - -.border-warning { - border-color: #ffc107 !important; -} - -.border-danger { - border-color: #dc3545 !important; -} - -.border-light { - border-color: #f8f9fa !important; -} - -.border-dark { - border-color: #343a40 !important; -} - -.border-white { - border-color: #fff !important; -} - -.rounded-sm { - border-radius: 0.25rem !important; -} - -.rounded { - border-radius: 0.5rem !important; -} - -.rounded-top { - border-top-left-radius: 0.5rem !important; - border-top-right-radius: 0.5rem !important; -} - -.rounded-right { - border-top-right-radius: 0.5rem !important; - border-bottom-right-radius: 0.5rem !important; -} - -.rounded-bottom { - border-bottom-right-radius: 0.5rem !important; - border-bottom-left-radius: 0.5rem !important; -} - -.rounded-left { - border-top-left-radius: 0.5rem !important; - border-bottom-left-radius: 0.5rem !important; -} - -.rounded-lg { - border-radius: 0.75rem !important; -} - -.rounded-circle { - border-radius: 50% !important; -} - -.rounded-pill { - border-radius: 50rem !important; -} - -.rounded-0 { - border-radius: 0 !important; -} - -.clearfix::after { - display: block; - clear: both; - content: ""; -} - -.d-none { - display: none !important; -} - -.d-inline { - display: inline !important; -} - -.d-inline-block { - display: inline-block !important; -} - -.d-block { - display: block !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; -} - -@media (min-width: 576px) { - .d-sm-none { - display: none !important; - } - .d-sm-inline { - display: inline !important; - } - .d-sm-inline-block { - display: inline-block !important; - } - .d-sm-block { - display: block !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; - } -} - -@media (min-width: 768px) { - .d-md-none { - display: none !important; - } - .d-md-inline { - display: inline !important; - } - .d-md-inline-block { - display: inline-block !important; - } - .d-md-block { - display: block !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; - } -} - -@media (min-width: 992px) { - .d-lg-none { - display: none !important; - } - .d-lg-inline { - display: inline !important; - } - .d-lg-inline-block { - display: inline-block !important; - } - .d-lg-block { - display: block !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; - } -} - -@media (min-width: 1200px) { - .d-xl-none { - display: none !important; - } - .d-xl-inline { - display: inline !important; - } - .d-xl-inline-block { - display: inline-block !important; - } - .d-xl-block { - display: block !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; - } -} - -@media print { - .d-print-none { - display: none !important; - } - .d-print-inline { - display: inline !important; - } - .d-print-inline-block { - display: inline-block !important; - } - .d-print-block { - display: block !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; - } -} - -.embed-responsive { - position: relative; - display: block; - width: 100%; - padding: 0; - overflow: hidden; -} - -.embed-responsive::before { - display: block; - content: ""; -} - -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} - -.embed-responsive-21by9::before { - padding-top: 42.85714%; -} - -.embed-responsive-16by9::before { - padding-top: 56.25%; -} - -.embed-responsive-4by3::before { - padding-top: 75%; -} - -.embed-responsive-1by1::before { - padding-top: 100%; -} - -.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-wrap { - flex-wrap: wrap !important; -} - -.flex-nowrap { - flex-wrap: nowrap !important; -} - -.flex-wrap-reverse { - flex-wrap: wrap-reverse !important; -} - -.flex-fill { - flex: 1 1 auto !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; -} - -.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; -} - -.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; -} - -@media (min-width: 576px) { - .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-wrap { - flex-wrap: wrap !important; - } - .flex-sm-nowrap { - flex-wrap: nowrap !important; - } - .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .flex-sm-fill { - flex: 1 1 auto !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; - } - .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; - } - .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; - } -} - -@media (min-width: 768px) { - .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-wrap { - flex-wrap: wrap !important; - } - .flex-md-nowrap { - flex-wrap: nowrap !important; - } - .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .flex-md-fill { - flex: 1 1 auto !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; - } - .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; - } - .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; - } -} - -@media (min-width: 992px) { - .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-wrap { - flex-wrap: wrap !important; - } - .flex-lg-nowrap { - flex-wrap: nowrap !important; - } - .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .flex-lg-fill { - flex: 1 1 auto !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; - } - .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; - } - .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; - } -} - -@media (min-width: 1200px) { - .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-wrap { - flex-wrap: wrap !important; - } - .flex-xl-nowrap { - flex-wrap: nowrap !important; - } - .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .flex-xl-fill { - flex: 1 1 auto !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; - } - .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; - } - .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; - } -} - -.float-left { - float: left !important; -} - -.float-right { - float: right !important; -} - -.float-none { - float: none !important; -} - -@media (min-width: 576px) { - .float-sm-left { - float: left !important; - } - .float-sm-right { - float: right !important; - } - .float-sm-none { - float: none !important; - } -} - -@media (min-width: 768px) { - .float-md-left { - float: left !important; - } - .float-md-right { - float: right !important; - } - .float-md-none { - float: none !important; - } -} - -@media (min-width: 992px) { - .float-lg-left { - float: left !important; - } - .float-lg-right { - float: right !important; - } - .float-lg-none { - float: none !important; - } -} - -@media (min-width: 1200px) { - .float-xl-left { - float: left !important; - } - .float-xl-right { - float: right !important; - } - .float-xl-none { - float: none !important; - } -} - -.overflow-auto { - overflow: auto !important; -} - -.overflow-hidden { - overflow: hidden !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; -} - -.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; -} - -@supports ((position: -webkit-sticky) or (position: sticky)) { - .sticky-top { - position: -webkit-sticky; - position: sticky; - top: 0; - z-index: 1020; - } -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border: 0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - overflow: visible; - clip: auto; - white-space: normal; -} - -.shadow-sm { - box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; -} - -.shadow { - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; -} - -.shadow-lg { - box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; -} - -.shadow-none { - box-shadow: none !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; -} - -.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; -} - -.mw-100 { - max-width: 100% !important; -} - -.mh-100 { - max-height: 100% !important; -} - -.min-vw-100 { - min-width: 100vw !important; -} - -.min-vh-100 { - min-height: 100vh !important; -} - -.vw-100 { - width: 100vw !important; -} - -.vh-100 { - height: 100vh !important; -} - -.stretched-link::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - pointer-events: auto; - content: ""; - background-color: rgba(0, 0, 0, 0); -} - -.m-0 { - margin: 0 !important; -} - -.mt-0, -.my-0 { - margin-top: 0 !important; -} - -.mr-0, -.mx-0 { - margin-right: 0 !important; -} - -.mb-0, -.my-0 { - margin-bottom: 0 !important; -} - -.ml-0, -.mx-0 { - margin-left: 0 !important; -} - -.m-1 { - margin: 0.25rem !important; -} - -.mt-1, -.my-1 { - margin-top: 0.25rem !important; -} - -.mr-1, -.mx-1 { - margin-right: 0.25rem !important; -} - -.mb-1, -.my-1 { - margin-bottom: 0.25rem !important; -} - -.ml-1, -.mx-1 { - margin-left: 0.25rem !important; -} - -.m-2 { - margin: 0.5rem !important; -} - -.mt-2, -.my-2 { - margin-top: 0.5rem !important; -} - -.mr-2, -.mx-2 { - margin-right: 0.5rem !important; -} - -.mb-2, -.my-2 { - margin-bottom: 0.5rem !important; -} - -.ml-2, -.mx-2 { - margin-left: 0.5rem !important; -} - -.m-3 { - margin: 1rem !important; -} - -.mt-3, -.my-3 { - margin-top: 1rem !important; -} - -.mr-3, -.mx-3 { - margin-right: 1rem !important; -} - -.mb-3, -.my-3 { - margin-bottom: 1rem !important; -} - -.ml-3, -.mx-3 { - margin-left: 1rem !important; -} - -.m-4 { - margin: 1.5rem !important; -} - -.mt-4, -.my-4 { - margin-top: 1.5rem !important; -} - -.mr-4, -.mx-4 { - margin-right: 1.5rem !important; -} - -.mb-4, -.my-4 { - margin-bottom: 1.5rem !important; -} - -.ml-4, -.mx-4 { - margin-left: 1.5rem !important; -} - -.m-5 { - margin: 3rem !important; -} - -.mt-5, -.my-5 { - margin-top: 3rem !important; -} - -.mr-5, -.mx-5 { - margin-right: 3rem !important; -} - -.mb-5, -.my-5 { - margin-bottom: 3rem !important; -} - -.ml-5, -.mx-5 { - margin-left: 3rem !important; -} - -.p-0 { - padding: 0 !important; -} - -.pt-0, -.py-0 { - padding-top: 0 !important; -} - -.pr-0, -.px-0 { - padding-right: 0 !important; -} - -.pb-0, -.py-0 { - padding-bottom: 0 !important; -} - -.pl-0, -.px-0 { - padding-left: 0 !important; -} - -.p-1 { - padding: 0.25rem !important; -} - -.pt-1, -.py-1 { - padding-top: 0.25rem !important; -} - -.pr-1, -.px-1 { - padding-right: 0.25rem !important; -} - -.pb-1, -.py-1 { - padding-bottom: 0.25rem !important; -} - -.pl-1, -.px-1 { - padding-left: 0.25rem !important; -} - -.p-2 { - padding: 0.5rem !important; -} - -.pt-2, -.py-2 { - padding-top: 0.5rem !important; -} - -.pr-2, -.px-2 { - padding-right: 0.5rem !important; -} - -.pb-2, -.py-2 { - padding-bottom: 0.5rem !important; -} - -.pl-2, -.px-2 { - padding-left: 0.5rem !important; -} - -.p-3 { - padding: 1rem !important; -} - -.pt-3, -.py-3 { - padding-top: 1rem !important; -} - -.pr-3, -.px-3 { - padding-right: 1rem !important; -} - -.pb-3, -.py-3 { - padding-bottom: 1rem !important; -} - -.pl-3, -.px-3 { - padding-left: 1rem !important; -} - -.p-4 { - padding: 1.5rem !important; -} - -.pt-4, -.py-4 { - padding-top: 1.5rem !important; -} - -.pr-4, -.px-4 { - padding-right: 1.5rem !important; -} - -.pb-4, -.py-4 { - padding-bottom: 1.5rem !important; -} - -.pl-4, -.px-4 { - padding-left: 1.5rem !important; -} - -.p-5 { - padding: 3rem !important; -} - -.pt-5, -.py-5 { - padding-top: 3rem !important; -} - -.pr-5, -.px-5 { - padding-right: 3rem !important; -} - -.pb-5, -.py-5 { - padding-bottom: 3rem !important; -} - -.pl-5, -.px-5 { - padding-left: 3rem !important; -} - -.m-n1 { - margin: -0.25rem !important; -} - -.mt-n1, -.my-n1 { - margin-top: -0.25rem !important; -} - -.mr-n1, -.mx-n1 { - margin-right: -0.25rem !important; -} - -.mb-n1, -.my-n1 { - margin-bottom: -0.25rem !important; -} - -.ml-n1, -.mx-n1 { - margin-left: -0.25rem !important; -} - -.m-n2 { - margin: -0.5rem !important; -} - -.mt-n2, -.my-n2 { - margin-top: -0.5rem !important; -} - -.mr-n2, -.mx-n2 { - margin-right: -0.5rem !important; -} - -.mb-n2, -.my-n2 { - margin-bottom: -0.5rem !important; -} - -.ml-n2, -.mx-n2 { - margin-left: -0.5rem !important; -} - -.m-n3 { - margin: -1rem !important; -} - -.mt-n3, -.my-n3 { - margin-top: -1rem !important; -} - -.mr-n3, -.mx-n3 { - margin-right: -1rem !important; -} - -.mb-n3, -.my-n3 { - margin-bottom: -1rem !important; -} - -.ml-n3, -.mx-n3 { - margin-left: -1rem !important; -} - -.m-n4 { - margin: -1.5rem !important; -} - -.mt-n4, -.my-n4 { - margin-top: -1.5rem !important; -} - -.mr-n4, -.mx-n4 { - margin-right: -1.5rem !important; -} - -.mb-n4, -.my-n4 { - margin-bottom: -1.5rem !important; -} - -.ml-n4, -.mx-n4 { - margin-left: -1.5rem !important; -} - -.m-n5 { - margin: -3rem !important; -} - -.mt-n5, -.my-n5 { - margin-top: -3rem !important; -} - -.mr-n5, -.mx-n5 { - margin-right: -3rem !important; -} - -.mb-n5, -.my-n5 { - margin-bottom: -3rem !important; -} - -.ml-n5, -.mx-n5 { - margin-left: -3rem !important; -} - -.m-auto { - margin: auto !important; -} - -.mt-auto, -.my-auto { - margin-top: auto !important; -} - -.mr-auto, -.mx-auto { - margin-right: auto !important; -} - -.mb-auto, -.my-auto { - margin-bottom: auto !important; -} - -.ml-auto, -.mx-auto { - margin-left: auto !important; -} - -@media (min-width: 576px) { - .m-sm-0 { - margin: 0 !important; - } - .mt-sm-0, - .my-sm-0 { - margin-top: 0 !important; - } - .mr-sm-0, - .mx-sm-0 { - margin-right: 0 !important; - } - .mb-sm-0, - .my-sm-0 { - margin-bottom: 0 !important; - } - .ml-sm-0, - .mx-sm-0 { - margin-left: 0 !important; - } - .m-sm-1 { - margin: 0.25rem !important; - } - .mt-sm-1, - .my-sm-1 { - margin-top: 0.25rem !important; - } - .mr-sm-1, - .mx-sm-1 { - margin-right: 0.25rem !important; - } - .mb-sm-1, - .my-sm-1 { - margin-bottom: 0.25rem !important; - } - .ml-sm-1, - .mx-sm-1 { - margin-left: 0.25rem !important; - } - .m-sm-2 { - margin: 0.5rem !important; - } - .mt-sm-2, - .my-sm-2 { - margin-top: 0.5rem !important; - } - .mr-sm-2, - .mx-sm-2 { - margin-right: 0.5rem !important; - } - .mb-sm-2, - .my-sm-2 { - margin-bottom: 0.5rem !important; - } - .ml-sm-2, - .mx-sm-2 { - margin-left: 0.5rem !important; - } - .m-sm-3 { - margin: 1rem !important; - } - .mt-sm-3, - .my-sm-3 { - margin-top: 1rem !important; - } - .mr-sm-3, - .mx-sm-3 { - margin-right: 1rem !important; - } - .mb-sm-3, - .my-sm-3 { - margin-bottom: 1rem !important; - } - .ml-sm-3, - .mx-sm-3 { - margin-left: 1rem !important; - } - .m-sm-4 { - margin: 1.5rem !important; - } - .mt-sm-4, - .my-sm-4 { - margin-top: 1.5rem !important; - } - .mr-sm-4, - .mx-sm-4 { - margin-right: 1.5rem !important; - } - .mb-sm-4, - .my-sm-4 { - margin-bottom: 1.5rem !important; - } - .ml-sm-4, - .mx-sm-4 { - margin-left: 1.5rem !important; - } - .m-sm-5 { - margin: 3rem !important; - } - .mt-sm-5, - .my-sm-5 { - margin-top: 3rem !important; - } - .mr-sm-5, - .mx-sm-5 { - margin-right: 3rem !important; - } - .mb-sm-5, - .my-sm-5 { - margin-bottom: 3rem !important; - } - .ml-sm-5, - .mx-sm-5 { - margin-left: 3rem !important; - } - .p-sm-0 { - padding: 0 !important; - } - .pt-sm-0, - .py-sm-0 { - padding-top: 0 !important; - } - .pr-sm-0, - .px-sm-0 { - padding-right: 0 !important; - } - .pb-sm-0, - .py-sm-0 { - padding-bottom: 0 !important; - } - .pl-sm-0, - .px-sm-0 { - padding-left: 0 !important; - } - .p-sm-1 { - padding: 0.25rem !important; - } - .pt-sm-1, - .py-sm-1 { - padding-top: 0.25rem !important; - } - .pr-sm-1, - .px-sm-1 { - padding-right: 0.25rem !important; - } - .pb-sm-1, - .py-sm-1 { - padding-bottom: 0.25rem !important; - } - .pl-sm-1, - .px-sm-1 { - padding-left: 0.25rem !important; - } - .p-sm-2 { - padding: 0.5rem !important; - } - .pt-sm-2, - .py-sm-2 { - padding-top: 0.5rem !important; - } - .pr-sm-2, - .px-sm-2 { - padding-right: 0.5rem !important; - } - .pb-sm-2, - .py-sm-2 { - padding-bottom: 0.5rem !important; - } - .pl-sm-2, - .px-sm-2 { - padding-left: 0.5rem !important; - } - .p-sm-3 { - padding: 1rem !important; - } - .pt-sm-3, - .py-sm-3 { - padding-top: 1rem !important; - } - .pr-sm-3, - .px-sm-3 { - padding-right: 1rem !important; - } - .pb-sm-3, - .py-sm-3 { - padding-bottom: 1rem !important; - } - .pl-sm-3, - .px-sm-3 { - padding-left: 1rem !important; - } - .p-sm-4 { - padding: 1.5rem !important; - } - .pt-sm-4, - .py-sm-4 { - padding-top: 1.5rem !important; - } - .pr-sm-4, - .px-sm-4 { - padding-right: 1.5rem !important; - } - .pb-sm-4, - .py-sm-4 { - padding-bottom: 1.5rem !important; - } - .pl-sm-4, - .px-sm-4 { - padding-left: 1.5rem !important; - } - .p-sm-5 { - padding: 3rem !important; - } - .pt-sm-5, - .py-sm-5 { - padding-top: 3rem !important; - } - .pr-sm-5, - .px-sm-5 { - padding-right: 3rem !important; - } - .pb-sm-5, - .py-sm-5 { - padding-bottom: 3rem !important; - } - .pl-sm-5, - .px-sm-5 { - padding-left: 3rem !important; - } - .m-sm-n1 { - margin: -0.25rem !important; - } - .mt-sm-n1, - .my-sm-n1 { - margin-top: -0.25rem !important; - } - .mr-sm-n1, - .mx-sm-n1 { - margin-right: -0.25rem !important; - } - .mb-sm-n1, - .my-sm-n1 { - margin-bottom: -0.25rem !important; - } - .ml-sm-n1, - .mx-sm-n1 { - margin-left: -0.25rem !important; - } - .m-sm-n2 { - margin: -0.5rem !important; - } - .mt-sm-n2, - .my-sm-n2 { - margin-top: -0.5rem !important; - } - .mr-sm-n2, - .mx-sm-n2 { - margin-right: -0.5rem !important; - } - .mb-sm-n2, - .my-sm-n2 { - margin-bottom: -0.5rem !important; - } - .ml-sm-n2, - .mx-sm-n2 { - margin-left: -0.5rem !important; - } - .m-sm-n3 { - margin: -1rem !important; - } - .mt-sm-n3, - .my-sm-n3 { - margin-top: -1rem !important; - } - .mr-sm-n3, - .mx-sm-n3 { - margin-right: -1rem !important; - } - .mb-sm-n3, - .my-sm-n3 { - margin-bottom: -1rem !important; - } - .ml-sm-n3, - .mx-sm-n3 { - margin-left: -1rem !important; - } - .m-sm-n4 { - margin: -1.5rem !important; - } - .mt-sm-n4, - .my-sm-n4 { - margin-top: -1.5rem !important; - } - .mr-sm-n4, - .mx-sm-n4 { - margin-right: -1.5rem !important; - } - .mb-sm-n4, - .my-sm-n4 { - margin-bottom: -1.5rem !important; - } - .ml-sm-n4, - .mx-sm-n4 { - margin-left: -1.5rem !important; - } - .m-sm-n5 { - margin: -3rem !important; - } - .mt-sm-n5, - .my-sm-n5 { - margin-top: -3rem !important; - } - .mr-sm-n5, - .mx-sm-n5 { - margin-right: -3rem !important; - } - .mb-sm-n5, - .my-sm-n5 { - margin-bottom: -3rem !important; - } - .ml-sm-n5, - .mx-sm-n5 { - margin-left: -3rem !important; - } - .m-sm-auto { - margin: auto !important; - } - .mt-sm-auto, - .my-sm-auto { - margin-top: auto !important; - } - .mr-sm-auto, - .mx-sm-auto { - margin-right: auto !important; - } - .mb-sm-auto, - .my-sm-auto { - margin-bottom: auto !important; - } - .ml-sm-auto, - .mx-sm-auto { - margin-left: auto !important; - } -} - -@media (min-width: 768px) { - .m-md-0 { - margin: 0 !important; - } - .mt-md-0, - .my-md-0 { - margin-top: 0 !important; - } - .mr-md-0, - .mx-md-0 { - margin-right: 0 !important; - } - .mb-md-0, - .my-md-0 { - margin-bottom: 0 !important; - } - .ml-md-0, - .mx-md-0 { - margin-left: 0 !important; - } - .m-md-1 { - margin: 0.25rem !important; - } - .mt-md-1, - .my-md-1 { - margin-top: 0.25rem !important; - } - .mr-md-1, - .mx-md-1 { - margin-right: 0.25rem !important; - } - .mb-md-1, - .my-md-1 { - margin-bottom: 0.25rem !important; - } - .ml-md-1, - .mx-md-1 { - margin-left: 0.25rem !important; - } - .m-md-2 { - margin: 0.5rem !important; - } - .mt-md-2, - .my-md-2 { - margin-top: 0.5rem !important; - } - .mr-md-2, - .mx-md-2 { - margin-right: 0.5rem !important; - } - .mb-md-2, - .my-md-2 { - margin-bottom: 0.5rem !important; - } - .ml-md-2, - .mx-md-2 { - margin-left: 0.5rem !important; - } - .m-md-3 { - margin: 1rem !important; - } - .mt-md-3, - .my-md-3 { - margin-top: 1rem !important; - } - .mr-md-3, - .mx-md-3 { - margin-right: 1rem !important; - } - .mb-md-3, - .my-md-3 { - margin-bottom: 1rem !important; - } - .ml-md-3, - .mx-md-3 { - margin-left: 1rem !important; - } - .m-md-4 { - margin: 1.5rem !important; - } - .mt-md-4, - .my-md-4 { - margin-top: 1.5rem !important; - } - .mr-md-4, - .mx-md-4 { - margin-right: 1.5rem !important; - } - .mb-md-4, - .my-md-4 { - margin-bottom: 1.5rem !important; - } - .ml-md-4, - .mx-md-4 { - margin-left: 1.5rem !important; - } - .m-md-5 { - margin: 3rem !important; - } - .mt-md-5, - .my-md-5 { - margin-top: 3rem !important; - } - .mr-md-5, - .mx-md-5 { - margin-right: 3rem !important; - } - .mb-md-5, - .my-md-5 { - margin-bottom: 3rem !important; - } - .ml-md-5, - .mx-md-5 { - margin-left: 3rem !important; - } - .p-md-0 { - padding: 0 !important; - } - .pt-md-0, - .py-md-0 { - padding-top: 0 !important; - } - .pr-md-0, - .px-md-0 { - padding-right: 0 !important; - } - .pb-md-0, - .py-md-0 { - padding-bottom: 0 !important; - } - .pl-md-0, - .px-md-0 { - padding-left: 0 !important; - } - .p-md-1 { - padding: 0.25rem !important; - } - .pt-md-1, - .py-md-1 { - padding-top: 0.25rem !important; - } - .pr-md-1, - .px-md-1 { - padding-right: 0.25rem !important; - } - .pb-md-1, - .py-md-1 { - padding-bottom: 0.25rem !important; - } - .pl-md-1, - .px-md-1 { - padding-left: 0.25rem !important; - } - .p-md-2 { - padding: 0.5rem !important; - } - .pt-md-2, - .py-md-2 { - padding-top: 0.5rem !important; - } - .pr-md-2, - .px-md-2 { - padding-right: 0.5rem !important; - } - .pb-md-2, - .py-md-2 { - padding-bottom: 0.5rem !important; - } - .pl-md-2, - .px-md-2 { - padding-left: 0.5rem !important; - } - .p-md-3 { - padding: 1rem !important; - } - .pt-md-3, - .py-md-3 { - padding-top: 1rem !important; - } - .pr-md-3, - .px-md-3 { - padding-right: 1rem !important; - } - .pb-md-3, - .py-md-3 { - padding-bottom: 1rem !important; - } - .pl-md-3, - .px-md-3 { - padding-left: 1rem !important; - } - .p-md-4 { - padding: 1.5rem !important; - } - .pt-md-4, - .py-md-4 { - padding-top: 1.5rem !important; - } - .pr-md-4, - .px-md-4 { - padding-right: 1.5rem !important; - } - .pb-md-4, - .py-md-4 { - padding-bottom: 1.5rem !important; - } - .pl-md-4, - .px-md-4 { - padding-left: 1.5rem !important; - } - .p-md-5 { - padding: 3rem !important; - } - .pt-md-5, - .py-md-5 { - padding-top: 3rem !important; - } - .pr-md-5, - .px-md-5 { - padding-right: 3rem !important; - } - .pb-md-5, - .py-md-5 { - padding-bottom: 3rem !important; - } - .pl-md-5, - .px-md-5 { - padding-left: 3rem !important; - } - .m-md-n1 { - margin: -0.25rem !important; - } - .mt-md-n1, - .my-md-n1 { - margin-top: -0.25rem !important; - } - .mr-md-n1, - .mx-md-n1 { - margin-right: -0.25rem !important; - } - .mb-md-n1, - .my-md-n1 { - margin-bottom: -0.25rem !important; - } - .ml-md-n1, - .mx-md-n1 { - margin-left: -0.25rem !important; - } - .m-md-n2 { - margin: -0.5rem !important; - } - .mt-md-n2, - .my-md-n2 { - margin-top: -0.5rem !important; - } - .mr-md-n2, - .mx-md-n2 { - margin-right: -0.5rem !important; - } - .mb-md-n2, - .my-md-n2 { - margin-bottom: -0.5rem !important; - } - .ml-md-n2, - .mx-md-n2 { - margin-left: -0.5rem !important; - } - .m-md-n3 { - margin: -1rem !important; - } - .mt-md-n3, - .my-md-n3 { - margin-top: -1rem !important; - } - .mr-md-n3, - .mx-md-n3 { - margin-right: -1rem !important; - } - .mb-md-n3, - .my-md-n3 { - margin-bottom: -1rem !important; - } - .ml-md-n3, - .mx-md-n3 { - margin-left: -1rem !important; - } - .m-md-n4 { - margin: -1.5rem !important; - } - .mt-md-n4, - .my-md-n4 { - margin-top: -1.5rem !important; - } - .mr-md-n4, - .mx-md-n4 { - margin-right: -1.5rem !important; - } - .mb-md-n4, - .my-md-n4 { - margin-bottom: -1.5rem !important; - } - .ml-md-n4, - .mx-md-n4 { - margin-left: -1.5rem !important; - } - .m-md-n5 { - margin: -3rem !important; - } - .mt-md-n5, - .my-md-n5 { - margin-top: -3rem !important; - } - .mr-md-n5, - .mx-md-n5 { - margin-right: -3rem !important; - } - .mb-md-n5, - .my-md-n5 { - margin-bottom: -3rem !important; - } - .ml-md-n5, - .mx-md-n5 { - margin-left: -3rem !important; - } - .m-md-auto { - margin: auto !important; - } - .mt-md-auto, - .my-md-auto { - margin-top: auto !important; - } - .mr-md-auto, - .mx-md-auto { - margin-right: auto !important; - } - .mb-md-auto, - .my-md-auto { - margin-bottom: auto !important; - } - .ml-md-auto, - .mx-md-auto { - margin-left: auto !important; - } -} - -@media (min-width: 992px) { - .m-lg-0 { - margin: 0 !important; - } - .mt-lg-0, - .my-lg-0 { - margin-top: 0 !important; - } - .mr-lg-0, - .mx-lg-0 { - margin-right: 0 !important; - } - .mb-lg-0, - .my-lg-0 { - margin-bottom: 0 !important; - } - .ml-lg-0, - .mx-lg-0 { - margin-left: 0 !important; - } - .m-lg-1 { - margin: 0.25rem !important; - } - .mt-lg-1, - .my-lg-1 { - margin-top: 0.25rem !important; - } - .mr-lg-1, - .mx-lg-1 { - margin-right: 0.25rem !important; - } - .mb-lg-1, - .my-lg-1 { - margin-bottom: 0.25rem !important; - } - .ml-lg-1, - .mx-lg-1 { - margin-left: 0.25rem !important; - } - .m-lg-2 { - margin: 0.5rem !important; - } - .mt-lg-2, - .my-lg-2 { - margin-top: 0.5rem !important; - } - .mr-lg-2, - .mx-lg-2 { - margin-right: 0.5rem !important; - } - .mb-lg-2, - .my-lg-2 { - margin-bottom: 0.5rem !important; - } - .ml-lg-2, - .mx-lg-2 { - margin-left: 0.5rem !important; - } - .m-lg-3 { - margin: 1rem !important; - } - .mt-lg-3, - .my-lg-3 { - margin-top: 1rem !important; - } - .mr-lg-3, - .mx-lg-3 { - margin-right: 1rem !important; - } - .mb-lg-3, - .my-lg-3 { - margin-bottom: 1rem !important; - } - .ml-lg-3, - .mx-lg-3 { - margin-left: 1rem !important; - } - .m-lg-4 { - margin: 1.5rem !important; - } - .mt-lg-4, - .my-lg-4 { - margin-top: 1.5rem !important; - } - .mr-lg-4, - .mx-lg-4 { - margin-right: 1.5rem !important; - } - .mb-lg-4, - .my-lg-4 { - margin-bottom: 1.5rem !important; - } - .ml-lg-4, - .mx-lg-4 { - margin-left: 1.5rem !important; - } - .m-lg-5 { - margin: 3rem !important; - } - .mt-lg-5, - .my-lg-5 { - margin-top: 3rem !important; - } - .mr-lg-5, - .mx-lg-5 { - margin-right: 3rem !important; - } - .mb-lg-5, - .my-lg-5 { - margin-bottom: 3rem !important; - } - .ml-lg-5, - .mx-lg-5 { - margin-left: 3rem !important; - } - .p-lg-0 { - padding: 0 !important; - } - .pt-lg-0, - .py-lg-0 { - padding-top: 0 !important; - } - .pr-lg-0, - .px-lg-0 { - padding-right: 0 !important; - } - .pb-lg-0, - .py-lg-0 { - padding-bottom: 0 !important; - } - .pl-lg-0, - .px-lg-0 { - padding-left: 0 !important; - } - .p-lg-1 { - padding: 0.25rem !important; - } - .pt-lg-1, - .py-lg-1 { - padding-top: 0.25rem !important; - } - .pr-lg-1, - .px-lg-1 { - padding-right: 0.25rem !important; - } - .pb-lg-1, - .py-lg-1 { - padding-bottom: 0.25rem !important; - } - .pl-lg-1, - .px-lg-1 { - padding-left: 0.25rem !important; - } - .p-lg-2 { - padding: 0.5rem !important; - } - .pt-lg-2, - .py-lg-2 { - padding-top: 0.5rem !important; - } - .pr-lg-2, - .px-lg-2 { - padding-right: 0.5rem !important; - } - .pb-lg-2, - .py-lg-2 { - padding-bottom: 0.5rem !important; - } - .pl-lg-2, - .px-lg-2 { - padding-left: 0.5rem !important; - } - .p-lg-3 { - padding: 1rem !important; - } - .pt-lg-3, - .py-lg-3 { - padding-top: 1rem !important; - } - .pr-lg-3, - .px-lg-3 { - padding-right: 1rem !important; - } - .pb-lg-3, - .py-lg-3 { - padding-bottom: 1rem !important; - } - .pl-lg-3, - .px-lg-3 { - padding-left: 1rem !important; - } - .p-lg-4 { - padding: 1.5rem !important; - } - .pt-lg-4, - .py-lg-4 { - padding-top: 1.5rem !important; - } - .pr-lg-4, - .px-lg-4 { - padding-right: 1.5rem !important; - } - .pb-lg-4, - .py-lg-4 { - padding-bottom: 1.5rem !important; - } - .pl-lg-4, - .px-lg-4 { - padding-left: 1.5rem !important; - } - .p-lg-5 { - padding: 3rem !important; - } - .pt-lg-5, - .py-lg-5 { - padding-top: 3rem !important; - } - .pr-lg-5, - .px-lg-5 { - padding-right: 3rem !important; - } - .pb-lg-5, - .py-lg-5 { - padding-bottom: 3rem !important; - } - .pl-lg-5, - .px-lg-5 { - padding-left: 3rem !important; - } - .m-lg-n1 { - margin: -0.25rem !important; - } - .mt-lg-n1, - .my-lg-n1 { - margin-top: -0.25rem !important; - } - .mr-lg-n1, - .mx-lg-n1 { - margin-right: -0.25rem !important; - } - .mb-lg-n1, - .my-lg-n1 { - margin-bottom: -0.25rem !important; - } - .ml-lg-n1, - .mx-lg-n1 { - margin-left: -0.25rem !important; - } - .m-lg-n2 { - margin: -0.5rem !important; - } - .mt-lg-n2, - .my-lg-n2 { - margin-top: -0.5rem !important; - } - .mr-lg-n2, - .mx-lg-n2 { - margin-right: -0.5rem !important; - } - .mb-lg-n2, - .my-lg-n2 { - margin-bottom: -0.5rem !important; - } - .ml-lg-n2, - .mx-lg-n2 { - margin-left: -0.5rem !important; - } - .m-lg-n3 { - margin: -1rem !important; - } - .mt-lg-n3, - .my-lg-n3 { - margin-top: -1rem !important; - } - .mr-lg-n3, - .mx-lg-n3 { - margin-right: -1rem !important; - } - .mb-lg-n3, - .my-lg-n3 { - margin-bottom: -1rem !important; - } - .ml-lg-n3, - .mx-lg-n3 { - margin-left: -1rem !important; - } - .m-lg-n4 { - margin: -1.5rem !important; - } - .mt-lg-n4, - .my-lg-n4 { - margin-top: -1.5rem !important; - } - .mr-lg-n4, - .mx-lg-n4 { - margin-right: -1.5rem !important; - } - .mb-lg-n4, - .my-lg-n4 { - margin-bottom: -1.5rem !important; - } - .ml-lg-n4, - .mx-lg-n4 { - margin-left: -1.5rem !important; - } - .m-lg-n5 { - margin: -3rem !important; - } - .mt-lg-n5, - .my-lg-n5 { - margin-top: -3rem !important; - } - .mr-lg-n5, - .mx-lg-n5 { - margin-right: -3rem !important; - } - .mb-lg-n5, - .my-lg-n5 { - margin-bottom: -3rem !important; - } - .ml-lg-n5, - .mx-lg-n5 { - margin-left: -3rem !important; - } - .m-lg-auto { - margin: auto !important; - } - .mt-lg-auto, - .my-lg-auto { - margin-top: auto !important; - } - .mr-lg-auto, - .mx-lg-auto { - margin-right: auto !important; - } - .mb-lg-auto, - .my-lg-auto { - margin-bottom: auto !important; - } - .ml-lg-auto, - .mx-lg-auto { - margin-left: auto !important; - } -} - -@media (min-width: 1200px) { - .m-xl-0 { - margin: 0 !important; - } - .mt-xl-0, - .my-xl-0 { - margin-top: 0 !important; - } - .mr-xl-0, - .mx-xl-0 { - margin-right: 0 !important; - } - .mb-xl-0, - .my-xl-0 { - margin-bottom: 0 !important; - } - .ml-xl-0, - .mx-xl-0 { - margin-left: 0 !important; - } - .m-xl-1 { - margin: 0.25rem !important; - } - .mt-xl-1, - .my-xl-1 { - margin-top: 0.25rem !important; - } - .mr-xl-1, - .mx-xl-1 { - margin-right: 0.25rem !important; - } - .mb-xl-1, - .my-xl-1 { - margin-bottom: 0.25rem !important; - } - .ml-xl-1, - .mx-xl-1 { - margin-left: 0.25rem !important; - } - .m-xl-2 { - margin: 0.5rem !important; - } - .mt-xl-2, - .my-xl-2 { - margin-top: 0.5rem !important; - } - .mr-xl-2, - .mx-xl-2 { - margin-right: 0.5rem !important; - } - .mb-xl-2, - .my-xl-2 { - margin-bottom: 0.5rem !important; - } - .ml-xl-2, - .mx-xl-2 { - margin-left: 0.5rem !important; - } - .m-xl-3 { - margin: 1rem !important; - } - .mt-xl-3, - .my-xl-3 { - margin-top: 1rem !important; - } - .mr-xl-3, - .mx-xl-3 { - margin-right: 1rem !important; - } - .mb-xl-3, - .my-xl-3 { - margin-bottom: 1rem !important; - } - .ml-xl-3, - .mx-xl-3 { - margin-left: 1rem !important; - } - .m-xl-4 { - margin: 1.5rem !important; - } - .mt-xl-4, - .my-xl-4 { - margin-top: 1.5rem !important; - } - .mr-xl-4, - .mx-xl-4 { - margin-right: 1.5rem !important; - } - .mb-xl-4, - .my-xl-4 { - margin-bottom: 1.5rem !important; - } - .ml-xl-4, - .mx-xl-4 { - margin-left: 1.5rem !important; - } - .m-xl-5 { - margin: 3rem !important; - } - .mt-xl-5, - .my-xl-5 { - margin-top: 3rem !important; - } - .mr-xl-5, - .mx-xl-5 { - margin-right: 3rem !important; - } - .mb-xl-5, - .my-xl-5 { - margin-bottom: 3rem !important; - } - .ml-xl-5, - .mx-xl-5 { - margin-left: 3rem !important; - } - .p-xl-0 { - padding: 0 !important; - } - .pt-xl-0, - .py-xl-0 { - padding-top: 0 !important; - } - .pr-xl-0, - .px-xl-0 { - padding-right: 0 !important; - } - .pb-xl-0, - .py-xl-0 { - padding-bottom: 0 !important; - } - .pl-xl-0, - .px-xl-0 { - padding-left: 0 !important; - } - .p-xl-1 { - padding: 0.25rem !important; - } - .pt-xl-1, - .py-xl-1 { - padding-top: 0.25rem !important; - } - .pr-xl-1, - .px-xl-1 { - padding-right: 0.25rem !important; - } - .pb-xl-1, - .py-xl-1 { - padding-bottom: 0.25rem !important; - } - .pl-xl-1, - .px-xl-1 { - padding-left: 0.25rem !important; - } - .p-xl-2 { - padding: 0.5rem !important; - } - .pt-xl-2, - .py-xl-2 { - padding-top: 0.5rem !important; - } - .pr-xl-2, - .px-xl-2 { - padding-right: 0.5rem !important; - } - .pb-xl-2, - .py-xl-2 { - padding-bottom: 0.5rem !important; - } - .pl-xl-2, - .px-xl-2 { - padding-left: 0.5rem !important; - } - .p-xl-3 { - padding: 1rem !important; - } - .pt-xl-3, - .py-xl-3 { - padding-top: 1rem !important; - } - .pr-xl-3, - .px-xl-3 { - padding-right: 1rem !important; - } - .pb-xl-3, - .py-xl-3 { - padding-bottom: 1rem !important; - } - .pl-xl-3, - .px-xl-3 { - padding-left: 1rem !important; - } - .p-xl-4 { - padding: 1.5rem !important; - } - .pt-xl-4, - .py-xl-4 { - padding-top: 1.5rem !important; - } - .pr-xl-4, - .px-xl-4 { - padding-right: 1.5rem !important; - } - .pb-xl-4, - .py-xl-4 { - padding-bottom: 1.5rem !important; - } - .pl-xl-4, - .px-xl-4 { - padding-left: 1.5rem !important; - } - .p-xl-5 { - padding: 3rem !important; - } - .pt-xl-5, - .py-xl-5 { - padding-top: 3rem !important; - } - .pr-xl-5, - .px-xl-5 { - padding-right: 3rem !important; - } - .pb-xl-5, - .py-xl-5 { - padding-bottom: 3rem !important; - } - .pl-xl-5, - .px-xl-5 { - padding-left: 3rem !important; - } - .m-xl-n1 { - margin: -0.25rem !important; - } - .mt-xl-n1, - .my-xl-n1 { - margin-top: -0.25rem !important; - } - .mr-xl-n1, - .mx-xl-n1 { - margin-right: -0.25rem !important; - } - .mb-xl-n1, - .my-xl-n1 { - margin-bottom: -0.25rem !important; - } - .ml-xl-n1, - .mx-xl-n1 { - margin-left: -0.25rem !important; - } - .m-xl-n2 { - margin: -0.5rem !important; - } - .mt-xl-n2, - .my-xl-n2 { - margin-top: -0.5rem !important; - } - .mr-xl-n2, - .mx-xl-n2 { - margin-right: -0.5rem !important; - } - .mb-xl-n2, - .my-xl-n2 { - margin-bottom: -0.5rem !important; - } - .ml-xl-n2, - .mx-xl-n2 { - margin-left: -0.5rem !important; - } - .m-xl-n3 { - margin: -1rem !important; - } - .mt-xl-n3, - .my-xl-n3 { - margin-top: -1rem !important; - } - .mr-xl-n3, - .mx-xl-n3 { - margin-right: -1rem !important; - } - .mb-xl-n3, - .my-xl-n3 { - margin-bottom: -1rem !important; - } - .ml-xl-n3, - .mx-xl-n3 { - margin-left: -1rem !important; - } - .m-xl-n4 { - margin: -1.5rem !important; - } - .mt-xl-n4, - .my-xl-n4 { - margin-top: -1.5rem !important; - } - .mr-xl-n4, - .mx-xl-n4 { - margin-right: -1.5rem !important; - } - .mb-xl-n4, - .my-xl-n4 { - margin-bottom: -1.5rem !important; - } - .ml-xl-n4, - .mx-xl-n4 { - margin-left: -1.5rem !important; - } - .m-xl-n5 { - margin: -3rem !important; - } - .mt-xl-n5, - .my-xl-n5 { - margin-top: -3rem !important; - } - .mr-xl-n5, - .mx-xl-n5 { - margin-right: -3rem !important; - } - .mb-xl-n5, - .my-xl-n5 { - margin-bottom: -3rem !important; - } - .ml-xl-n5, - .mx-xl-n5 { - margin-left: -3rem !important; - } - .m-xl-auto { - margin: auto !important; - } - .mt-xl-auto, - .my-xl-auto { - margin-top: auto !important; - } - .mr-xl-auto, - .mx-xl-auto { - margin-right: auto !important; - } - .mb-xl-auto, - .my-xl-auto { - margin-bottom: auto !important; - } - .ml-xl-auto, - .mx-xl-auto { - margin-left: auto !important; - } -} - -.text-monospace { - font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; -} - -.text-justify { - text-align: justify !important; -} - -.text-wrap { - white-space: normal !important; -} - -.text-nowrap { - white-space: nowrap !important; -} - -.text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.text-left { - text-align: left !important; -} - -.text-right { - text-align: right !important; -} - -.text-center { - text-align: center !important; -} - -@media (min-width: 576px) { - .text-sm-left { - text-align: left !important; - } - .text-sm-right { - text-align: right !important; - } - .text-sm-center { - text-align: center !important; - } -} - -@media (min-width: 768px) { - .text-md-left { - text-align: left !important; - } - .text-md-right { - text-align: right !important; - } - .text-md-center { - text-align: center !important; - } -} - -@media (min-width: 992px) { - .text-lg-left { - text-align: left !important; - } - .text-lg-right { - text-align: right !important; - } - .text-lg-center { - text-align: center !important; - } -} - -@media (min-width: 1200px) { - .text-xl-left { - text-align: left !important; - } - .text-xl-right { - text-align: right !important; - } - .text-xl-center { - text-align: center !important; - } -} - -.text-lowercase { - text-transform: lowercase !important; -} - -.text-uppercase { - text-transform: uppercase !important; -} - -.text-capitalize { - text-transform: capitalize !important; -} - -.font-weight-light { - font-weight: 300 !important; -} - -.font-weight-lighter { - font-weight: lighter !important; -} - -.font-weight-normal { - font-weight: 400 !important; -} - -.font-weight-bold { - font-weight: 700 !important; -} - -.font-weight-bolder { - font-weight: bolder !important; -} - -.font-italic { - font-style: italic !important; -} - -.text-white { - color: #fff !important; -} - -.text-primary { - color: #1abc9c !important; -} - -a.text-primary:hover, a.text-primary:focus { - color: #117964 !important; -} - -.text-secondary { - color: #2c3e50 !important; -} - -a.text-secondary:hover, a.text-secondary:focus { - color: #11181f !important; -} - -.text-success { - color: #28a745 !important; -} - -a.text-success:hover, a.text-success:focus { - color: #19692c !important; -} - -.text-info { - color: #17a2b8 !important; -} - -a.text-info:hover, a.text-info:focus { - color: #0f6674 !important; -} - -.text-warning { - color: #ffc107 !important; -} - -a.text-warning:hover, a.text-warning:focus { - color: #ba8b00 !important; -} - -.text-danger { - color: #dc3545 !important; -} - -a.text-danger:hover, a.text-danger:focus { - color: #a71d2a !important; -} - -.text-light { - color: #f8f9fa !important; -} - -a.text-light:hover, a.text-light:focus { - color: #cbd3da !important; -} - -.text-dark { - color: #343a40 !important; -} - -a.text-dark:hover, a.text-dark:focus { - color: #121416 !important; -} - -.text-body { - color: #212529 !important; -} - -.text-muted { - color: #6c757d !important; -} - -.text-black-50 { - color: rgba(0, 0, 0, 0.5) !important; -} - -.text-white-50 { - color: rgba(255, 255, 255, 0.5) !important; -} - -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.text-decoration-none { - text-decoration: none !important; -} - -.text-break { - word-break: break-word !important; - overflow-wrap: break-word !important; -} - -.text-reset { - color: inherit !important; -} - -.visible { - visibility: visible !important; -} - -.invisible { - visibility: hidden !important; -} - -@media print { - *, - *::before, - *::after { - text-shadow: none !important; - box-shadow: none !important; - } - a:not(.btn) { - text-decoration: underline; - } - abbr[title]::after { - content: " (" attr(title) ")"; - } - pre { - white-space: pre-wrap !important; - } - pre, - blockquote { - border: 0.125rem solid #adb5bd; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - @page { - size: a3; - } - body { - min-width: 992px !important; - } - .container { - min-width: 992px !important; - } - .navbar { - display: none; - } - .badge { - border: 0.125rem solid #000; - } - .table { - border-collapse: collapse !important; - } - .table td, - .table th { - background-color: #fff !important; - } - .table-bordered th, - .table-bordered td { - border: 1px solid #dee2e6 !important; - } - .table-dark { - color: inherit; - } - .table-dark th, - .table-dark td, - .table-dark thead th, - .table-dark tbody + tbody { - border-color: #dee2e6; - } - .table .thead-dark th { - color: inherit; - border-color: #dee2e6; - } -} - -.page-section { - padding: 6rem 0; -} - -.page-section .page-section-heading { - font-size: 2.25rem; - line-height: 2rem; -} - -@media (min-width: 992px) { - .page-section .page-section-heading { - font-size: 3rem; - line-height: 2.5rem; - } -} - -.divider-custom { - margin: 1.25rem 0 1.5rem; - width: 100%; - display: flex; - justify-content: center; - align-items: center; -} - -.divider-custom .divider-custom-line { - width: 100%; - max-width: 7rem; - height: 0.25rem; - background-color: #2c3e50; - border-radius: 1rem; - border-color: #2c3e50 !important; -} - -.divider-custom .divider-custom-line:first-child { - margin-right: 1rem; -} - -.divider-custom .divider-custom-line:last-child { - margin-left: 1rem; -} - -.divider-custom .divider-custom-icon { - color: #2c3e50 !important; - font-size: 2rem; -} - -.divider-custom.divider-light .divider-custom-line { - background-color: #fff; -} - -.divider-custom.divider-light .divider-custom-icon { - color: #fff !important; -} - -.btn-xl { - padding: 1rem 1.75rem; - font-size: 1.25rem; -} - -.btn-social { - border-radius: 100%; - display: inline-flex; - width: 3.25rem; - height: 3.25rem; - font-size: 1.25rem; - justify-content: center; - align-items: center; -} - -.scroll-to-top { - z-index: 1042; - right: 1rem; - bottom: 1rem; - display: none; -} - -.scroll-to-top a { - width: 3.5rem; - height: 3.5rem; - background-color: rgba(33, 37, 41, 0.5); - line-height: 3.1rem; -} - -#mainNav { - padding-top: 1rem; - padding-bottom: 1rem; - font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - font-weight: 700; -} - -#mainNav .navbar-brand { - color: #fff; -} - -#mainNav .navbar-nav { - margin-top: 1rem; -} - -#mainNav .navbar-nav li.nav-item a.nav-link { - color: #fff; -} - -#mainNav .navbar-nav li.nav-item a.nav-link:hover { - color: #1abc9c; -} - -#mainNav .navbar-nav li.nav-item a.nav-link:active, #mainNav .navbar-nav li.nav-item a.nav-link:focus { - color: #fff; -} - -#mainNav .navbar-nav li.nav-item a.nav-link.active { - color: #1abc9c; -} - -#mainNav .navbar-toggler { - font-size: 80%; - padding: 0.8rem; -} - -@media (min-width: 992px) { - #mainNav { - padding-top: 1.5rem; - padding-bottom: 1.5rem; - transition: padding-top 0.3s, padding-bottom 0.3s; - } - #mainNav .navbar-brand { - font-size: 1.75em; - transition: font-size 0.3s; - } - #mainNav .navbar-nav { - margin-top: 0; - } - #mainNav .navbar-nav > li.nav-item > a.nav-link.active { - color: #fff; - background: #1abc9c; - } - #mainNav .navbar-nav > li.nav-item > a.nav-link.active:active, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:focus, #mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover { - color: #fff; - background: #1abc9c; - } - #mainNav.navbar-shrink { - padding-top: 0.5rem; - padding-bottom: 0.5rem; - } - #mainNav.navbar-shrink .navbar-brand { - font-size: 1.5em; - } -} - -.masthead { - padding-top: calc(6rem + 74px); - padding-bottom: 6rem; -} - -.masthead .masthead-heading { - line-height: 2.75rem; - line-height: 3.5rem; - font-size: 2.5rem; -} - -.masthead .masthead-subheading { - font-size: 1.25rem; -} - -.masthead .masthead-avatar { - width: 30rem; -} - -@media (min-width: 992px) { - .masthead { - padding-top: calc(6rem + 104px); - padding-bottom: 6rem; - } - .masthead .masthead-heading { - line-height: 3.5rem; - } - .masthead .masthead-subheading { - font-size: 1.5rem; - } -} - -.portfolio { - margin-bottom: -30px; -} - -.portfolio .portfolio-item { - cursor: pointer; - position: relative; - display: block; - max-width: 25rem; - margin-bottom: 30px; - border-radius: 0.5rem; - overflow: hidden; -} - -.portfolio .portfolio-item .portfolio-item-caption { - position: absolute; - top: 0; - left: 0; - transition: all 0.2s ease-in-out; - opacity: 0; - background-color: rgba(26, 188, 156, 0.9); -} - -.portfolio .portfolio-item .portfolio-item-caption:hover { - opacity: 1; -} - -.portfolio .portfolio-item .portfolio-item-caption .portfolio-item-caption-content { - font-size: 1.5rem; -} - -.portfolio-modal .portfolio-modal-title { - font-size: 2.25rem; - line-height: 2rem; -} - -@media (min-width: 992px) { - .portfolio-modal .portfolio-modal-title { - font-size: 3rem; - line-height: 2.5rem; - } -} - -.portfolio-modal .close { - position: absolute; - z-index: 1; - right: 1.5rem; - top: 1rem; - font-size: 3rem; - line-height: 3rem; - color: #1abc9c; - opacity: 1; -} - -.floating-label-form-group { - position: relative; - border-bottom: 1px solid #e9ecef; -} - -.floating-label-form-group input, -.floating-label-form-group textarea { - font-size: 1.5em; - position: relative; - z-index: 1; - padding-right: 0; - padding-left: 0; - resize: none; - border: none; - border-radius: 0; - background: none; - box-shadow: none !important; -} - -.floating-label-form-group label { - font-size: 0.85em; - line-height: 1.764705882em; - position: relative; - z-index: 0; - top: 2em; - display: block; - margin: 0; - transition: top 0.3s ease, opacity 0.3s ease; - vertical-align: middle; - vertical-align: baseline; - opacity: 0; -} - -.floating-label-form-group:not(:first-child) { - padding-left: 14px; - border-left: 1px solid #e9ecef; -} - -.floating-label-form-group-with-value label { - top: 0; - opacity: 1; -} - -.floating-label-form-group-with-focus label { - color: #1abc9c; -} - -form .row:first-child .floating-label-form-group { - border-top: 1px solid #e9ecef; -} - -.footer { - padding-top: 5rem; - padding-bottom: 5rem; - background-color: #2c3e50; - color: #fff; -} - -.copyright { - background-color: #1a252f; -} - -#about a { - color: #fdfdfd; - text-decoration: none; - background-color: transparent; - font-weight: bold; -} - -#about, #getting-started { - min-height: calc(100vh - 40px); -} - -#contact i.fab.fa-fw { - color: #096553; -} - -.masthead { - min-height: 100vh; -} - -ol.text-center { - list-style-position: inside; - padding-left: 0; - margin-left: 0; -} - -ol li { - margin: 0.8rem; -} - -code { - padding: 0 3rem !important; -} - -#example { - margin: 10rem auto; - width: 80%; -} diff --git a/backend/app/static/vendor/bootstrap/js/bootstrap.bundle.min.js b/backend/app/static/vendor/bootstrap/js/bootstrap.bundle.min.js deleted file mode 100755 index 4320368..0000000 --- a/backend/app/static/vendor/bootstrap/js/bootstrap.bundle.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t=t||self).bootstrap={},t.jQuery)}(this,function(t,p){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)p(this._element).one(q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n=i.clientWidth&&n>=i.clientHeight}),h=0l[t]&&!i.escapeWithReference&&(n=Math.min(h[e],l[t]-("right"===t?h.width:h.height))),Kt({},e,n)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";h=Qt({},h,u[e](t))}),t.offsets.popper=h,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!fe(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=Zt(i)[c];a[d]-ps[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Vt(t.offsets.popper);var m=a[u]+a[c]/2-p/2,g=Nt(t.instance.popper),_=parseFloat(g["margin"+h],10),v=parseFloat(g["border"+h+"Width"],10),y=m-t.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=i,t.offsets.arrow=(Kt(n={},u,Math.round(y)),Kt(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(oe(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=Gt(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=te(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case ge:E=[_,v];break;case _e:E=me(_);break;case ve:E=me(_,!0);break;default:E=m.behavior}return E.forEach(function(t,e){if(_!==t||E.length===e+1)return p;_=p.placement.split("-")[0],v=te(_);var n,i=p.offsets.popper,o=p.offsets.reference,r=Math.floor,s="left"===_&&r(i.right)>r(o.left)||"right"===_&&r(i.left)r(o.top)||"bottom"===_&&r(i.top)r(g.right),c=r(i.top)r(g.bottom),u="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&h,f=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(f&&"start"===y&&a||f&&"end"===y&&l||!f&&"start"===y&&c||!f&&"end"===y&&h);(s||u||d)&&(p.flipped=!0,(s||u)&&(_=E[e+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=Qt({},p.offsets.popper,ee(p.instance.popper,p.offsets.reference,p.placement)),p=ie(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=te(e),t.offsets.popper=Vt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!fe(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=ne(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottomn.right||e.top>n.bottom||e.rightdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
    ',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:vn},Ln="show",xn="out",Pn={HIDE:"hide"+Tn,HIDDEN:"hidden"+Tn,SHOW:"show"+Tn,SHOWN:"shown"+Tn,INSERTED:"inserted"+Tn,CLICK:"click"+Tn,FOCUSIN:"focusin"+Tn,FOCUSOUT:"focusout"+Tn,MOUSEENTER:"mouseenter"+Tn,MOUSELEAVE:"mouseleave"+Tn},Hn="fade",jn="show",Rn=".tooltip-inner",Fn=".arrow",Mn="hover",Wn="focus",Un="click",Bn="manual",qn=function(){function i(t,e){if("undefined"==typeof be)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=p(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(p(this.getTipElement()).hasClass(jn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),p.removeData(this.element,this.constructor.DATA_KEY),p(this.element).off(this.constructor.EVENT_KEY),p(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&p(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===p(this.element).css("display"))throw new Error("Please use show on visible elements");var t=p.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){p(this.element).trigger(t);var n=m.findShadowRoot(this.element),i=p.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=m.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&p(o).addClass(Hn);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();p(o).data(this.constructor.DATA_KEY,this),p.contains(this.element.ownerDocument.documentElement,this.tip)||p(o).appendTo(l),p(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new be(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Fn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),p(o).addClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().on("mouseover",null,p.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,p(e.element).trigger(e.constructor.Event.SHOWN),t===xn&&e._leave(null,e)};if(p(this.tip).hasClass(Hn)){var h=m.getTransitionDurationFromElement(this.tip);p(this.tip).one(m.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=p.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==Ln&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),p(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(p(this.element).trigger(i),!i.isDefaultPrevented()){if(p(n).removeClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),this._activeTrigger[Un]=!1,this._activeTrigger[Wn]=!1,this._activeTrigger[Mn]=!1,p(this.tip).hasClass(Hn)){var r=m.getTransitionDurationFromElement(n);p(n).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){p(this.getTipElement()).addClass(Dn+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(p(t.querySelectorAll(Rn)),this.getTitle()),p(t).removeClass(Hn+" "+jn)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=bn(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?p(e).parent().is(t)||t.empty().append(e):t.text(p(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:m.isElement(this.config.container)?p(this.config.container):p(document).find(this.config.container)},t._getAttachment=function(t){return Nn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)p(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Bn){var e=t===Mn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Mn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;p(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),p(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Wn:Mn]=!0),p(e.getTipElement()).hasClass(jn)||e._hoverState===Ln?e._hoverState=Ln:(clearTimeout(e._timeout),e._hoverState=Ln,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Ln&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Wn:Mn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=xn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===xn&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=p(this.element).data();return Object.keys(e).forEach(function(t){-1!==An.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),m.typeCheckConfig(wn,t,this.constructor.DefaultType),t.sanitize&&(t.template=bn(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(In);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(p(t).removeClass(Hn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=p(this).data(Cn),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),p(this).data(Cn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return kn}},{key:"NAME",get:function(){return wn}},{key:"DATA_KEY",get:function(){return Cn}},{key:"Event",get:function(){return Pn}},{key:"EVENT_KEY",get:function(){return Tn}},{key:"DefaultType",get:function(){return On}}]),i}();p.fn[wn]=qn._jQueryInterface,p.fn[wn].Constructor=qn,p.fn[wn].noConflict=function(){return p.fn[wn]=Sn,qn._jQueryInterface};var Kn="popover",Qn="bs.popover",Vn="."+Qn,Yn=p.fn[Kn],zn="bs-popover",Xn=new RegExp("(^|\\s)"+zn+"\\S+","g"),Gn=l({},qn.Default,{placement:"right",trigger:"click",content:"",template:''}),$n=l({},qn.DefaultType,{content:"(string|element|function)"}),Jn="fade",Zn="show",ti=".popover-header",ei=".popover-body",ni={HIDE:"hide"+Vn,HIDDEN:"hidden"+Vn,SHOW:"show"+Vn,SHOWN:"shown"+Vn,INSERTED:"inserted"+Vn,CLICK:"click"+Vn,FOCUSIN:"focusin"+Vn,FOCUSOUT:"focusout"+Vn,MOUSEENTER:"mouseenter"+Vn,MOUSELEAVE:"mouseleave"+Vn},ii=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){p(this.getTipElement()).addClass(zn+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},o.setContent=function(){var t=p(this.getTipElement());this.setElementContent(t.find(ti),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ei),e),t.removeClass(Jn+" "+Zn)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(Xn);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n }\n}\n\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, (e) => e.preventDefault())\n if (this._pointerEvent) {\n $(this._element).on(Event.POINTERDOWN, (event) => start(event))\n $(this._element).on(Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n $(this._element).on(Event.TOUCHSTART, (event) => start(event))\n $(this._element).on(Event.TOUCHMOVE, (event) => move(event))\n $(this._element).on(Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))\n $(indicators)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(Event.LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for
    elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
    \n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
    \n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
    \n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
    \n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
    \n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
    \n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
    \n * It will read the variation of the `placement` property.
    \n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
    \n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
    \n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
    \n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
    \n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
    \n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
    \n * These can be overridden using the `options` argument of Popper.js.
    \n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
    \n * By default, it is set to no-op.
    \n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
    \n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n show() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(Selector.DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) {\n this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '
    ' +\n '
    ' +\n '
    ',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
    ' +\n '
    ' +\n '

    ' +\n '
    '\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both