diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 7f02b8e8a..000000000 --- a/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -root = true -[*] -insert_final_newline = true -[*.js] -indent_style = space -indent_size = 4 -[*.json] -indent_style = space -indent_size = 4 -[*.less] -indent_style = space -indent_size = 4 -[*.sass] -indent_style = space -indent_size = 4 diff --git a/.gitignore b/.gitignore index 35e1ec4e7..3c3629e64 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1 @@ -# https://git-scm.com/docs/gitignore -# https://help.github.com/articles/ignoring-files -# Example .gitignore files: https://github.com/github/gitignore - -*.log -.sass-cache -Thumbs.db -.DS_Store -/node_modules/ -.grunt/ +node_modules diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index ed5c19504..000000000 --- a/.jshintrc +++ /dev/null @@ -1,44 +0,0 @@ -{ - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": false, - "es3": false, - "forin": true, - "freeze": false, - "immed": true, - "indent": 4, - "latedef": true, - "newcap": true, - "noarg": true, - "noempty": true, - "nonbsp": true, - "nonew": true, - "plusplus": false, - "quotmark": "double", - "undef": true, - "unused": true, - "strict": false, - "trailing": true, - "maxparams": 5, - "maxdepth": 5, - "maxstatements": 50, - "maxlen": 150, - - "eqnull": true, - - "browser": false, - "devel": false, - "node": true, - - "white": true, - - "globals": { - "$": true, - "document": true, - "brackets": true, - "define": true, - "Mustache": true, - "window": true - } -} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f14d53e6..000000000 --- a/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "0.10" -before_script: - - "npm install -g grunt-cli" - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start -script: "grunt cibuild" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index d11f8e87d..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,15 +0,0 @@ -## Playground - -Use this pen to test and deveop new features of Material Design for Bootstrap: - -http://codepen.io/FezVrasta/pen/ihmea - -It already includes every needed dependency and is based on the latest version of the theme. - -## Grunt - -**Grunt!** Ok... when you edit something please run `grunt` to compile CSS and copy stuff in the correct folders. Thanks! - -## Before send a Pull Request - -We are developing in the `develop` branch, please send any PR to this branch. \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index 27328e4f6..000000000 --- a/Gruntfile.js +++ /dev/null @@ -1,211 +0,0 @@ -module.exports = function(grunt) { - "use strict"; - - require("load-grunt-tasks")(grunt); - - grunt.initConfig({ - - less: { - compileless: { - options: { - paths: ["less"] - }, - files: { - "dist/css/material.css": "less/material.less", - "dist/css/material-wfont.css": "less/material-wfont.less", - "dist/css/ripples.css": "less/ripples.less" - } - } - }, - - githooks: { - all: { - // Will run the jshint and test:unit tasks at every commit - "pre-commit": "less autoprefixer cssmin uglify copy newer:jshint jasmine:scripts" - } - }, - - sass: { - compilesass: { - files: { - "dist/css/material.css": "sass/material.scss", - "dist/css/material-wfont.css": "sass/material-wfont.scss", - "dist/css/ripples.css": "sass/ripples.scss" - } - } - }, - - autoprefixer: { - options: { - browsers: ["last 3 versions", "ie 8", "ie 9", "ie 10", "ie 11"] - }, - prefix: { - files: { - "dist/css/material.css": "dist/css/material.css", - "dist/css/material-wfont.css": "dist/css/material-wfont.css", - "dist/css/ripples.css": "dist/css/ripples.css" - } - } - }, - - cssmin: { - minifycss: { - expand: true, - cwd: "dist/css/", - src: ["*.css", "!*.min.css"], - dest: "dist/css/", - ext: ".min.css" - } - }, - - uglify: { - minifyjs: { - files: { - "dist/js/material.min.js": "scripts/material.js", - "dist/js/ripples.min.js": "scripts/ripples.js" - } - } - }, - - copy: { - tpl: { - expand: true, - cwd: "dist/", - src: "**", - dest: "template/material/" - }, - distjs: { - expand: true, - cwd: "scripts/", - src: "**", - dest: "dist/js/", - flatten: true, - filter: "isFile" - }, - distfonts: { - expand: true, - cwd: "fonts/", - src: "**", - dest: "dist/fonts/", - flatten: true, - filter: "isFile" - } - }, - - connect: { - options: { - port: 8040, - hostname: "localhost", - livereload: 35729 - - }, - livereload: { - options: { - open: true, - base: "." - } - }, - test: { - options: { - port: 8041, - open: "http://localhost:8041/_SpecRunner.html", - base: "." - } - } - }, - - jasmine: { - scripts: "scripts/**/*.js", - options: { - build: true, - specs: "test/*Spec.js", - helpers: "test/*Helper.js", - vendor: [ - "https://code.jquery.com/jquery-1.10.2.min.js", - "https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js" - ] - } - }, - - jshint: { - options: { - jshintrc: ".jshintrc", - reporter: require("jshint-stylish") - }, - all: [ - "Gruntfile.js", - "scripts/**/*.js", - "template/**/*.js", - "!template/**/*.min.js" - ], - test: { - options: { - jshintrc: "test/.jshintrc", - src: ["test/**/*.js"] - } - } - }, - - watch: { - js: { - files: ["Gruntfile.js", "scripts/**/*.js", "template/**/*.js"], - tasks: ["newer:jshint:all"] - }, - jsTest: { - files: ["test/**/*.js"], - tasks: ["newer:jshint:test", "jasmine"] - }, - less: { - files:["less/**/*.less"], - tasks: ["default"] - }, - sass: { - files: ["sass/**/*.scss", "sass/**/*.sass"], - tasks: ["scss"] - }, - livereload: { - options: { - livereload: "<%= connect.options.livereload %>" - }, - files: [ - "index.html", - "dist/css/**/*.css", - "**/*.{png,jpg,jpeg,gif,webp,svg}" - ] - } - } - - }); - - grunt.registerTask("default", ["githooks", "less", "autoprefixer", "cssmin", "uglify", "copy"]); - - grunt.registerTask("scss", ["sass", "autoprefixer", "cssmin", "uglify", "copy"]); - - grunt.registerTask("build", function(target) { - var buildType = "default"; - if (target && target === "scss") { - buildType = "scss"; - } - - grunt.task.run(["newer:jshint", "jasmine:scripts", buildType]); - }); - - grunt.registerTask("test", [ - "jasmine:scripts:build", - "connect:test:keepalive" - ]); - - grunt.registerTask("serve", function(target){ - var buildTarget = "default"; - if(target && target === "scss") { - buildTarget = "scss"; - } - grunt.task.run([ - "build:"+ buildTarget, - "connect:livereload", - "watch" - ]); - }); - - grunt.registerTask("cibuild",["newer:jshint", "jasmine:scripts"]); -}; diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index f89a5c914..000000000 --- a/LICENSE.md +++ /dev/null @@ -1,36 +0,0 @@ -Bootstrap Material Design theme -Copyright (C) 2014+ Federico Zivolo - -This program is free software: you can redistribute it and/or modify -it under the terms you can find below. - -You can use this software for free only for no-profit projects. -If you'd like to use this software in a commercial project you may -contact the author (Federico Zivolo) of the software and ask for his -permission and fulfill his conditions. - -You can edit and/or redistribute this software only providing a copy -of this license with it. - -You cannot sell this software, any change to the software must be -published under the same license of the original software, in case you -don't want to publish your changes you can use a different license. -It will be valid only if your changes are not published but -keep private for personal projects or closed-source projects, in case -you want to publish your changes you must switch again to the original -license provided with the software. - -This software can be sold if used inside a software which uses it as -dependency, in any case, this license must be included in the -software. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -This license could be edited in any moment without alert. - -Here are listed the authorized individuals and companies and the specific of their licenses: - -- **A*Star Education Ltd**: unlimited usage for websites and webapplications of the company. diff --git a/License.txt b/License.txt new file mode 100644 index 000000000..c78c8f70a --- /dev/null +++ b/License.txt @@ -0,0 +1,17 @@ +MIT license for MDB Free + +Free packages are available under the MIT License. + +-- Highlights + +● Free for personal use +● Free for commercial use +● No attribution required + +-- Copyright notice + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions. + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +The software is provided "As is", without warranty of any kind, express or implied, including but not limited To the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall The authors or copyright holders be liable for any claim, damages or other liability, whether in an action of Contract, tort or otherwise, arising from, out of or in connection with the software or the use or other Dealings in the software. \ No newline at end of file diff --git a/README.md b/README.md index bd393cdc5..94fa18dcf 100644 --- a/README.md +++ b/README.md @@ -1,140 +1,554 @@ -[![build status](https://travis-ci.org/FezVrasta/bootstrap-material-design.svg?branch=master)](https://travis-ci.org/FezVrasta/bootstrap-material-design) -[![ghat status](http://mywebexpression.com:3001/status/initial/badge.png)](http://mywebexpression.com:3001/) (click to chat) +Bootstrap 5 UI KIT - 700+ components, plain JavaScript, MIT license, simple installation. + +MDB is a collection of free Bootstrap templates, themes, design tools & resources. + +--- + +# Get started + +### [>> Get Started in 1 minute](https://mdbootstrap.com/docs/standard/getting-started/installation/) +Simple installation via .zip, npm or cdnjs. + + +### [>> Install with Webpack](https://mdbootstrap.com/docs/standard/getting-started/installation/#section-webpack) +This option is useful for experienced developers it enables bundling, unit testing code formatting, linting, saas support & more. + +### [>> Install with MDBGO](https://mdbgo.com/) + Free Hosting, WordPress support, custom domains, SSL support, free database, frontend & backend templates, webpack starter included, git repostiory, FTP & jenkins support. + +### [>> Install with MDBGO + e-commerce shop integration](https://mdbgo.com/wordpress-shop/) +One click setup! MDB GO allows you to create a WordPress page with a single click. +Regardless whether you want to create a Travel Blog or an e-commerce shop to sell your product you can easily do that. You can even combine both into single page. + + +## About Material Design for Bootstrap 5 & Vanilla JavaScript + +

Created by + Downloads +License + + + MDBootstrap tutorial +

+ + +Trusted by 3 000 000+ developers & designers. Used by companies & institutions like + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + +
    +
  • 700+ UI components
  • +
  • Free templates
  • +
  • Super simple, 1 minute installation
  • +
  • Detailed docs & practical examples
  • +
  • Lots of tutorials
  • +
  • Plain JavaScript (but works also with jQuery)
  • +
  • Huge and active community
  • +
  • MIT license - free for personal & commercial use
  • +
+
+ +___ + +# Bootstrap 5 tutorial + +**[>> Learn more about Bootstrap 5](https://mdbootstrap.com/docs/standard/)** + + +**[>> Bootstrap 5 Tutorial](https://mdbootstrap.com/learn/mdb-foundations/basics/introduction/)** + +**[>> Subscribe to our YouTube channel with dozens of Bootstrap tutorials](https://www.youtube.com/c/Mdbootstrap)** + + + + + + + + + + + + +
+ + + + + + + +
+

Start learning from Basics

+ + + +
+

Learn Bootstrap 5 | Crash Course for Beginners in 1.5H

+ + + +
+ +___ + +# Demo +#### Simplicity and ease of use are key features of MDB 5 UI Kit. You need only one minute to install and run it. + +### Carousel + +

A slideshow component for cycling through elements—images or slides of text—like a carousel.

+ + +

+ +

+
+ +### Buttons + +

Use MDB custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.

+ + +

+ +

+
+ + +

+ +

+
+ + +

+ +

+
+ + +

+ +

+
+ + +### Spinners + +

Indicate the loading state of a component or page with MDB spinners, built entirely with HTML, CSS, and no JavaScript.

+ + +

+ +

+
+ + +

+ +

+
+ +### Cards + +

A card is a flexible and extensible content container. It includes options for headers and footers, a wide variety of content, contextual background colors, and powerful display options.

+ + +

+ +

+
+ +### Validation + +

Provide valuable, actionable feedback to your users with HTML5 form validation, via browser default behaviors or custom styles and JavaScript.

+ + +

+ +

+
+ +

+ +

+
+ +

+ +

+
-[![banner](demo/imgs/banner.jpg)](#) +### Forms -This Bootstrap theme is an easy way to use the new [Material Design guidelines by Google](http://www.google.com/design/spec/material-design/introduction.html) in your Bootstrap 3 based application. -Just include the theme, after the Bootstrap CSS and include the javascript at the end of your document (Just before the end of the `` tag), and everything will be converted to Material Design (paper) style. +

Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide variety of forms.

-**Note:**This theme is in early development and is not ready for production. + +

+ +

+
+ +

+ +

+
-Check out [the demo at this link](http://fezvrasta.github.io/bootstrap-material-design/) (This demo may not be even with the master branch.) -## How to install - - BOWER: bower install bootstrap-material-design --save - GEMS: gem install bootstrap-material-design - -### LESS & SASS - -We decided to merge the SASS fork in to the main repository instead of having two seperate ones, [#40](https://github.com/FezVrasta/bootstrap-material-design/issues/40). The default grunt -task will compile the LESS source. To use the SASS base use the SCSS task ```grunt scss```. - -**NB** The LESS and SASS bases should reflect each other, right now this project is unstable and under heavy development -so this might not be true before the first stable release. - -## Getting started - -Navigate to the `template/` folder in this repository, and you will see the `index.html` file, which has the CSS include statements, in the `head` section and the JS includes just before `body` section closes. -You need to copy the `material/` folder to the root of your project, ensuring that all the files in your project can access the files through the relative URL, supplied in the CSS and the JS includes. - -## Development - -We are using grunt to automate the workflow and build process. Ensure you have nodejs installed and grunt-cli installed globally. -After cloning the repo, run `npm install` to ensure you have all dev dependencies. - -Run the `grunt build` command to run the tests and compile the less/sass. See Gruntfile.js for details on targets. - -Run the `grunt test` command for browser based jasmine unit tests. - -Run the `grunt serve` command to build and fire up a http server with live-reload and a watch for development purposes. - -## Todo - -- Morphing icons -- [Icons/grids/chips to card/fullscreen transitions](http://www.polymer-project.org/components/core-animated-pages/demo.html) -- [Headers](http://www.polymer-project.org/components/core-header-panel/demo.html) -- [Icon button](http://www.polymer-project.org/components/paper-icon-button/demo.html) -- [Tabs](http://www.polymer-project.org/components/paper-tabs/demo.html) -- [Toggle buttons](http://www.polymer-project.org/components/paper-toggle-button/demo.html) - -I'll try to write every component without the need of Javascript but just CSS, and use JS only if strictly needed. -More "todo" things can be found in the ISSUES of this repository. - -# Support me - -If you like this project you may support me by donating something on Gittip, starring this repository or reporting bugs and ideas in the issue section. - -[![gittip](screenshots/gittip-button.jpg)](https://www.gratipay.com/FezVrasta/) -[![issues](screenshots/issues-button.jpg)](https://github.com/FezVrasta/bootstrap-material-design/issues) - -# Contribute - -Please see the [contrib](CONTRIBUTING.md) file. - - -# Documentation - -Material Design for Bootstrap provides some additional stuff to get the best from Material Design. - -### Variations: - -There are 17 additional color variations (in addition to the classic 4 variations) for buttons, inputs, checkboxes, radios, alerts, navbars, tabs, labels, paginations, progress bars and more. -They can be used by adding the class suffix `-material-color` to the desired element and replacing `color` with the desired one. - -Example: - - - -These colors are taken from the Material Design color palette and are reported below: - -![palette](screenshots/palette.jpg) - -### Buttons: - -Add `.btn-flat` to a button to make it flat, without shadows. -Add `.btn-raised` to a button to add a permanent shadow to it. - -### Inputs: - -Add `.floating-label` to an input field with a `placeholder` to transform the placeholder in a floating label. - -Remember to use the proper HTML markup to get radio and checkboxes styled correctly (choose between *radio* or *checkbox*): - -
- -
- -### Icons: - -Material Design for Bootstrap includes 490 original Material Design icons! -These icons are extracted from the original Google sources and are licensed under the BSD license. -They are provided as an iconic and easy to use font. - -Variations are available for every icon, including the original Bootstrap icons. - -The syntax to add a Material icon is: - - - -# Plugins - -Material Design for Bootstrap comes with styling support for various external scripts: - -### SnackbarJS - -Create snackbars and toasts with [SnackbarJS plugin](https://github.com/FezVrasta/snackbarjs). The default toast style is the squared one (snackbar style). If you like to use the rounded style (toast style), please add the `toast` class to the `style` option of SnackbarJS. - -### RipplesJS - -This is part of Material Design for Bootstrap project and is a plain Javascript script which creates the ripple effect on click of the defined elements. -At the moment RipplesJS does not have its own repository but it will probably have one in the future. - -### noUiSlider - -Make cross-browser sliders and get them styled with Material Design thanks to the support provided by this theme. -Read more about [noUiSlider here](http://refreshless.com/nouislider/) - -### Selectize.js - -Transform select and multi select inputs in advanced text inputs. Material Design for BS provides a full replacement of the plugin's CSS, so don't include it. -Read more about [selectize.js](http://brianreavis.github.io/selectize.js/) - - -# Compatibility - -Currently Material Design for Bootstrap supports Google Chrome (tested v37+), Mozilla Firefox (tested 30+), and Internet Explorer (tested 11+). Mobile browsers are not currently tested but it may work. +### Footer +

A footer is an additional navigation component. It can hold links, buttons, company info, copyrights, forms, and many other elements.

+ + +

+ +

+
+ +### Modal + +

Use MDB modal plugin to add dialogs to your site for lightboxes, user notifications, or completely custom content.

+ + +

+ +

+
+ +### Hover + +

MDB hover effect appears when the user positions the computer cursor over an element without activating it. Hover effects make a website more interactive.

+ + +

+ +

+
+ + +

+ +

+
+ +### Tabs + +

Tabs are quasi-navigation components which can highly improve website clarity and increase user experience.

+ + +

+ +

+
+ + +

+ +

+
+ +### Notes + +

Notes are small components very helpful in inserting an additional piece of information.

+ + +

+ +

+
+ +### ScrollSpy + +

Automatically update Bootstrap navigation or list group components based on scroll position to indicate which link is currently active in the viewport.

+ + +

+ +

+
+ +

Also check out our standalone project Perfect Scrollbar which is included in MDB.

+ +----------------------------- + +# Free Bootstrap 5 templates + +

All of the templates were created with MDB 5 UI KIT (Material Design for Bootstrap 5).

+ +

MDB is a free (MIT license) library, that provides extra features and significantly extends Bootstrap's capabilities.

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

Ecommerce

+
+ + + +

Carousel Full Cover

+
+ + + +

Image Full Cover

+
+ + + +

Portfolio

+
+ + + +

Post

+
+ + + +

Pricing

+
+ + + +

Video Full Cover

+
+ + + +

Carousel Half Cover

+
+ + + +

Video Half Cover

+
+ + + +

Login

+
+ + + +

Magazine

+
+ + + +

Checkout

+
+ + + +

Blog

+
+ + + +

Product

+
+ + + +

Category

+
+ + + +

Landing Page

+
+ + + +

Admin

+
+ + + +

Coming Soon

+
+ + + +

Classic Jumbotron

+
+ + + +

One Column

+
+ + + +

Two Columns

+
+ + + +

Three Columns

+
+ +___ + +# Extended documentation + + diff --git a/README.txt b/README.txt new file mode 100644 index 000000000..ab4fa5bd9 --- /dev/null +++ b/README.txt @@ -0,0 +1,8 @@ +MDB5 +Version: FREE 9.3.0 + +Documentation: +https://mdbootstrap.com/docs/standard/ + +Contact: +contact@mdbootstrap.com \ No newline at end of file diff --git a/bower.json b/bower.json deleted file mode 100644 index a23b31c61..000000000 --- a/bower.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "Material Design for Bootstrap", - "version": "0.1.2", - "homepage": "http://fezvrasta.github.io/bootstrap-material-design", - "authors": [ - "Federico Zivolo " - ], - "description": "Material Design theme for Bootstrap 3", - "main": [ - "dist/css/material.css", - "dist/js/material.js", - "dist/css/ripples.css", - "dist/js/ripples.js" - ], - "ignore": [ - "test", - "screenshots", - "demo", - ".editorconfig", - ".gitignore", - ".jshintrc", - ".travis.yml", - "CONTRIBUTING.md", - "Gruntfile.json", - "index.html" - ], - "keywords": [ - "material", - "design", - "bootstrap", - "theme", - "google", - "android" - ], - "license": "https://github.com/FezVrasta/bootstrap-material-design/blob/master/LICENSE.md", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/css/mdb.min.css b/css/mdb.min.css new file mode 100644 index 000000000..40f8053f4 --- /dev/null +++ b/css/mdb.min.css @@ -0,0 +1,18 @@ +/*! +* MDB5 +* Version: FREE 9.3.0 +* +* +* Copyright: Material Design for Bootstrap +* https://mdbootstrap.com/ +* +* Read the license: https://mdbootstrap.com/general/license/ +* +* +* Documentation: https://mdbootstrap.com/docs/standard/ +* +* Support: https://mdbootstrap.com/support/ +* +* Contact: contact@mdbootstrap.com +* +*/:root,[data-mdb-theme=light]{--mdb-red: #f44336;--mdb-pink: #e91e63;--mdb-purple: #9c27b0;--mdb-indigo: #3f51b5;--mdb-blue: #2196f3;--mdb-cyan: #00bcd4;--mdb-teal: #009688;--mdb-green: #4caf50;--mdb-yellow: #ffeb3b;--mdb-orange: #ff9800;--mdb-white: #fff;--mdb-black: #000;--mdb-gray: #757575;--mdb-gray-dark: #4f4f4f;--mdb-gray-50: #fbfbfb;--mdb-gray-100: #f5f5f5;--mdb-gray-200: #eeeeee;--mdb-gray-300: #e0e0e0;--mdb-gray-400: #bdbdbd;--mdb-gray-500: #9e9e9e;--mdb-gray-600: #757575;--mdb-gray-700: #616161;--mdb-gray-800: #4f4f4f;--mdb-gray-900: #262626;--mdb-primary: #3b71ca;--mdb-secondary: #9fa6b2;--mdb-success: #14a44d;--mdb-danger: #dc4c64;--mdb-warning: #e4a11b;--mdb-info: #54b4d3;--mdb-light: #fbfbfb;--mdb-dark: #332d2d;--mdb-primary-rgb: 59, 113, 202;--mdb-secondary-rgb: 159, 166, 178;--mdb-success-rgb: 20, 164, 77;--mdb-danger-rgb: 220, 76, 100;--mdb-warning-rgb: 228, 161, 27;--mdb-info-rgb: 84, 180, 211;--mdb-light-rgb: 251, 251, 251;--mdb-dark-rgb: 51, 45, 45;--mdb-primary-text-emphasis: #2f5aa2;--mdb-secondary-text-emphasis: #404247;--mdb-success-text-emphasis: #0c622e;--mdb-info-text-emphasis: #3b7e94;--mdb-warning-text-emphasis: #896110;--mdb-danger-text-emphasis: #b03d50;--mdb-light-text-emphasis: #616161;--mdb-dark-text-emphasis: #eeeeee;--mdb-primary-bg-subtle: #e2eaf7;--mdb-secondary-bg-subtle: #f1f2f3;--mdb-success-bg-subtle: #dcf1e4;--mdb-info-bg-subtle: #e5f4f8;--mdb-warning-bg-subtle: #fbf1dd;--mdb-danger-bg-subtle: #fae4e8;--mdb-light-bg-subtle: #f5f5f5;--mdb-dark-bg-subtle: #262626;--mdb-primary-border-subtle: #b1c6ea;--mdb-secondary-border-subtle: #d9dbe0;--mdb-success-border-subtle: #a1dbb8;--mdb-info-border-subtle: #bbe1ed;--mdb-warning-border-subtle: #f4d9a4;--mdb-danger-border-subtle: #f1b7c1;--mdb-light-border-subtle: #eeeeee;--mdb-dark-border-subtle: #9e9e9e;--mdb-white-rgb: 255, 255, 255;--mdb-black-rgb: 0, 0, 0;--mdb-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--mdb-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--mdb-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--mdb-body-font-family: var(--mdb-font-roboto);--mdb-body-font-size:1rem;--mdb-body-font-weight: 400;--mdb-body-line-height: 1.6;--mdb-body-color: #4f4f4f;--mdb-body-color-rgb: 79, 79, 79;--mdb-body-bg: #fff;--mdb-body-bg-rgb: 255, 255, 255;--mdb-emphasis-color: #000;--mdb-emphasis-color-rgb: 0, 0, 0;--mdb-secondary-color: rgba(79, 79, 79, 0.75);--mdb-secondary-color-rgb: 79, 79, 79;--mdb-secondary-bg: #eeeeee;--mdb-secondary-bg-rgb: 238, 238, 238;--mdb-tertiary-color: rgba(79, 79, 79, 0.5);--mdb-tertiary-color-rgb: 79, 79, 79;--mdb-tertiary-bg: #fbfbfb;--mdb-tertiary-bg-rgb: 251, 251, 251;--mdb-heading-color: inherit;--mdb-link-color: #3b71ca;--mdb-link-color-rgb: 59, 113, 202;--mdb-link-decoration: none;--mdb-link-hover-color: #386bc0;--mdb-link-hover-color-rgb: 56, 107, 192;--mdb-link-hover-decoration: none;--mdb-code-color: #e91e63;--mdb-highlight-color: #4f4f4f;--mdb-highlight-bg: #fff9c4;--mdb-border-width: 1px;--mdb-border-style: solid;--mdb-border-color: #e0e0e0;--mdb-border-color-translucent: rgba(0, 0, 0, 0.175);--mdb-border-radius: 0.25rem;--mdb-border-radius-sm: 0.25rem;--mdb-border-radius-lg: 0.5rem;--mdb-border-radius-xl: 1rem;--mdb-border-radius-xxl: 2rem;--mdb-border-radius-2xl: var( --mdb-border-radius-xxl );--mdb-border-radius-pill: 50rem;--mdb-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--mdb-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--mdb-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--mdb-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--mdb-focus-ring-width: 0.25rem;--mdb-focus-ring-opacity: 0.25;--mdb-focus-ring-color: rgba(59, 113, 202, 0.25);--mdb-form-valid-color: #14a44d;--mdb-form-valid-border-color: #14a44d;--mdb-form-invalid-color: #dc4c64;--mdb-form-invalid-border-color: #dc4c64}[data-mdb-theme=dark]{color-scheme:dark;--mdb-body-color: #fff;--mdb-body-color-rgb: 255, 255, 255;--mdb-body-bg: #303030;--mdb-body-bg-rgb: 48, 48, 48;--mdb-emphasis-color: #fff;--mdb-emphasis-color-rgb: 255, 255, 255;--mdb-secondary-color: rgba(255, 255, 255, 0.75);--mdb-secondary-color-rgb: 255, 255, 255;--mdb-secondary-bg: #4f4f4f;--mdb-secondary-bg-rgb: 79, 79, 79;--mdb-tertiary-color: rgba(255, 255, 255, 0.5);--mdb-tertiary-color-rgb: 255, 255, 255;--mdb-tertiary-bg: #3b3b3b;--mdb-tertiary-bg-rgb: 59, 59, 59;--mdb-primary-text-emphasis: #628dd5;--mdb-secondary-text-emphasis: #d9dbe0;--mdb-success-text-emphasis: #72c894;--mdb-info-text-emphasis: #87cbe0;--mdb-warning-text-emphasis: #efc776;--mdb-danger-text-emphasis: #e37083;--mdb-light-text-emphasis: #f5f5f5;--mdb-dark-text-emphasis: #eeeeee;--mdb-primary-bg-subtle: #0c1728;--mdb-secondary-bg-subtle: #202124;--mdb-success-bg-subtle: #04210f;--mdb-info-bg-subtle: #11242a;--mdb-warning-bg-subtle: #2e2005;--mdb-danger-bg-subtle: #2c0f14;--mdb-light-bg-subtle: #4f4f4f;--mdb-dark-bg-subtle: #262626;--mdb-primary-border-subtle: #234479;--mdb-secondary-border-subtle: #5f646b;--mdb-success-border-subtle: #0c622e;--mdb-info-border-subtle: #326c7f;--mdb-warning-border-subtle: #896110;--mdb-danger-border-subtle: #842e3c;--mdb-light-border-subtle: #616161;--mdb-dark-border-subtle: #4f4f4f;--mdb-heading-color: inherit;--mdb-link-color: #89aadf;--mdb-link-hover-color: #8faee1;--mdb-link-color-rgb: 137, 170, 223;--mdb-link-hover-color-rgb: 143, 174, 225;--mdb-code-color: #f278a1;--mdb-highlight-color: #fff;--mdb-highlight-bg: #f9a825;--mdb-border-color: rgba(255, 255, 255, 0.12);--mdb-border-color-translucent: rgba(255, 255, 255, 0.15);--mdb-form-valid-color: #81c784;--mdb-form-valid-border-color: #81c784;--mdb-form-invalid-color: #e57373;--mdb-form-invalid-border-color: #e57373}*,*::before,*::after{box-sizing:border-box}@media(prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--mdb-body-font-family);font-size:var(--mdb-body-font-size);font-weight:var(--mdb-body-font-weight);line-height:var(--mdb-body-line-height);color:var(--mdb-body-color);text-align:var(--mdb-body-text-align);background-color:var(--mdb-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--mdb-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--mdb-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media(min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + 0.6vw)}@media(min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + 0.3vw)}@media(min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}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,.small{font-size:0.875em}mark,.mark{padding:.1875em;color:var(--mdb-highlight-color);background-color:var(--mdb-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--mdb-link-color-rgb), var(--mdb-link-opacity, 1));text-decoration:none}a:hover{--mdb-link-color-rgb: var(--mdb-link-hover-color-rgb);text-decoration:none}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--mdb-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--mdb-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:0.875em;color:var(--mdb-body-bg);background-color:var(--mdb-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:1rem;padding-bottom:1rem;color:var(--mdb-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}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}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#757575}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--mdb-body-bg);border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius);box-shadow:var(--mdb-box-shadow-sm);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:var(--mdb-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--mdb-gutter-x: 1.5rem;--mdb-gutter-y: 0;width:100%;padding-right:calc(var(--mdb-gutter-x)*.5);padding-left:calc(var(--mdb-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--mdb-breakpoint-xs: 0;--mdb-breakpoint-sm: 576px;--mdb-breakpoint-md: 768px;--mdb-breakpoint-lg: 992px;--mdb-breakpoint-xl: 1200px;--mdb-breakpoint-xxl: 1400px}.row{--mdb-gutter-x: 1.5rem;--mdb-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1*var(--mdb-gutter-y));margin-right:calc(-0.5*var(--mdb-gutter-x));margin-left:calc(-0.5*var(--mdb-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--mdb-gutter-x)*.5);padding-left:calc(var(--mdb-gutter-x)*.5);margin-top:var(--mdb-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--mdb-gutter-x: 0}.g-0,.gy-0{--mdb-gutter-y: 0}.g-1,.gx-1{--mdb-gutter-x: 0.25rem}.g-1,.gy-1{--mdb-gutter-y: 0.25rem}.g-2,.gx-2{--mdb-gutter-x: 0.5rem}.g-2,.gy-2{--mdb-gutter-y: 0.5rem}.g-3,.gx-3{--mdb-gutter-x: 1rem}.g-3,.gy-3{--mdb-gutter-y: 1rem}.g-4,.gx-4{--mdb-gutter-x: 1.5rem}.g-4,.gy-4{--mdb-gutter-y: 1.5rem}.g-5,.gx-5{--mdb-gutter-x: 3rem}.g-5,.gy-5{--mdb-gutter-y: 3rem}@media(min-width: 576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--mdb-gutter-x: 0}.g-sm-0,.gy-sm-0{--mdb-gutter-y: 0}.g-sm-1,.gx-sm-1{--mdb-gutter-x: 0.25rem}.g-sm-1,.gy-sm-1{--mdb-gutter-y: 0.25rem}.g-sm-2,.gx-sm-2{--mdb-gutter-x: 0.5rem}.g-sm-2,.gy-sm-2{--mdb-gutter-y: 0.5rem}.g-sm-3,.gx-sm-3{--mdb-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--mdb-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--mdb-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--mdb-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--mdb-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--mdb-gutter-y: 3rem}}@media(min-width: 768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--mdb-gutter-x: 0}.g-md-0,.gy-md-0{--mdb-gutter-y: 0}.g-md-1,.gx-md-1{--mdb-gutter-x: 0.25rem}.g-md-1,.gy-md-1{--mdb-gutter-y: 0.25rem}.g-md-2,.gx-md-2{--mdb-gutter-x: 0.5rem}.g-md-2,.gy-md-2{--mdb-gutter-y: 0.5rem}.g-md-3,.gx-md-3{--mdb-gutter-x: 1rem}.g-md-3,.gy-md-3{--mdb-gutter-y: 1rem}.g-md-4,.gx-md-4{--mdb-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--mdb-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--mdb-gutter-x: 3rem}.g-md-5,.gy-md-5{--mdb-gutter-y: 3rem}}@media(min-width: 992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--mdb-gutter-x: 0}.g-lg-0,.gy-lg-0{--mdb-gutter-y: 0}.g-lg-1,.gx-lg-1{--mdb-gutter-x: 0.25rem}.g-lg-1,.gy-lg-1{--mdb-gutter-y: 0.25rem}.g-lg-2,.gx-lg-2{--mdb-gutter-x: 0.5rem}.g-lg-2,.gy-lg-2{--mdb-gutter-y: 0.5rem}.g-lg-3,.gx-lg-3{--mdb-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--mdb-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--mdb-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--mdb-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--mdb-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--mdb-gutter-y: 3rem}}@media(min-width: 1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--mdb-gutter-x: 0}.g-xl-0,.gy-xl-0{--mdb-gutter-y: 0}.g-xl-1,.gx-xl-1{--mdb-gutter-x: 0.25rem}.g-xl-1,.gy-xl-1{--mdb-gutter-y: 0.25rem}.g-xl-2,.gx-xl-2{--mdb-gutter-x: 0.5rem}.g-xl-2,.gy-xl-2{--mdb-gutter-y: 0.5rem}.g-xl-3,.gx-xl-3{--mdb-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--mdb-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--mdb-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--mdb-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--mdb-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--mdb-gutter-y: 3rem}}@media(min-width: 1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--mdb-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--mdb-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--mdb-gutter-x: 0.25rem}.g-xxl-1,.gy-xxl-1{--mdb-gutter-y: 0.25rem}.g-xxl-2,.gx-xxl-2{--mdb-gutter-x: 0.5rem}.g-xxl-2,.gy-xxl-2{--mdb-gutter-y: 0.5rem}.g-xxl-3,.gx-xxl-3{--mdb-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--mdb-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--mdb-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--mdb-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--mdb-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--mdb-gutter-y: 3rem}}.table{--mdb-table-color-type: initial;--mdb-table-bg-type: initial;--mdb-table-color-state: initial;--mdb-table-bg-state: initial;--mdb-table-color: var(--mdb-body-color);--mdb-table-bg: var(--mdb-body-bg);--mdb-table-border-color: var(--mdb-border-color);--mdb-table-accent-bg: transparent;--mdb-table-striped-color: var(--mdb-body-color);--mdb-table-striped-bg: rgba(0, 0, 0, 0.02);--mdb-table-active-color: var(--mdb-body-color);--mdb-table-active-bg: rgba(var(--mdb-emphasis-color-rgb), 0.1);--mdb-table-hover-color: var(--mdb-body-color);--mdb-table-hover-bg: rgba(0, 0, 0, 0.025);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--mdb-table-border-color)}.table>:not(caption)>*>*{padding:1rem 1.4rem;color:var(--mdb-table-color-state, var(--mdb-table-color-type, var(--mdb-table-color)));background-color:var(--mdb-table-bg);border-bottom-width:var(--mdb-border-width);box-shadow:inset 0 0 0 9999px var(--mdb-table-bg-state, var(--mdb-table-bg-type, var(--mdb-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--mdb-border-width)*2) solid inherit}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.5rem .5rem}.table-bordered>:not(caption)>*{border-width:var(--mdb-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--mdb-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--mdb-table-color-type: var(--mdb-table-striped-color);--mdb-table-bg-type: var(--mdb-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--mdb-table-color-type: var(--mdb-table-striped-color);--mdb-table-bg-type: var(--mdb-table-striped-bg)}.table-active{--mdb-table-color-state: var(--mdb-table-active-color);--mdb-table-bg-state: var(--mdb-table-active-bg)}.table-hover>tbody>tr:hover>*{--mdb-table-color-state: var(--mdb-table-hover-color);--mdb-table-bg-state: var(--mdb-table-hover-bg)}.table-primary{--mdb-table-color: #000;--mdb-table-bg: #d8e3f4;--mdb-table-border-color: #adb6c3;--mdb-table-striped-bg: #cdd8e8;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c2ccdc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c8d2e2;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-secondary{--mdb-table-color: #000;--mdb-table-bg: #ecedf0;--mdb-table-border-color: #bdbec0;--mdb-table-striped-bg: #e0e1e4;--mdb-table-striped-color: #000;--mdb-table-active-bg: #d4d5d8;--mdb-table-active-color: #000;--mdb-table-hover-bg: #dadbde;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-success{--mdb-table-color: #000;--mdb-table-bg: #d0eddb;--mdb-table-border-color: #a6beaf;--mdb-table-striped-bg: #c6e1d0;--mdb-table-striped-color: #000;--mdb-table-active-bg: #bbd5c5;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c0dbcb;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-info{--mdb-table-color: #000;--mdb-table-bg: #ddf0f6;--mdb-table-border-color: #b1c0c5;--mdb-table-striped-bg: #d2e4ea;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c7d8dd;--mdb-table-active-color: #000;--mdb-table-hover-bg: #ccdee4;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-warning{--mdb-table-color: #000;--mdb-table-bg: #faecd1;--mdb-table-border-color: #c8bda7;--mdb-table-striped-bg: #eee0c7;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e1d4bc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e7dac1;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-danger{--mdb-table-color: #000;--mdb-table-bg: #f8dbe0;--mdb-table-border-color: #c6afb3;--mdb-table-striped-bg: #ecd0d5;--mdb-table-striped-color: #000;--mdb-table-active-bg: #dfc5ca;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e5cbcf;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-light{--mdb-table-color: #000;--mdb-table-bg: #fbfbfb;--mdb-table-border-color: #c9c9c9;--mdb-table-striped-bg: #eeeeee;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e2e2e2;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e8e8e8;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-dark{--mdb-table-color: #fff;--mdb-table-bg: #332d2d;--mdb-table-border-color: #5c5757;--mdb-table-striped-bg: #3d3838;--mdb-table-striped-color: #fff;--mdb-table-active-bg: #474242;--mdb-table-active-color: #fff;--mdb-table-hover-bg: #423d3d;--mdb-table-hover-color: #fff;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem;color:var(--mdb-form-control-label-color)}.col-form-label{padding-top:calc(0.375rem + var(--mdb-border-width));padding-bottom:calc(0.375rem + var(--mdb-border-width));margin-bottom:0;font-size:inherit;line-height:1.6;color:var(--mdb-form-control-label-color)}.col-form-label-lg{padding-top:calc(0.5rem + var(--mdb-border-width));padding-bottom:calc(0.5rem + var(--mdb-border-width));font-size:1rem}.col-form-label-sm{padding-top:calc(0.25rem + var(--mdb-border-width));padding-bottom:calc(0.25rem + var(--mdb-border-width));font-size:0.775rem}.form-text{margin-top:.25rem;font-size:0.875em;color:var(--mdb-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--mdb-surface-color);appearance:none;background-color:var(--mdb-body-bg);background-clip:padding-box;border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius);box-shadow:var(--mdb-box-shadow-inset);transition:all .2s linear}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--mdb-surface-color);background-color:var(--mdb-body-bg);border-color:var(--mdb-input-focus-border-color);outline:0;box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(59,113,202,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.6em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(var(--mdb-surface-color-rgb), 0.8);opacity:1}.form-control:disabled{background-color:var(--mdb-secondary-bg);opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:var(--mdb-surface-color);background-color:var(--mdb-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--mdb-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--mdb-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.6;color:var(--mdb-body-color);background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:var(--mdb-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.6em + 0.5rem + calc(var(--mdb-border-width) * 2));padding:.25rem .5rem;font-size:0.775rem;border-radius:var(--mdb-border-radius-sm)}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--mdb-border-width) * 2));padding:.5rem 1rem;font-size:1rem;border-radius:var(--mdb-border-radius-lg)}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.6em + 0.75rem + calc(var(--mdb-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.6em + 0.5rem + calc(var(--mdb-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.6em + 1rem + calc(var(--mdb-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.6em + 0.75rem + calc(var(--mdb-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important;border-radius:var(--mdb-border-radius)}.form-control-color::-webkit-color-swatch{border:0 !important;border-radius:var(--mdb-border-radius)}.form-control-color.form-control-sm{height:calc(1.6em + 0.5rem + calc(var(--mdb-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.6em + 1rem + calc(var(--mdb-border-width) * 2))}.form-select{--mdb-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%234f4f4f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--mdb-surface-color);appearance:none;background-color:var(--mdb-body-bg);background-image:var(--mdb-form-select-bg-img),var(--mdb-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius);box-shadow:var(--mdb-box-shadow-inset);transition:all .2s linear}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#3b71ca;outline:0;box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(59,113,202,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--mdb-secondary-bg)}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 var(--mdb-surface-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.775rem;border-radius:var(--mdb-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1rem;border-radius:var(--mdb-border-radius-lg)}[data-mdb-theme=dark] .form-select{--mdb-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.6rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--mdb-form-check-bg: var(--mdb-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.3em;vertical-align:top;appearance:none;background-color:var(--mdb-form-check-bg);background-image:var(--mdb-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--mdb-border-width) solid var(--mdb-border-color);print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:var(--mdb-input-focus-border-color);outline:0;box-shadow:0 0 0 .25rem rgba(59,113,202,.25)}.form-check-input:checked{background-color:#3b71ca;border-color:#3b71ca}.form-check-input:checked[type=checkbox]{--mdb-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--mdb-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#3b71ca;border-color:#757575;--mdb-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--mdb-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='var%28--mdb-input-focus-border-color%29'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--mdb-form-switch-bg: 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")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-mdb-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--mdb-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(59,113,202,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(59,113,202,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;background-color:#3b71ca;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#c4d4ef}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--mdb-secondary-bg);border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:var(--mdb-box-shadow-inset)}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;background-color:#3b71ca;border:0;border-radius:1rem;box-shadow:0 .1rem .25rem rgba(0,0,0,.1);transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#c4d4ef}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:var(--mdb-secondary-bg);border-color:rgba(0,0,0,0);border-radius:1rem;box-shadow:var(--mdb-box-shadow-inset)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--mdb-form-control-disabled-bg)}.form-range:disabled::-moz-range-thumb{background-color:var(--mdb-form-control-disabled-bg)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--mdb-border-width) * 2));min-height:calc(3.5rem + calc(var(--mdb-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--mdb-border-width) solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--mdb-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--mdb-body-bg);border-radius:var(--mdb-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--mdb-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--mdb-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#757575}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:var(--mdb-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.6;color:var(--mdb-surface-color);text-align:center;white-space:nowrap;background-color:var(--mdb-tertiary-bg);border:var(--mdb-border-width) solid var(--mdb-border-color);border-radius:var(--mdb-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1rem;border-radius:var(--mdb-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.775rem;border-radius:var(--mdb-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--mdb-border-width)*-1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:var(--mdb-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--mdb-success);border-radius:.25rem}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--mdb-form-valid-border-color);padding-right:calc(1.6em + 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='%2314a44d' d='M2.3 6.73.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:right calc(0.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--mdb-form-valid-border-color);box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(var(--mdb-success-rgb), 0.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--mdb-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--mdb-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2314a44d' d='M2.3 6.73.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");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--mdb-form-valid-border-color);box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(var(--mdb-success-rgb), 0.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--mdb-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--mdb-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--mdb-success-rgb), 0.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--mdb-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:var(--mdb-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:var(--mdb-danger);border-radius:.25rem}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--mdb-form-invalid-border-color);padding-right:calc(1.6em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc4c64'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc4c64' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.4em + 0.1875rem) center;background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--mdb-form-invalid-border-color);box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(var(--mdb-danger-rgb), 0.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.6em + 0.75rem);background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--mdb-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--mdb-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc4c64'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc4c64' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.8em + 0.375rem) calc(0.8em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--mdb-form-invalid-border-color);box-shadow:var(--mdb-box-shadow-inset),0 0 0 .25rem rgba(var(--mdb-danger-rgb), 0.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.6em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--mdb-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--mdb-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--mdb-danger-rgb), 0.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--mdb-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--mdb-btn-padding-x: 1.5rem;--mdb-btn-padding-y: 0.375rem;--mdb-btn-font-family: ;--mdb-btn-font-size:0.75rem;--mdb-btn-font-weight: 500;--mdb-btn-line-height: 1.5;--mdb-btn-color: var(--mdb-body-color);--mdb-btn-bg: transparent;--mdb-btn-border-width: 2px;--mdb-btn-border-color: transparent;--mdb-btn-border-radius: 0.25rem;--mdb-btn-hover-border-color: transparent;--mdb-btn-box-shadow: 0 4px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.35);--mdb-btn-disabled-opacity: 0.65;--mdb-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--mdb-btn-focus-shadow-rgb), 0.5);display:inline-block;padding:var(--mdb-btn-padding-y) var(--mdb-btn-padding-x);font-family:var(--mdb-btn-font-family);font-size:var(--mdb-btn-font-size);font-weight:var(--mdb-btn-font-weight);line-height:var(--mdb-btn-line-height);color:var(--mdb-btn-color);text-align:center;vertical-align:middle;cursor:pointer;user-select:none;border:var(--mdb-btn-border-width) solid var(--mdb-btn-border-color);border-radius:var(--mdb-btn-border-radius);background-color:var(--mdb-btn-bg);box-shadow:var(--mdb-btn-box-shadow);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--mdb-btn-hover-color);background-color:var(--mdb-btn-hover-bg);border-color:var(--mdb-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--mdb-btn-color);background-color:var(--mdb-btn-bg);border-color:var(--mdb-btn-border-color)}.btn:focus-visible{color:var(--mdb-btn-hover-color);background-color:var(--mdb-btn-hover-bg);border-color:var(--mdb-btn-hover-border-color);outline:0;box-shadow:var(--mdb-btn-box-shadow),var(--mdb-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--mdb-btn-hover-border-color);outline:0;box-shadow:var(--mdb-btn-box-shadow),var(--mdb-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--mdb-btn-active-color);background-color:var(--mdb-btn-active-bg);border-color:var(--mdb-btn-active-border-color);box-shadow:var(--mdb-btn-active-shadow)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--mdb-btn-active-shadow),var(--mdb-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--mdb-btn-active-shadow),var(--mdb-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--mdb-btn-disabled-color);pointer-events:none;background-color:var(--mdb-btn-disabled-bg);border-color:var(--mdb-btn-disabled-border-color);opacity:var(--mdb-btn-disabled-opacity);box-shadow:none}.btn-primary{--mdb-btn-color: #fff;--mdb-btn-bg: #3b71ca;--mdb-btn-border-color: #3b71ca;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #386bc0;--mdb-btn-hover-border-color: #2f5aa2;--mdb-btn-focus-shadow-rgb: 88, 134, 210;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #3566b6;--mdb-btn-active-border-color: #2c5598;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #3b71ca;--mdb-btn-disabled-border-color: #3b71ca}.btn-secondary{--mdb-btn-color: #fff;--mdb-btn-bg: #9fa6b2;--mdb-btn-border-color: #9fa6b2;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #979ea9;--mdb-btn-hover-border-color: #7f858e;--mdb-btn-focus-shadow-rgb: 173, 179, 190;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #8f95a0;--mdb-btn-active-border-color: #777d86;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #9fa6b2;--mdb-btn-disabled-border-color: #9fa6b2}.btn-success{--mdb-btn-color: #fff;--mdb-btn-bg: #14a44d;--mdb-btn-border-color: #14a44d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #139c49;--mdb-btn-hover-border-color: #10833e;--mdb-btn-focus-shadow-rgb: 55, 178, 104;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #129445;--mdb-btn-active-border-color: #0f7b3a;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #14a44d;--mdb-btn-disabled-border-color: #14a44d}.btn-danger{--mdb-btn-color: #fff;--mdb-btn-bg: #dc4c64;--mdb-btn-border-color: #dc4c64;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #d1485f;--mdb-btn-hover-border-color: #b03d50;--mdb-btn-focus-shadow-rgb: 225, 103, 123;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #c6445a;--mdb-btn-active-border-color: #a5394b;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #dc4c64;--mdb-btn-disabled-border-color: #dc4c64}.btn-warning{--mdb-btn-color: #fff;--mdb-btn-bg: #e4a11b;--mdb-btn-border-color: #e4a11b;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #d9991a;--mdb-btn-hover-border-color: #b68116;--mdb-btn-focus-shadow-rgb: 232, 175, 61;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #cd9118;--mdb-btn-active-border-color: #ab7914;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #e4a11b;--mdb-btn-disabled-border-color: #e4a11b}.btn-info{--mdb-btn-color: #fff;--mdb-btn-bg: #54b4d3;--mdb-btn-border-color: #54b4d3;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #50abc8;--mdb-btn-hover-border-color: #4390a9;--mdb-btn-focus-shadow-rgb: 110, 191, 218;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #4ca2be;--mdb-btn-active-border-color: #3f879e;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #54b4d3;--mdb-btn-disabled-border-color: #54b4d3}.btn-light{--mdb-btn-color: #000;--mdb-btn-bg: #fbfbfb;--mdb-btn-border-color: #fbfbfb;--mdb-btn-hover-color: #000;--mdb-btn-hover-bg: #eeeeee;--mdb-btn-hover-border-color: #c9c9c9;--mdb-btn-focus-shadow-rgb: 213, 213, 213;--mdb-btn-active-color: #000;--mdb-btn-active-bg: #e2e2e2;--mdb-btn-active-border-color: #bcbcbc;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #000;--mdb-btn-disabled-bg: #fbfbfb;--mdb-btn-disabled-border-color: #fbfbfb}.btn-dark{--mdb-btn-color: #fff;--mdb-btn-bg: #332d2d;--mdb-btn-border-color: #332d2d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #3d3838;--mdb-btn-hover-border-color: #474242;--mdb-btn-focus-shadow-rgb: 82, 77, 77;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #474242;--mdb-btn-active-border-color: #474242;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fff;--mdb-btn-disabled-bg: #332d2d;--mdb-btn-disabled-border-color: #332d2d}.btn-outline-primary{--mdb-btn-color: #3b71ca;--mdb-btn-border-color: #3b71ca;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #3b71ca;--mdb-btn-hover-border-color: #3b71ca;--mdb-btn-focus-shadow-rgb: 59, 113, 202;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #3b71ca;--mdb-btn-active-border-color: #3b71ca;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #3b71ca;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #3b71ca;--mdb-gradient: none}.btn-outline-secondary{--mdb-btn-color: #9fa6b2;--mdb-btn-border-color: #9fa6b2;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #9fa6b2;--mdb-btn-hover-border-color: #9fa6b2;--mdb-btn-focus-shadow-rgb: 159, 166, 178;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #9fa6b2;--mdb-btn-active-border-color: #9fa6b2;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #9fa6b2;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #9fa6b2;--mdb-gradient: none}.btn-outline-success{--mdb-btn-color: #14a44d;--mdb-btn-border-color: #14a44d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #14a44d;--mdb-btn-hover-border-color: #14a44d;--mdb-btn-focus-shadow-rgb: 20, 164, 77;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #14a44d;--mdb-btn-active-border-color: #14a44d;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #14a44d;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #14a44d;--mdb-gradient: none}.btn-outline-danger{--mdb-btn-color: #dc4c64;--mdb-btn-border-color: #dc4c64;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #dc4c64;--mdb-btn-hover-border-color: #dc4c64;--mdb-btn-focus-shadow-rgb: 220, 76, 100;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #dc4c64;--mdb-btn-active-border-color: #dc4c64;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #dc4c64;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #dc4c64;--mdb-gradient: none}.btn-outline-warning{--mdb-btn-color: #e4a11b;--mdb-btn-border-color: #e4a11b;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #e4a11b;--mdb-btn-hover-border-color: #e4a11b;--mdb-btn-focus-shadow-rgb: 228, 161, 27;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #e4a11b;--mdb-btn-active-border-color: #e4a11b;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #e4a11b;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #e4a11b;--mdb-gradient: none}.btn-outline-info{--mdb-btn-color: #54b4d3;--mdb-btn-border-color: #54b4d3;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #54b4d3;--mdb-btn-hover-border-color: #54b4d3;--mdb-btn-focus-shadow-rgb: 84, 180, 211;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #54b4d3;--mdb-btn-active-border-color: #54b4d3;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #54b4d3;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #54b4d3;--mdb-gradient: none}.btn-outline-light{--mdb-btn-color: #fbfbfb;--mdb-btn-border-color: #fbfbfb;--mdb-btn-hover-color: #000;--mdb-btn-hover-bg: #fbfbfb;--mdb-btn-hover-border-color: #fbfbfb;--mdb-btn-focus-shadow-rgb: 251, 251, 251;--mdb-btn-active-color: #000;--mdb-btn-active-bg: #fbfbfb;--mdb-btn-active-border-color: #fbfbfb;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #fbfbfb;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #fbfbfb;--mdb-gradient: none}.btn-outline-dark{--mdb-btn-color: #332d2d;--mdb-btn-border-color: #332d2d;--mdb-btn-hover-color: #fff;--mdb-btn-hover-bg: #332d2d;--mdb-btn-hover-border-color: #332d2d;--mdb-btn-focus-shadow-rgb: 51, 45, 45;--mdb-btn-active-color: #fff;--mdb-btn-active-bg: #332d2d;--mdb-btn-active-border-color: #332d2d;--mdb-btn-active-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-disabled-color: #332d2d;--mdb-btn-disabled-bg: transparent;--mdb-btn-disabled-border-color: #332d2d;--mdb-gradient: none}.btn-link{--mdb-btn-font-weight: 400;--mdb-btn-color: #3b71ca;--mdb-btn-bg: transparent;--mdb-btn-border-color: transparent;--mdb-btn-hover-color: #386bc0;--mdb-btn-hover-border-color: transparent;--mdb-btn-active-color: #386bc0;--mdb-btn-active-border-color: transparent;--mdb-btn-disabled-color: #9e9e9e;--mdb-btn-disabled-border-color: transparent;--mdb-btn-box-shadow: 0 0 0 #000;--mdb-btn-focus-shadow-rgb: 88, 134, 210;text-decoration:none}.btn-link:hover,.btn-link:focus-visible{text-decoration:none}.btn-link:focus-visible{color:var(--mdb-btn-color)}.btn-link:hover{color:var(--mdb-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--mdb-btn-padding-y: 0.5rem;--mdb-btn-padding-x: 1.6875rem;--mdb-btn-font-size:0.875rem;--mdb-btn-border-radius: var(--mdb-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--mdb-btn-padding-y: 0.25rem;--mdb-btn-padding-x: 1rem;--mdb-btn-font-size:0.75rem;--mdb-btn-border-radius: var(--mdb-border-radius-sm)}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--mdb-dropdown-zindex: 1000;--mdb-dropdown-min-width: 10rem;--mdb-dropdown-padding-x: 0;--mdb-dropdown-padding-y: 0.5rem;--mdb-dropdown-spacer: 0.125rem;--mdb-dropdown-font-size:0.875rem;--mdb-dropdown-color: var(--mdb-surface-color);--mdb-dropdown-bg: var(--mdb-surface-bg);--mdb-dropdown-border-color: var(--mdb-border-color-translucent);--mdb-dropdown-border-radius: 0.5rem;--mdb-dropdown-border-width: var(--mdb-border-width);--mdb-dropdown-inner-border-radius: calc(0.5rem - var(--mdb-border-width));--mdb-dropdown-divider-bg: var(--mdb-divider-color);--mdb-dropdown-divider-margin-y: 0.5rem;--mdb-dropdown-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-dropdown-link-color: var(--mdb-surface-color);--mdb-dropdown-link-hover-color: var(--mdb-surface-color);--mdb-dropdown-link-hover-bg: var(--mdb-tertiary-bg);--mdb-dropdown-link-active-color: #fff;--mdb-dropdown-link-active-bg: #3b71ca;--mdb-dropdown-link-disabled-color: rgba(var(--mdb-surface-color-rgb), 0.5);--mdb-dropdown-item-padding-x: 1rem;--mdb-dropdown-item-padding-y: 0.5rem;--mdb-dropdown-header-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-dropdown-header-padding-x: 1rem;--mdb-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--mdb-dropdown-zindex);display:none;min-width:var(--mdb-dropdown-min-width);padding:var(--mdb-dropdown-padding-y) var(--mdb-dropdown-padding-x);margin:0;font-size:var(--mdb-dropdown-font-size);color:var(--mdb-dropdown-color);text-align:left;list-style:none;background-color:var(--mdb-dropdown-bg);background-clip:padding-box;border:var(--mdb-dropdown-border-width) solid var(--mdb-dropdown-border-color);border-radius:var(--mdb-dropdown-border-radius);box-shadow:var(--mdb-dropdown-box-shadow)}.dropdown-menu[data-mdb-popper]{top:100%;left:0;margin-top:var(--mdb-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-mdb-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-mdb-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-mdb-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-mdb-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-mdb-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--mdb-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-mdb-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--mdb-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-mdb-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--mdb-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--mdb-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--mdb-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--mdb-dropdown-item-padding-y) var(--mdb-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--mdb-dropdown-link-color);text-align:inherit;white-space:nowrap;background-color:rgba(0,0,0,0);border:0;border-radius:var(--mdb-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--mdb-dropdown-link-hover-color);background-color:var(--mdb-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--mdb-dropdown-link-active-color);text-decoration:none;background-color:var(--mdb-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--mdb-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--mdb-dropdown-header-padding-y) var(--mdb-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--mdb-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--mdb-dropdown-item-padding-y) var(--mdb-dropdown-item-padding-x);color:var(--mdb-dropdown-link-color)}.dropdown-menu-dark{--mdb-dropdown-color: #e0e0e0;--mdb-dropdown-bg: #4f4f4f;--mdb-dropdown-border-color: var(--mdb-border-color-translucent);--mdb-dropdown-box-shadow: ;--mdb-dropdown-link-color: #e0e0e0;--mdb-dropdown-link-hover-color: #fff;--mdb-dropdown-divider-bg: var(--mdb-divider-color);--mdb-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--mdb-dropdown-link-active-color: #fff;--mdb-dropdown-link-active-bg: #3b71ca;--mdb-dropdown-link-disabled-color: #9e9e9e;--mdb-dropdown-header-color: #9e9e9e}.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-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.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{border-radius:.25rem}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(2px*-1)}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:1.265625rem;padding-left:1.265625rem}.btn-group.show .dropdown-toggle{box-shadow:0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15),0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1)}.btn-group.show .dropdown-toggle.btn-link{box-shadow:none}.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:calc(2px*-1)}.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~.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--mdb-nav-link-padding-x: 1rem;--mdb-nav-link-padding-y: 0.5rem;--mdb-nav-link-font-weight: ;--mdb-nav-link-color: var(--mdb-link-color);--mdb-nav-link-hover-color: var(--mdb-link-hover-color);--mdb-nav-link-disabled-color: var(--mdb-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--mdb-nav-link-padding-y) var(--mdb-nav-link-padding-x);font-size:var(--mdb-nav-link-font-size);font-weight:var(--mdb-nav-link-font-weight);color:var(--mdb-nav-link-color);background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--mdb-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(59,113,202,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--mdb-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--mdb-nav-tabs-border-width: var(--mdb-border-width);--mdb-nav-tabs-border-color: var(--mdb-border-color);--mdb-nav-tabs-border-radius: var(--mdb-border-radius);--mdb-nav-tabs-link-hover-border-color: var(--mdb-secondary-bg) var(--mdb-secondary-bg) var(--mdb-border-color);--mdb-nav-tabs-link-active-color: #3b71ca;--mdb-nav-tabs-link-active-bg: var(--mdb-body-bg);--mdb-nav-tabs-link-active-border-color: #3b71ca;border-bottom:var(--mdb-nav-tabs-border-width) solid var(--mdb-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--mdb-nav-tabs-border-width));border:var(--mdb-nav-tabs-border-width) solid rgba(0,0,0,0);border-top-left-radius:var(--mdb-nav-tabs-border-radius);border-top-right-radius:var(--mdb-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--mdb-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--mdb-nav-tabs-link-active-color);background-color:var(--mdb-nav-tabs-link-active-bg);border-color:var(--mdb-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--mdb-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--mdb-nav-pills-border-radius: var(--mdb-border-radius);--mdb-nav-pills-link-active-color: var(--mdb-primary-text-emphasis);--mdb-nav-pills-link-active-bg: var(--mdb-primary-bg-subtle)}.nav-pills .nav-link{border-radius:var(--mdb-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--mdb-nav-pills-link-active-color);background-color:var(--mdb-nav-pills-link-active-bg)}.nav-underline{--mdb-nav-underline-gap: 1rem;--mdb-nav-underline-border-width: 0.125rem;--mdb-nav-underline-link-active-color: var(--mdb-emphasis-color);gap:var(--mdb-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--mdb-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--mdb-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--mdb-navbar-padding-x: 0;--mdb-navbar-padding-y: 0.5rem;--mdb-navbar-color: rgba(var(--mdb-emphasis-color-rgb), 0.65);--mdb-navbar-hover-color: rgba(var(--mdb-emphasis-color-rgb), 0.8);--mdb-navbar-disabled-color: rgba(var(--mdb-emphasis-color-rgb), 0.3);--mdb-navbar-active-color: rgba(var(--mdb-emphasis-color-rgb), 1);--mdb-navbar-brand-padding-y: 0.3rem;--mdb-navbar-brand-margin-end: 1rem;--mdb-navbar-brand-font-size: 1.25rem;--mdb-navbar-brand-color: rgba(var(--mdb-emphasis-color-rgb), 1);--mdb-navbar-brand-hover-color: rgba(var(--mdb-emphasis-color-rgb), 1);--mdb-navbar-nav-link-padding-x: 0.5rem;--mdb-navbar-toggler-padding-y: 0.25rem;--mdb-navbar-toggler-padding-x: 0.75rem;--mdb-navbar-toggler-font-size: 1.25rem;--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2879, 79, 79, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--mdb-navbar-toggler-border-color: rgba(var(--mdb-emphasis-color-rgb), 0.15);--mdb-navbar-toggler-border-radius: 0.25rem;--mdb-navbar-toggler-focus-width: 0.25rem;--mdb-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--mdb-navbar-padding-y) var(--mdb-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--mdb-navbar-brand-padding-y);padding-bottom:var(--mdb-navbar-brand-padding-y);margin-right:var(--mdb-navbar-brand-margin-end);font-size:var(--mdb-navbar-brand-font-size);color:var(--mdb-navbar-brand-color);white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--mdb-navbar-brand-hover-color)}.navbar-nav{--mdb-nav-link-padding-x: 0;--mdb-nav-link-padding-y: 0.5rem;--mdb-nav-link-font-weight: ;--mdb-nav-link-color: var(--mdb-navbar-color);--mdb-nav-link-hover-color: var(--mdb-navbar-hover-color);--mdb-nav-link-disabled-color: var(--mdb-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--mdb-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--mdb-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--mdb-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--mdb-navbar-toggler-padding-y) var(--mdb-navbar-toggler-padding-x);font-size:var(--mdb-navbar-toggler-font-size);line-height:1;color:var(--mdb-navbar-color);background-color:rgba(0,0,0,0);border:var(--mdb-border-width) solid var(--mdb-navbar-toggler-border-color);border-radius:var(--mdb-navbar-toggler-border-radius);transition:var(--mdb-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--mdb-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--mdb-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--mdb-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--mdb-navbar-nav-link-padding-x);padding-left:var(--mdb-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;box-shadow:none;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-mdb-theme=dark]{--mdb-navbar-color: rgba(255, 255, 255, 0.55);--mdb-navbar-hover-color: rgba(255, 255, 255, 0.75);--mdb-navbar-disabled-color: rgba(255, 255, 255, 0.25);--mdb-navbar-active-color: #fff;--mdb-navbar-brand-color: #fff;--mdb-navbar-brand-hover-color: #fff;--mdb-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-mdb-theme=dark] .navbar-toggler-icon{--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--mdb-card-spacer-y: 1.5rem;--mdb-card-spacer-x: 1.5rem;--mdb-card-title-spacer-y: 0.5rem;--mdb-card-title-color: ;--mdb-card-subtitle-color: ;--mdb-card-border-width: var(--mdb-border-width);--mdb-card-border-color: rgba(0, 0, 0, 0.175);--mdb-card-border-radius: 0.5rem;--mdb-card-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-card-inner-border-radius: calc(0.5rem - (var(--mdb-border-width)));--mdb-card-cap-padding-y: 0.75rem;--mdb-card-cap-padding-x: 1.5rem;--mdb-card-cap-bg: rgba(255, 255, 255, 0);--mdb-card-cap-color: ;--mdb-card-height: ;--mdb-card-color: ;--mdb-card-bg: var(--mdb-surface-bg);--mdb-card-img-overlay-padding: 1.5rem;--mdb-card-group-margin: 0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--mdb-card-height);color:var(--mdb-body-color);word-wrap:break-word;background-color:var(--mdb-card-bg);background-clip:border-box;border:var(--mdb-card-border-width) solid var(--mdb-card-border-color);border-radius:var(--mdb-card-border-radius);box-shadow:var(--mdb-card-box-shadow)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--mdb-card-inner-border-radius);border-top-right-radius:var(--mdb-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--mdb-card-inner-border-radius);border-bottom-left-radius:var(--mdb-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--mdb-card-spacer-y) var(--mdb-card-spacer-x);color:var(--mdb-card-color)}.card-title{margin-bottom:var(--mdb-card-title-spacer-y);color:var(--mdb-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--mdb-card-title-spacer-y));margin-bottom:0;color:var(--mdb-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--mdb-card-spacer-x)}.card-header{padding:var(--mdb-card-cap-padding-y) var(--mdb-card-cap-padding-x);margin-bottom:0;color:var(--mdb-card-cap-color);background-color:var(--mdb-card-cap-bg);border-bottom:var(--mdb-card-border-width) solid var(--mdb-card-border-color)}.card-header:first-child{border-radius:var(--mdb-card-inner-border-radius) var(--mdb-card-inner-border-radius) 0 0}.card-footer{padding:var(--mdb-card-cap-padding-y) var(--mdb-card-cap-padding-x);color:var(--mdb-card-cap-color);background-color:var(--mdb-card-cap-bg);border-top:var(--mdb-card-border-width) solid var(--mdb-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--mdb-card-inner-border-radius) var(--mdb-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-0.5*var(--mdb-card-cap-padding-x));margin-bottom:calc(-1*var(--mdb-card-cap-padding-y));margin-left:calc(-0.5*var(--mdb-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--mdb-card-bg);border-bottom-color:var(--mdb-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--mdb-card-cap-padding-x));margin-left:calc(-0.5*var(--mdb-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--mdb-card-img-overlay-padding);border-radius:var(--mdb-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--mdb-card-inner-border-radius);border-top-right-radius:var(--mdb-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--mdb-card-inner-border-radius);border-bottom-left-radius:var(--mdb-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--mdb-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-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}}.accordion{--mdb-accordion-color: var(--mdb-surface-color);--mdb-accordion-bg: var(--mdb-body-bg);--mdb-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--mdb-accordion-border-color: var(--mdb-border-color);--mdb-accordion-border-width: var(--mdb-border-width);--mdb-accordion-border-radius: 0.5rem;--mdb-accordion-inner-border-radius: calc(0.5rem - (var(--mdb-border-width)));--mdb-accordion-btn-padding-x: 1.5rem;--mdb-accordion-btn-padding-y: 1.15rem;--mdb-accordion-btn-color: var(--mdb-surface-color);--mdb-accordion-btn-bg: var(--mdb-accordion-bg);--mdb-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%234f4f4f' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--mdb-accordion-btn-icon-width: 1.25rem;--mdb-accordion-btn-icon-transform: rotate(-180deg);--mdb-accordion-btn-icon-transition: transform 0.2s ease-in-out;--mdb-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%233b71ca' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e");--mdb-accordion-btn-focus-box-shadow: inset 0 -1px 0 var(--mdb-border-color);--mdb-accordion-body-padding-x: 1.5rem;--mdb-accordion-body-padding-y: 1.15rem;--mdb-accordion-active-color: #3b71ca;--mdb-accordion-active-bg: var(--mdb-surface-bg)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--mdb-accordion-btn-padding-y) var(--mdb-accordion-btn-padding-x);font-size:1rem;color:var(--mdb-accordion-btn-color);text-align:left;background-color:var(--mdb-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--mdb-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--mdb-accordion-active-color);background-color:var(--mdb-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--mdb-accordion-border-width)) 0 var(--mdb-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--mdb-accordion-btn-active-icon);transform:var(--mdb-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--mdb-accordion-btn-icon-width);height:var(--mdb-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--mdb-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--mdb-accordion-btn-icon-width);transition:var(--mdb-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--mdb-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--mdb-accordion-color);background-color:var(--mdb-accordion-bg);border:var(--mdb-accordion-border-width) solid var(--mdb-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--mdb-accordion-border-radius);border-top-right-radius:var(--mdb-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--mdb-accordion-inner-border-radius);border-top-right-radius:var(--mdb-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--mdb-accordion-border-radius);border-bottom-left-radius:var(--mdb-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--mdb-accordion-inner-border-radius);border-bottom-left-radius:var(--mdb-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--mdb-accordion-border-radius);border-bottom-left-radius:var(--mdb-accordion-border-radius)}.accordion-body{padding:var(--mdb-accordion-body-padding-y) var(--mdb-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}.accordion-flush>.accordion-item>.accordion-collapse{border-radius:0}[data-mdb-theme=dark] .accordion-button::after{--mdb-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--mdb-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%233b71ca'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--mdb-breadcrumb-padding-x: 0;--mdb-breadcrumb-padding-y: 0;--mdb-breadcrumb-margin-bottom: 1rem;--mdb-breadcrumb-bg: ;--mdb-breadcrumb-border-radius: ;--mdb-breadcrumb-divider-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-breadcrumb-item-padding-x: 0.5rem;--mdb-breadcrumb-item-active-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);display:flex;flex-wrap:wrap;padding:var(--mdb-breadcrumb-padding-y) var(--mdb-breadcrumb-padding-x);margin-bottom:var(--mdb-breadcrumb-margin-bottom);font-size:var(--mdb-breadcrumb-font-size);list-style:none;background-color:var(--mdb-breadcrumb-bg);border-radius:var(--mdb-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--mdb-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--mdb-breadcrumb-item-padding-x);color:var(--mdb-breadcrumb-divider-color);content:var(--mdb-breadcrumb-divider, "/") /* rtl: var(--mdb-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--mdb-breadcrumb-item-active-color)}.pagination{--mdb-pagination-padding-x: 0.75rem;--mdb-pagination-padding-y: 0.375rem;--mdb-pagination-font-size:0.9rem;--mdb-pagination-color: var(--mdb-body-color);--mdb-pagination-bg: var(--mdb-body-bg);--mdb-pagination-border-width: var(--mdb-border-width);--mdb-pagination-border-color: var(--mdb-border-color);--mdb-pagination-border-radius: 0.25rem;--mdb-pagination-hover-color: var(--mdb-body-color);--mdb-pagination-hover-bg: var(--mdb-highlight-bg-color);--mdb-pagination-hover-border-color: var(--mdb-border-color);--mdb-pagination-focus-color: var(--mdb-link-hover-color);--mdb-pagination-focus-bg: var(--mdb-highlight-bg-color);--mdb-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(59, 113, 202, 0.25);--mdb-pagination-active-color: var(--mdb-primary-text-emphasis);--mdb-pagination-active-bg: var(--mdb-primary-bg-subtle);--mdb-pagination-active-border-color: #3b71ca;--mdb-pagination-disabled-color: rgba(var(--mdb-body-color-rgb), 0.55);--mdb-pagination-disabled-bg: transparent;--mdb-pagination-disabled-border-color: var(--mdb-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--mdb-pagination-padding-y) var(--mdb-pagination-padding-x);font-size:var(--mdb-pagination-font-size);color:var(--mdb-pagination-color);background-color:var(--mdb-pagination-bg);border:var(--mdb-pagination-border-width) solid var(--mdb-pagination-border-color);transition:all .3s linear}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--mdb-pagination-hover-color);background-color:var(--mdb-pagination-hover-bg);border-color:var(--mdb-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--mdb-pagination-focus-color);background-color:var(--mdb-pagination-focus-bg);outline:0;box-shadow:var(--mdb-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--mdb-pagination-active-color);background-color:var(--mdb-pagination-active-bg);border-color:var(--mdb-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--mdb-pagination-disabled-color);pointer-events:none;background-color:var(--mdb-pagination-disabled-bg);border-color:var(--mdb-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--mdb-border-width)*-1)}.page-item:first-child .page-link{border-top-left-radius:var(--mdb-pagination-border-radius);border-bottom-left-radius:var(--mdb-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--mdb-pagination-border-radius);border-bottom-right-radius:var(--mdb-pagination-border-radius)}.pagination-lg{--mdb-pagination-padding-x: 1.5rem;--mdb-pagination-padding-y: 0.75rem;--mdb-pagination-font-size:1.25rem;--mdb-pagination-border-radius: var(--mdb-border-radius-lg)}.pagination-sm{--mdb-pagination-padding-x: 0.5rem;--mdb-pagination-padding-y: 0.25rem;--mdb-pagination-font-size:0.875rem;--mdb-pagination-border-radius: var(--mdb-border-radius-sm)}.badge{--mdb-badge-padding-x: 0.65em;--mdb-badge-padding-y: 0.35em;--mdb-badge-font-size:0.75em;--mdb-badge-font-weight: 700;--mdb-badge-color: #fff;--mdb-badge-border-radius: 0.27rem;display:inline-block;padding:var(--mdb-badge-padding-y) var(--mdb-badge-padding-x);font-size:var(--mdb-badge-font-size);font-weight:var(--mdb-badge-font-weight);line-height:1;color:var(--mdb-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--mdb-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--mdb-alert-bg: transparent;--mdb-alert-padding-x: 1.5rem;--mdb-alert-padding-y: 1.25rem;--mdb-alert-margin-bottom: 1rem;--mdb-alert-color: inherit;--mdb-alert-border-color: transparent;--mdb-alert-border: var(--mdb-border-width) solid var(--mdb-alert-border-color);--mdb-alert-border-radius: 0.5rem;--mdb-alert-link-color: inherit;position:relative;padding:var(--mdb-alert-padding-y) var(--mdb-alert-padding-x);margin-bottom:var(--mdb-alert-margin-bottom);color:var(--mdb-alert-color);background-color:var(--mdb-alert-bg);border:var(--mdb-alert-border);border-radius:var(--mdb-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--mdb-alert-link-color)}.alert-dismissible{padding-right:4.5rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.5625rem 1.5rem}.alert-primary{--mdb-alert-color: var(--mdb-primary-text-emphasis);--mdb-alert-bg: var(--mdb-primary-bg-subtle);--mdb-alert-border-color: var(--mdb-primary-border-subtle);--mdb-alert-link-color: var(--mdb-primary-text-emphasis)}.alert-secondary{--mdb-alert-color: var(--mdb-secondary-text-emphasis);--mdb-alert-bg: var(--mdb-secondary-bg-subtle);--mdb-alert-border-color: var(--mdb-secondary-border-subtle);--mdb-alert-link-color: var(--mdb-secondary-text-emphasis)}.alert-success{--mdb-alert-color: var(--mdb-success-text-emphasis);--mdb-alert-bg: var(--mdb-success-bg-subtle);--mdb-alert-border-color: var(--mdb-success-border-subtle);--mdb-alert-link-color: var(--mdb-success-text-emphasis)}.alert-danger{--mdb-alert-color: var(--mdb-danger-text-emphasis);--mdb-alert-bg: var(--mdb-danger-bg-subtle);--mdb-alert-border-color: var(--mdb-danger-border-subtle);--mdb-alert-link-color: var(--mdb-danger-text-emphasis)}.alert-warning{--mdb-alert-color: var(--mdb-warning-text-emphasis);--mdb-alert-bg: var(--mdb-warning-bg-subtle);--mdb-alert-border-color: var(--mdb-warning-border-subtle);--mdb-alert-link-color: var(--mdb-warning-text-emphasis)}.alert-info{--mdb-alert-color: var(--mdb-info-text-emphasis);--mdb-alert-bg: var(--mdb-info-bg-subtle);--mdb-alert-border-color: var(--mdb-info-border-subtle);--mdb-alert-link-color: var(--mdb-info-text-emphasis)}.alert-light{--mdb-alert-color: var(--mdb-light-text-emphasis);--mdb-alert-bg: var(--mdb-light-bg-subtle);--mdb-alert-border-color: var(--mdb-light-border-subtle);--mdb-alert-link-color: var(--mdb-light-text-emphasis)}.alert-dark{--mdb-alert-color: var(--mdb-dark-text-emphasis);--mdb-alert-bg: var(--mdb-dark-bg-subtle);--mdb-alert-border-color: var(--mdb-dark-border-subtle);--mdb-alert-link-color: var(--mdb-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:4px}}.progress,.progress-stacked{--mdb-progress-height: 4px;--mdb-progress-font-size:0.75rem;--mdb-progress-bg: var(--mdb-secondary-bg);--mdb-progress-border-radius: var(--mdb-border-radius);--mdb-progress-box-shadow: var(--mdb-box-shadow-inset);--mdb-progress-bar-color: #fff;--mdb-progress-bar-bg: #3b71ca;--mdb-progress-bar-transition: width 0.6s ease;display:flex;height:var(--mdb-progress-height);overflow:hidden;font-size:var(--mdb-progress-font-size);background-color:var(--mdb-progress-bg);border-radius:var(--mdb-progress-border-radius);box-shadow:var(--mdb-progress-box-shadow)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--mdb-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--mdb-progress-bar-bg);transition:var(--mdb-progress-bar-transition)}@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:var(--mdb-progress-height) var(--mdb-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--mdb-list-group-color: var(--mdb-body-color);--mdb-list-group-bg: transparent;--mdb-list-group-border-color: var(--mdb-border-color);--mdb-list-group-border-width: var(--mdb-border-width);--mdb-list-group-border-radius: 0.5rem;--mdb-list-group-item-padding-x: 1.5rem;--mdb-list-group-item-padding-y: 0.5rem;--mdb-list-group-action-color: var(--mdb-secondary-color);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-tertiary-bg);--mdb-list-group-action-active-color: var(--mdb-body-color);--mdb-list-group-action-active-bg: var(--mdb-secondary-bg);--mdb-list-group-disabled-color: rgba(var(--mdb-body-color-rgb), 0.5);--mdb-list-group-disabled-bg: transparent;--mdb-list-group-active-color: #fff;--mdb-list-group-active-bg: #3b71ca;--mdb-list-group-active-border-color: #3b71ca;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--mdb-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--mdb-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--mdb-list-group-action-hover-color);text-decoration:none;background-color:var(--mdb-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--mdb-list-group-action-active-color);background-color:var(--mdb-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--mdb-list-group-item-padding-y) var(--mdb-list-group-item-padding-x);color:var(--mdb-list-group-color);background-color:var(--mdb-list-group-bg);border:var(--mdb-list-group-border-width) solid var(--mdb-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--mdb-list-group-disabled-color);pointer-events:none;background-color:var(--mdb-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--mdb-list-group-active-color);background-color:var(--mdb-list-group-active-bg);border-color:var(--mdb-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--mdb-list-group-border-width));border-top-width:var(--mdb-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--mdb-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--mdb-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--mdb-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--mdb-list-group-border-width));border-left-width:var(--mdb-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--mdb-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--mdb-list-group-color: var(--mdb-primary-text-emphasis);--mdb-list-group-bg: var(--mdb-primary-bg-subtle);--mdb-list-group-border-color: var(--mdb-primary-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-primary-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-primary-border-subtle);--mdb-list-group-active-color: var(--mdb-primary-bg-subtle);--mdb-list-group-active-bg: var(--mdb-primary-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-primary-text-emphasis)}.list-group-item-secondary{--mdb-list-group-color: var(--mdb-secondary-text-emphasis);--mdb-list-group-bg: var(--mdb-secondary-bg-subtle);--mdb-list-group-border-color: var(--mdb-secondary-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-secondary-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-secondary-border-subtle);--mdb-list-group-active-color: var(--mdb-secondary-bg-subtle);--mdb-list-group-active-bg: var(--mdb-secondary-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-secondary-text-emphasis)}.list-group-item-success{--mdb-list-group-color: var(--mdb-success-text-emphasis);--mdb-list-group-bg: var(--mdb-success-bg-subtle);--mdb-list-group-border-color: var(--mdb-success-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-success-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-success-border-subtle);--mdb-list-group-active-color: var(--mdb-success-bg-subtle);--mdb-list-group-active-bg: var(--mdb-success-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-success-text-emphasis)}.list-group-item-danger{--mdb-list-group-color: var(--mdb-danger-text-emphasis);--mdb-list-group-bg: var(--mdb-danger-bg-subtle);--mdb-list-group-border-color: var(--mdb-danger-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-danger-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-danger-border-subtle);--mdb-list-group-active-color: var(--mdb-danger-bg-subtle);--mdb-list-group-active-bg: var(--mdb-danger-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-danger-text-emphasis)}.list-group-item-warning{--mdb-list-group-color: var(--mdb-warning-text-emphasis);--mdb-list-group-bg: var(--mdb-warning-bg-subtle);--mdb-list-group-border-color: var(--mdb-warning-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-warning-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-warning-border-subtle);--mdb-list-group-active-color: var(--mdb-warning-bg-subtle);--mdb-list-group-active-bg: var(--mdb-warning-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-warning-text-emphasis)}.list-group-item-info{--mdb-list-group-color: var(--mdb-info-text-emphasis);--mdb-list-group-bg: var(--mdb-info-bg-subtle);--mdb-list-group-border-color: var(--mdb-info-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-info-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-info-border-subtle);--mdb-list-group-active-color: var(--mdb-info-bg-subtle);--mdb-list-group-active-bg: var(--mdb-info-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-info-text-emphasis)}.list-group-item-light{--mdb-list-group-color: var(--mdb-light-text-emphasis);--mdb-list-group-bg: var(--mdb-light-bg-subtle);--mdb-list-group-border-color: var(--mdb-light-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-light-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-light-border-subtle);--mdb-list-group-active-color: var(--mdb-light-bg-subtle);--mdb-list-group-active-bg: var(--mdb-light-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-light-text-emphasis)}.list-group-item-dark{--mdb-list-group-color: var(--mdb-dark-text-emphasis);--mdb-list-group-bg: var(--mdb-dark-bg-subtle);--mdb-list-group-border-color: var(--mdb-dark-border-subtle);--mdb-list-group-action-hover-color: var(--mdb-emphasis-color);--mdb-list-group-action-hover-bg: var(--mdb-dark-border-subtle);--mdb-list-group-action-active-color: var(--mdb-emphasis-color);--mdb-list-group-action-active-bg: var(--mdb-dark-border-subtle);--mdb-list-group-active-color: var(--mdb-dark-bg-subtle);--mdb-list-group-active-bg: var(--mdb-dark-text-emphasis);--mdb-list-group-active-border-color: var(--mdb-dark-text-emphasis)}.btn-close{--mdb-btn-close-color: #000;--mdb-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--mdb-btn-close-opacity: 0.5;--mdb-btn-close-hover-opacity: 0.75;--mdb-btn-close-focus-shadow: 0 0 0 0.25rem rgba(59, 113, 202, 0.25);--mdb-btn-close-focus-opacity: 1;--mdb-btn-close-disabled-opacity: 0.25;--mdb-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--mdb-btn-close-color);background:rgba(0,0,0,0) var(--mdb-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:var(--mdb-btn-close-opacity)}.btn-close:hover{color:var(--mdb-btn-close-color);text-decoration:none;opacity:var(--mdb-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--mdb-btn-close-focus-shadow);opacity:var(--mdb-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;opacity:var(--mdb-btn-close-disabled-opacity)}.btn-close-white{filter:var(--mdb-btn-close-white-filter)}[data-mdb-theme=dark] .btn-close{filter:var(--mdb-btn-close-white-filter)}.toast{--mdb-toast-zindex: 1060;--mdb-toast-padding-x: 1rem;--mdb-toast-padding-y: 0.65rem;--mdb-toast-spacing: 1.5rem;--mdb-toast-max-width: 350px;--mdb-toast-font-size:0.875rem;--mdb-toast-color: ;--mdb-toast-bg: var(--mdb-surface-bg);--mdb-toast-border-width: var(--mdb-border-width);--mdb-toast-border-color: var(--mdb-border-color-translucent);--mdb-toast-border-radius: 0.5rem;--mdb-toast-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-toast-header-color: var(--mdb-secondary-color);--mdb-toast-header-bg: var(--mdb-surface-bg);--mdb-toast-header-border-color: var(--mdb-border-color-translucent);width:var(--mdb-toast-max-width);max-width:100%;font-size:var(--mdb-toast-font-size);color:var(--mdb-toast-color);pointer-events:auto;background-color:var(--mdb-toast-bg);background-clip:padding-box;border:var(--mdb-toast-border-width) solid var(--mdb-toast-border-color);box-shadow:var(--mdb-toast-box-shadow);border-radius:var(--mdb-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--mdb-toast-zindex: 1060;position:absolute;z-index:var(--mdb-toast-zindex);width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--mdb-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--mdb-toast-padding-y) var(--mdb-toast-padding-x);color:var(--mdb-toast-header-color);background-color:var(--mdb-toast-header-bg);background-clip:padding-box;border-bottom:var(--mdb-toast-border-width) solid var(--mdb-toast-header-border-color);border-top-left-radius:calc(var(--mdb-toast-border-radius) - var(--mdb-toast-border-width));border-top-right-radius:calc(var(--mdb-toast-border-radius) - var(--mdb-toast-border-width))}.toast-header .btn-close{margin-right:calc(-0.5*var(--mdb-toast-padding-x));margin-left:var(--mdb-toast-padding-x)}.toast-body{padding:var(--mdb-toast-padding-x);word-wrap:break-word}.modal{--mdb-modal-zindex: 1055;--mdb-modal-width: 500px;--mdb-modal-padding: 1rem;--mdb-modal-margin: 0.5rem;--mdb-modal-color: var(--mdb-surface-color);--mdb-modal-bg: var(--mdb-surface-bg);--mdb-modal-border-color: var(--mdb-border-color-translucent);--mdb-modal-border-width: var(--mdb-border-width);--mdb-modal-border-radius: 0.5rem;--mdb-modal-box-shadow: var(--mdb-box-shadow-sm);--mdb-modal-inner-border-radius: calc(0.5rem - (var(--mdb-border-width)));--mdb-modal-header-padding-x: 1rem;--mdb-modal-header-padding-y: 1rem;--mdb-modal-header-padding: 1rem 1rem;--mdb-modal-header-border-color: var(--mdb-divider-color);--mdb-modal-header-border-width: 2px;--mdb-modal-title-line-height: 1.6;--mdb-modal-footer-gap: 0.5rem;--mdb-modal-footer-bg: ;--mdb-modal-footer-border-color: var(--mdb-divider-color);--mdb-modal-footer-border-width: 2px;position:fixed;top:0;left:0;z-index:var(--mdb-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--mdb-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .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.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--mdb-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--mdb-modal-margin)*2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--mdb-modal-color);pointer-events:auto;background-color:var(--mdb-modal-bg);background-clip:padding-box;border:var(--mdb-modal-border-width) solid var(--mdb-modal-border-color);border-radius:var(--mdb-modal-border-radius);box-shadow:var(--mdb-modal-box-shadow);outline:0}.modal-backdrop{--mdb-backdrop-zindex: 1050;--mdb-backdrop-bg: #000;--mdb-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--mdb-backdrop-zindex);width:100vw;height:100vh;background-color:var(--mdb-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--mdb-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--mdb-modal-header-padding);border-bottom:var(--mdb-modal-header-border-width) solid var(--mdb-modal-header-border-color);border-top-left-radius:var(--mdb-modal-inner-border-radius);border-top-right-radius:var(--mdb-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--mdb-modal-header-padding-y)*.5) calc(var(--mdb-modal-header-padding-x)*.5);margin:calc(-0.5*var(--mdb-modal-header-padding-y)) calc(-0.5*var(--mdb-modal-header-padding-x)) calc(-0.5*var(--mdb-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--mdb-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--mdb-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--mdb-modal-padding) - var(--mdb-modal-footer-gap)*.5);background-color:var(--mdb-modal-footer-bg);border-top:var(--mdb-modal-footer-border-width) solid var(--mdb-modal-footer-border-color);border-bottom-right-radius:var(--mdb-modal-inner-border-radius);border-bottom-left-radius:var(--mdb-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--mdb-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--mdb-modal-margin: 1.75rem;--mdb-modal-box-shadow: var(--mdb-box-shadow)}.modal-dialog{max-width:var(--mdb-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--mdb-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--mdb-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--mdb-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--mdb-tooltip-zindex: 1090;--mdb-tooltip-max-width: 200px;--mdb-tooltip-padding-x: 16px;--mdb-tooltip-padding-y: 6px;--mdb-tooltip-margin: ;--mdb-tooltip-font-size:0.875rem;--mdb-tooltip-color: var(--mdb-surface-inverted-color);--mdb-tooltip-bg: var(--mdb-surface-inverted-bg);--mdb-tooltip-border-radius: 0.25rem;--mdb-tooltip-opacity: 0.9;--mdb-tooltip-arrow-width: 0.8rem;--mdb-tooltip-arrow-height: 0.4rem;z-index:var(--mdb-tooltip-zindex);display:block;margin:var(--mdb-tooltip-margin);font-family:var(--mdb-font-roboto);font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--mdb-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--mdb-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--mdb-tooltip-arrow-width);height:var(--mdb-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--mdb-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--mdb-tooltip-arrow-height) calc(var(--mdb-tooltip-arrow-width)*.5) 0;border-top-color:var(--mdb-tooltip-bg)}/*!rtl:begin:ignore*/.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--mdb-tooltip-arrow-height));width:var(--mdb-tooltip-arrow-height);height:var(--mdb-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--mdb-tooltip-arrow-width)*.5) var(--mdb-tooltip-arrow-height) calc(var(--mdb-tooltip-arrow-width)*.5) 0;border-right-color:var(--mdb-tooltip-bg)}/*!rtl:end:ignore*/.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--mdb-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--mdb-tooltip-arrow-width)*.5) var(--mdb-tooltip-arrow-height);border-bottom-color:var(--mdb-tooltip-bg)}/*!rtl:begin:ignore*/.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--mdb-tooltip-arrow-height));width:var(--mdb-tooltip-arrow-height);height:var(--mdb-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--mdb-tooltip-arrow-width)*.5) 0 calc(var(--mdb-tooltip-arrow-width)*.5) var(--mdb-tooltip-arrow-height);border-left-color:var(--mdb-tooltip-bg)}/*!rtl:end:ignore*/.tooltip-inner{max-width:var(--mdb-tooltip-max-width);padding:var(--mdb-tooltip-padding-y) var(--mdb-tooltip-padding-x);color:var(--mdb-tooltip-color);text-align:center;background-color:var(--mdb-tooltip-bg);border-radius:var(--mdb-tooltip-border-radius)}.popover{--mdb-popover-zindex: 1080;--mdb-popover-max-width: 276px;--mdb-popover-font-size:0.875rem;--mdb-popover-bg: var(--mdb-surface-bg);--mdb-popover-border-width: 1px;--mdb-popover-border-color: var(--mdb-divider-color);--mdb-popover-border-radius: 0.5rem;--mdb-popover-inner-border-radius: calc(0.5rem - 1px);--mdb-popover-box-shadow: 0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04);--mdb-popover-header-padding-x: 1rem;--mdb-popover-header-padding-y: 0.5rem;--mdb-popover-header-font-size:1rem;--mdb-popover-header-color: var(--mdb-surface-color);--mdb-popover-header-bg: var(--mdb-surface-bg);--mdb-popover-body-padding-x: 1rem;--mdb-popover-body-padding-y: 1rem;--mdb-popover-body-color: var(--mdb-surface-color);--mdb-popover-arrow-width: 1rem;--mdb-popover-arrow-height: 0.5rem;--mdb-popover-arrow-border: var(--mdb-popover-border-color);z-index:var(--mdb-popover-zindex);display:block;max-width:var(--mdb-popover-max-width);font-family:var(--mdb-font-roboto);font-style:normal;font-weight:400;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--mdb-popover-font-size);word-wrap:break-word;background-color:var(--mdb-popover-bg);background-clip:padding-box;border:var(--mdb-popover-border-width) solid var(--mdb-popover-border-color);border-radius:var(--mdb-popover-border-radius);box-shadow:var(--mdb-popover-box-shadow)}.popover .popover-arrow{display:block;width:var(--mdb-popover-arrow-width);height:var(--mdb-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--mdb-popover-arrow-height) calc(var(--mdb-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--mdb-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--mdb-popover-border-width);border-top-color:var(--mdb-popover-bg)}/*!rtl:begin:ignore*/.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width));width:var(--mdb-popover-arrow-height);height:var(--mdb-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--mdb-popover-arrow-width)*.5) var(--mdb-popover-arrow-height) calc(var(--mdb-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--mdb-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--mdb-popover-border-width);border-right-color:var(--mdb-popover-bg)}/*!rtl:end:ignore*/.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--mdb-popover-arrow-width)*.5) var(--mdb-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--mdb-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--mdb-popover-border-width);border-bottom-color:var(--mdb-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--mdb-popover-arrow-width);margin-left:calc(-0.5*var(--mdb-popover-arrow-width));content:"";border-bottom:var(--mdb-popover-border-width) solid var(--mdb-popover-header-bg)}/*!rtl:begin:ignore*/.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--mdb-popover-arrow-height)) - var(--mdb-popover-border-width));width:var(--mdb-popover-arrow-height);height:var(--mdb-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--mdb-popover-arrow-width)*.5) 0 calc(var(--mdb-popover-arrow-width)*.5) var(--mdb-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--mdb-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--mdb-popover-border-width);border-left-color:var(--mdb-popover-bg)}/*!rtl:end:ignore*/.popover-header{padding:var(--mdb-popover-header-padding-y) var(--mdb-popover-header-padding-x);margin-bottom:0;font-size:var(--mdb-popover-header-font-size);color:var(--mdb-popover-header-color);background-color:var(--mdb-popover-header-bg);border-bottom:var(--mdb-popover-border-width) solid var(--mdb-popover-border-color);border-top-left-radius:var(--mdb-popover-inner-border-radius);border-top-right-radius:var(--mdb-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--mdb-popover-body-padding-y) var(--mdb-popover-body-padding-x);color:var(--mdb-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .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-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{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-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{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%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .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:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:none /*rtl:none*/}.carousel-control-next-icon{background-image:none /*rtl:none*/}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-mdb-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-mdb-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-mdb-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-mdb-theme=dark] .carousel .carousel-control-prev-icon,[data-mdb-theme=dark] .carousel .carousel-control-next-icon,[data-mdb-theme=dark].carousel .carousel-control-prev-icon,[data-mdb-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-mdb-theme=dark] .carousel .carousel-indicators [data-mdb-target],[data-mdb-theme=dark].carousel .carousel-indicators [data-mdb-target]{background-color:#000}[data-mdb-theme=dark] .carousel .carousel-caption,[data-mdb-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--mdb-spinner-width);height:var(--mdb-spinner-height);vertical-align:var(--mdb-spinner-vertical-align);border-radius:50%;animation:var(--mdb-spinner-animation-speed) linear infinite var(--mdb-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /*!rtl:ignore*/}}.spinner-border{--mdb-spinner-width: 2rem;--mdb-spinner-height: 2rem;--mdb-spinner-vertical-align: -0.125em;--mdb-spinner-border-width: 0.25em;--mdb-spinner-animation-speed: 0.75s;--mdb-spinner-animation-name: spinner-border;border:var(--mdb-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--mdb-spinner-width: 1rem;--mdb-spinner-height: 1rem;--mdb-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--mdb-spinner-width: 2rem;--mdb-spinner-height: 2rem;--mdb-spinner-vertical-align: -0.125em;--mdb-spinner-animation-speed: 0.75s;--mdb-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--mdb-spinner-width: 1rem;--mdb-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--mdb-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--mdb-offcanvas-zindex: 1045;--mdb-offcanvas-width: 400px;--mdb-offcanvas-height: 30vh;--mdb-offcanvas-padding-x: 1rem;--mdb-offcanvas-padding-y: 1rem;--mdb-offcanvas-color: var(--mdb-body-color);--mdb-offcanvas-bg: var(--mdb-body-bg);--mdb-offcanvas-border-width: var(--mdb-border-width);--mdb-offcanvas-border-color: var(--mdb-border-color-translucent);--mdb-offcanvas-box-shadow: var(--mdb-box-shadow-sm);--mdb-offcanvas-transition: transform 0.3s ease-in-out;--mdb-offcanvas-title-line-height: 1.6}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--mdb-offcanvas-height: auto;--mdb-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--mdb-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--mdb-offcanvas-color);visibility:hidden;background-color:var(--mdb-offcanvas-bg);background-clip:padding-box;outline:0;box-shadow:var(--mdb-offcanvas-box-shadow);transition:var(--mdb-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--mdb-offcanvas-width);border-right:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--mdb-offcanvas-width);border-left:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-bottom:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--mdb-offcanvas-height);max-height:100%;border-top:var(--mdb-offcanvas-border-width) solid var(--mdb-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--mdb-offcanvas-padding-y) var(--mdb-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--mdb-offcanvas-padding-y)*.5) calc(var(--mdb-offcanvas-padding-x)*.5);margin:calc(-0.5*var(--mdb-offcanvas-padding-y)) calc(-0.5*var(--mdb-offcanvas-padding-x)) calc(-0.5*var(--mdb-offcanvas-padding-y)) auto}.offcanvas-title{margin-bottom:0;line-height:var(--mdb-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--mdb-offcanvas-padding-y) var(--mdb-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--mdb-primary-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--mdb-secondary-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--mdb-success-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--mdb-danger-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--mdb-warning-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--mdb-info-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--mdb-light-rgb), var(--mdb-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--mdb-dark-rgb), var(--mdb-bg-opacity, 1)) !important}.link-primary{color:RGBA(var(--mdb-primary-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-primary-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(56, 107, 192, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(56, 107, 192, var(--mdb-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--mdb-secondary-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-secondary-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(151, 158, 169, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(151, 158, 169, var(--mdb-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--mdb-success-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-success-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(19, 156, 73, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(19, 156, 73, var(--mdb-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--mdb-danger-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-danger-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(209, 72, 95, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(209, 72, 95, var(--mdb-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--mdb-warning-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-warning-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(217, 153, 26, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(217, 153, 26, var(--mdb-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--mdb-info-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-info-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(80, 171, 200, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(80, 171, 200, var(--mdb-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--mdb-light-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-light-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(251, 251, 251, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(251, 251, 251, var(--mdb-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--mdb-dark-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-dark-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(48, 43, 43, var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(48, 43, 43, var(--mdb-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--mdb-emphasis-color-rgb), var(--mdb-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--mdb-focus-ring-x, 0) var(--mdb-focus-ring-y, 0) var(--mdb-focus-ring-blur, 0) var(--mdb-focus-ring-width) var(--mdb-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;text-decoration-color:rgba(var(--mdb-link-color-rgb), var(--mdb-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--mdb-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--mdb-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--mdb-aspect-ratio: 100%}.ratio-4x3{--mdb-aspect-ratio: 75%}.ratio-16x9{--mdb-aspect-ratio: 56.25%}.ratio-21x9{--mdb-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--mdb-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.diagonal-fractions{font-variant-numeric:diagonal-fractions}.bg-super-light{--mdb-bg-super-light: #fbfbfb;background-color:var(--mdb-bg-super-light)}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-x-scroll{overflow-x:scroll}.table-fixed{table-layout:fixed}.table-auto{table-layout:auto}.link-primary{transition:color .15s}.link-secondary{transition:color .15s}.link-success{transition:color .15s}.link-danger{transition:color .15s}.link-warning{transition:color .15s}.link-info{transition:color .15s}.link-light{transition:color .15s}.link-dark{transition:color .15s}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-cover{object-fit:cover !important}.opacity-0{opacity:0 !important}.opacity-5{opacity:.05 !important}.opacity-10{opacity:.1 !important}.opacity-15{opacity:.15 !important}.opacity-20{opacity:.2 !important}.opacity-25{opacity:.25 !important}.opacity-30{opacity:.3 !important}.opacity-35{opacity:.35 !important}.opacity-40{opacity:.4 !important}.opacity-45{opacity:.45 !important}.opacity-50{opacity:.5 !important}.opacity-55{opacity:.55 !important}.opacity-60{opacity:.6 !important}.opacity-65{opacity:.65 !important}.opacity-70{opacity:.7 !important}.opacity-75{opacity:.75 !important}.opacity-80{opacity:.8 !important}.opacity-85{opacity:.85 !important}.opacity-90{opacity:.9 !important}.opacity-95{opacity:.95 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:var(--mdb-box-shadow) !important}.shadow-sm{box-shadow:var(--mdb-box-shadow-sm) !important}.shadow-lg{box-shadow:var(--mdb-box-shadow-lg) !important}.shadow-none{box-shadow:none !important}.shadow-0{box-shadow:none !important}.shadow-1{box-shadow:0 0px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 1px 1px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-2{box-shadow:0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-3{box-shadow:0 2px 6px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 6px 18px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-4{box-shadow:0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-5{box-shadow:0 2px 25px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 25px 21px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-6{box-shadow:0 2px 35px -12px rgba(var(--mdb-box-shadow-color-rgb), 0.21),0 50px 40px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.04) !important}.shadow-1-soft{box-shadow:0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-2-soft{box-shadow:0 2px 10px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-3-soft{box-shadow:0 5px 15px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-4-soft{box-shadow:0 10px 20px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-5-soft{box-shadow:0 15px 30px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-6-soft{box-shadow:0 20px 40px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.05) !important}.shadow-1-strong{box-shadow:0 0px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 1px 1px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-2-strong{box-shadow:0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-3-strong{box-shadow:0 2px 6px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 6px 18px -1px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-4-strong{box-shadow:0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-5-strong{box-shadow:0 2px 25px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.16),0 25px 21px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-6-strong{box-shadow:0 2px 35px -12px rgba(var(--mdb-box-shadow-color-rgb), 0.26),0 50px 40px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.1) !important}.shadow-inner{box-shadow:inset 0 2px 4px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.06) !important}.focus-ring-primary{--mdb-focus-ring-color: rgba(var(--mdb-primary-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-secondary{--mdb-focus-ring-color: rgba(var(--mdb-secondary-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-success{--mdb-focus-ring-color: rgba(var(--mdb-success-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-danger{--mdb-focus-ring-color: rgba(var(--mdb-danger-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-warning{--mdb-focus-ring-color: rgba(var(--mdb-warning-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-info{--mdb-focus-ring-color: rgba(var(--mdb-info-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-light{--mdb-focus-ring-color: rgba(var(--mdb-light-rgb), var(--mdb-focus-ring-opacity))}.focus-ring-dark{--mdb-focus-ring-color: rgba(var(--mdb-dark-rgb), var(--mdb-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--mdb-border-width) var(--mdb-border-style) var(--mdb-border-color) !important}.border-start-0{border-left:0 !important}.border-primary{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-primary-rgb), var(--mdb-border-opacity)) !important}.border-secondary{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-secondary-rgb), var(--mdb-border-opacity)) !important}.border-success{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-success-rgb), var(--mdb-border-opacity)) !important}.border-danger{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-danger-rgb), var(--mdb-border-opacity)) !important}.border-warning{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-warning-rgb), var(--mdb-border-opacity)) !important}.border-info{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-info-rgb), var(--mdb-border-opacity)) !important}.border-light{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-light-rgb), var(--mdb-border-opacity)) !important}.border-dark{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-dark-rgb), var(--mdb-border-opacity)) !important}.border-black{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-black-rgb), var(--mdb-border-opacity)) !important}.border-white{--mdb-border-opacity: 1;border-color:rgba(var(--mdb-white-rgb), var(--mdb-border-opacity)) !important}.border-primary-subtle{border-color:var(--mdb-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--mdb-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--mdb-success-border-subtle) !important}.border-info-subtle{border-color:var(--mdb-info-border-subtle) !important}.border-warning-subtle{border-color:var(--mdb-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--mdb-danger-border-subtle) !important}.border-light-subtle{border-color:var(--mdb-light-border-subtle) !important}.border-dark-subtle{border-color:var(--mdb-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--mdb-border-opacity: 0.1}.border-opacity-25{--mdb-border-opacity: 0.25}.border-opacity-50{--mdb-border-opacity: 0.5}.border-opacity-75{--mdb-border-opacity: 0.75}.border-opacity-100{--mdb-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.mb-6{margin-bottom:3.5rem !important}.mb-7{margin-bottom:4rem !important}.mb-8{margin-bottom:5rem !important}.mb-9{margin-bottom:6rem !important}.mb-10{margin-bottom:8rem !important}.mb-11{margin-bottom:10rem !important}.mb-12{margin-bottom:12rem !important}.mb-13{margin-bottom:14rem !important}.mb-14{margin-bottom:16rem !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.m-n1{margin:-0.25rem !important}.m-n2{margin:-0.5rem !important}.m-n3{margin:-1rem !important}.m-n4{margin:-1.5rem !important}.m-n5{margin:-3rem !important}.mx-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-n1{margin-top:-0.25rem !important}.mt-n2{margin-top:-0.5rem !important}.mt-n3{margin-top:-1rem !important}.mt-n4{margin-top:-1.5rem !important}.mt-n5{margin-top:-3rem !important}.me-n1{margin-right:-0.25rem !important}.me-n2{margin-right:-0.5rem !important}.me-n3{margin-right:-1rem !important}.me-n4{margin-right:-1.5rem !important}.me-n5{margin-right:-3rem !important}.mb-n1{margin-bottom:-0.25rem !important}.mb-n2{margin-bottom:-0.5rem !important}.mb-n3{margin-bottom:-1rem !important}.mb-n4{margin-bottom:-1.5rem !important}.mb-n5{margin-bottom:-3rem !important}.ms-n1{margin-left:-0.25rem !important}.ms-n2{margin-left:-0.5rem !important}.ms-n3{margin-left:-1rem !important}.ms-n4{margin-left:-1.5rem !important}.ms-n5{margin-left:-3rem !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--mdb-font-monospace) !important}.fs-1{font-size:calc(1.375rem + 1.5vw) !important}.fs-2{font-size:calc(1.325rem + 0.9vw) !important}.fs-3{font-size:calc(1.3rem + 0.6vw) !important}.fs-4{font-size:calc(1.275rem + 0.3vw) !important}.fs-5{font-size:1.25rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.6 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}/*!rtl:begin:remove*/.text-break{word-wrap:break-word !important;word-break:break-word !important}/*!rtl:end:remove*/.text-primary{--mdb-text-opacity: 1;color:rgba(var(--mdb-primary-rgb), var(--mdb-text-opacity)) !important}.text-secondary{--mdb-text-opacity: 1;color:rgba(var(--mdb-secondary-rgb), var(--mdb-text-opacity)) !important}.text-success{--mdb-text-opacity: 1;color:rgba(var(--mdb-success-rgb), var(--mdb-text-opacity)) !important}.text-danger{--mdb-text-opacity: 1;color:rgba(var(--mdb-danger-rgb), var(--mdb-text-opacity)) !important}.text-warning{--mdb-text-opacity: 1;color:rgba(var(--mdb-warning-rgb), var(--mdb-text-opacity)) !important}.text-info{--mdb-text-opacity: 1;color:rgba(var(--mdb-info-rgb), var(--mdb-text-opacity)) !important}.text-light{--mdb-text-opacity: 1;color:rgba(var(--mdb-light-rgb), var(--mdb-text-opacity)) !important}.text-dark{--mdb-text-opacity: 1;color:rgba(var(--mdb-dark-rgb), var(--mdb-text-opacity)) !important}.text-black{--mdb-text-opacity: 1;color:rgba(var(--mdb-black-rgb), var(--mdb-text-opacity)) !important}.text-white{--mdb-text-opacity: 1;color:rgba(var(--mdb-white-rgb), var(--mdb-text-opacity)) !important}.text-body{--mdb-text-opacity: 1;color:rgba(var(--mdb-body-color-rgb), var(--mdb-text-opacity)) !important}.text-muted{--mdb-text-opacity: 1;color:var(--mdb-secondary-color) !important}.text-black-50{--mdb-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--mdb-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--mdb-text-opacity: 1;color:var(--mdb-secondary-color) !important}.text-body-tertiary{--mdb-text-opacity: 1;color:var(--mdb-tertiary-color) !important}.text-body-emphasis{--mdb-text-opacity: 1;color:var(--mdb-emphasis-color) !important}.text-reset{--mdb-text-opacity: 1;color:inherit !important}.text-opacity-25{--mdb-text-opacity: 0.25}.text-opacity-50{--mdb-text-opacity: 0.5}.text-opacity-75{--mdb-text-opacity: 0.75}.text-opacity-100{--mdb-text-opacity: 1}.text-primary-emphasis{color:var(--mdb-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--mdb-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--mdb-success-text-emphasis) !important}.text-info-emphasis{color:var(--mdb-info-text-emphasis) !important}.text-warning-emphasis{color:var(--mdb-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--mdb-danger-text-emphasis) !important}.text-light-emphasis{color:var(--mdb-light-text-emphasis) !important}.text-dark-emphasis{color:var(--mdb-dark-text-emphasis) !important}.link-opacity-10{--mdb-link-opacity: 0.1}.link-opacity-10-hover:hover{--mdb-link-opacity: 0.1}.link-opacity-25{--mdb-link-opacity: 0.25}.link-opacity-25-hover:hover{--mdb-link-opacity: 0.25}.link-opacity-50{--mdb-link-opacity: 0.5}.link-opacity-50-hover:hover{--mdb-link-opacity: 0.5}.link-opacity-75{--mdb-link-opacity: 0.75}.link-opacity-75-hover:hover{--mdb-link-opacity: 0.75}.link-opacity-100{--mdb-link-opacity: 1}.link-opacity-100-hover:hover{--mdb-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-primary{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-primary-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-secondary{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-secondary-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-success{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-success-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-danger{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-danger-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-warning{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-warning-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-info{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-info-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-light{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-light-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline-dark{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-dark-rgb), var(--mdb-link-underline-opacity)) !important}.link-underline{--mdb-link-underline-opacity: 1;text-decoration-color:rgba(var(--mdb-link-color-rgb), var(--mdb-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--mdb-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--mdb-link-underline-opacity: 0}.link-underline-opacity-10{--mdb-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--mdb-link-underline-opacity: 0.1}.link-underline-opacity-25{--mdb-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--mdb-link-underline-opacity: 0.25}.link-underline-opacity-50{--mdb-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--mdb-link-underline-opacity: 0.5}.link-underline-opacity-75{--mdb-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--mdb-link-underline-opacity: 0.75}.link-underline-opacity-100{--mdb-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--mdb-link-underline-opacity: 1}.bg-primary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-primary-rgb), var(--mdb-bg-opacity)) !important}.bg-secondary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-secondary-rgb), var(--mdb-bg-opacity)) !important}.bg-success{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-success-rgb), var(--mdb-bg-opacity)) !important}.bg-danger{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-danger-rgb), var(--mdb-bg-opacity)) !important}.bg-warning{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-warning-rgb), var(--mdb-bg-opacity)) !important}.bg-info{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-info-rgb), var(--mdb-bg-opacity)) !important}.bg-light{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-light-rgb), var(--mdb-bg-opacity)) !important}.bg-dark{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-dark-rgb), var(--mdb-bg-opacity)) !important}.bg-black{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-black-rgb), var(--mdb-bg-opacity)) !important}.bg-white{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-white-rgb), var(--mdb-bg-opacity)) !important}.bg-body{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-body-bg-rgb), var(--mdb-bg-opacity)) !important}.bg-transparent{--mdb-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-secondary-bg-rgb), var(--mdb-bg-opacity)) !important}.bg-body-tertiary{--mdb-bg-opacity: 1;background-color:rgba(var(--mdb-tertiary-bg-rgb), var(--mdb-bg-opacity)) !important}.bg-opacity-10{--mdb-bg-opacity: 0.1}.bg-opacity-25{--mdb-bg-opacity: 0.25}.bg-opacity-50{--mdb-bg-opacity: 0.5}.bg-opacity-75{--mdb-bg-opacity: 0.75}.bg-opacity-100{--mdb-bg-opacity: 1}.bg-primary-subtle{background-color:var(--mdb-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--mdb-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--mdb-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--mdb-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--mdb-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--mdb-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--mdb-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--mdb-dark-bg-subtle) !important}.bg-gradient{background-image:var(--mdb-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--mdb-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--mdb-border-radius-sm) !important}.rounded-2{border-radius:var(--mdb-border-radius) !important}.rounded-3{border-radius:var(--mdb-border-radius-lg) !important}.rounded-4{border-radius:.375rem !important}.rounded-5{border-radius:.5rem !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--mdb-border-radius-pill) !important}.rounded-6{border-radius:.75rem !important}.rounded-7{border-radius:1rem !important}.rounded-8{border-radius:1.25rem !important}.rounded-9{border-radius:1.5rem !important}.rounded-top{border-top-left-radius:var(--mdb-border-radius) !important;border-top-right-radius:var(--mdb-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--mdb-border-radius-sm) !important;border-top-right-radius:var(--mdb-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--mdb-border-radius) !important;border-top-right-radius:var(--mdb-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--mdb-border-radius-lg) !important;border-top-right-radius:var(--mdb-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--mdb-border-radius-xl) !important;border-top-right-radius:var(--mdb-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--mdb-border-radius-xxl) !important;border-top-right-radius:var(--mdb-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--mdb-border-radius-pill) !important;border-top-right-radius:var(--mdb-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--mdb-border-radius) !important;border-bottom-right-radius:var(--mdb-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--mdb-border-radius-sm) !important;border-bottom-right-radius:var(--mdb-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--mdb-border-radius) !important;border-bottom-right-radius:var(--mdb-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--mdb-border-radius-lg) !important;border-bottom-right-radius:var(--mdb-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--mdb-border-radius-xl) !important;border-bottom-right-radius:var(--mdb-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--mdb-border-radius-xxl) !important;border-bottom-right-radius:var(--mdb-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--mdb-border-radius-pill) !important;border-bottom-right-radius:var(--mdb-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--mdb-border-radius) !important;border-bottom-left-radius:var(--mdb-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--mdb-border-radius-sm) !important;border-bottom-left-radius:var(--mdb-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--mdb-border-radius) !important;border-bottom-left-radius:var(--mdb-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--mdb-border-radius-lg) !important;border-bottom-left-radius:var(--mdb-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--mdb-border-radius-xl) !important;border-bottom-left-radius:var(--mdb-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--mdb-border-radius-xxl) !important;border-bottom-left-radius:var(--mdb-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--mdb-border-radius-pill) !important;border-bottom-left-radius:var(--mdb-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--mdb-border-radius) !important;border-top-left-radius:var(--mdb-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--mdb-border-radius-sm) !important;border-top-left-radius:var(--mdb-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--mdb-border-radius) !important;border-top-left-radius:var(--mdb-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--mdb-border-radius-lg) !important;border-top-left-radius:var(--mdb-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--mdb-border-radius-xl) !important;border-top-left-radius:var(--mdb-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--mdb-border-radius-xxl) !important;border-top-left-radius:var(--mdb-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--mdb-border-radius-pill) !important;border-top-left-radius:var(--mdb-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}.ls-tighter{letter-spacing:-0.05em !important}.ls-tight{letter-spacing:-0.025em !important}.ls-normal{letter-spacing:0em !important}.ls-wide{letter-spacing:.025em !important}.ls-wider{letter-spacing:.05em !important}.ls-widest{letter-spacing:.1em !important}.object-top{object-position:top !important}.object-center{object-position:center !important}.object-bottom{object-position:bottom !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.mb-sm-6{margin-bottom:3.5rem !important}.mb-sm-7{margin-bottom:4rem !important}.mb-sm-8{margin-bottom:5rem !important}.mb-sm-9{margin-bottom:6rem !important}.mb-sm-10{margin-bottom:8rem !important}.mb-sm-11{margin-bottom:10rem !important}.mb-sm-12{margin-bottom:12rem !important}.mb-sm-13{margin-bottom:14rem !important}.mb-sm-14{margin-bottom:16rem !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.m-sm-n1{margin:-0.25rem !important}.m-sm-n2{margin:-0.5rem !important}.m-sm-n3{margin:-1rem !important}.m-sm-n4{margin:-1.5rem !important}.m-sm-n5{margin:-3rem !important}.mx-sm-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-sm-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-sm-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-sm-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-sm-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-sm-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-sm-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-sm-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-sm-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-sm-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-sm-n1{margin-top:-0.25rem !important}.mt-sm-n2{margin-top:-0.5rem !important}.mt-sm-n3{margin-top:-1rem !important}.mt-sm-n4{margin-top:-1.5rem !important}.mt-sm-n5{margin-top:-3rem !important}.me-sm-n1{margin-right:-0.25rem !important}.me-sm-n2{margin-right:-0.5rem !important}.me-sm-n3{margin-right:-1rem !important}.me-sm-n4{margin-right:-1.5rem !important}.me-sm-n5{margin-right:-3rem !important}.mb-sm-n1{margin-bottom:-0.25rem !important}.mb-sm-n2{margin-bottom:-0.5rem !important}.mb-sm-n3{margin-bottom:-1rem !important}.mb-sm-n4{margin-bottom:-1.5rem !important}.mb-sm-n5{margin-bottom:-3rem !important}.ms-sm-n1{margin-left:-0.25rem !important}.ms-sm-n2{margin-left:-0.5rem !important}.ms-sm-n3{margin-left:-1rem !important}.ms-sm-n4{margin-left:-1.5rem !important}.ms-sm-n5{margin-left:-3rem !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.mb-md-6{margin-bottom:3.5rem !important}.mb-md-7{margin-bottom:4rem !important}.mb-md-8{margin-bottom:5rem !important}.mb-md-9{margin-bottom:6rem !important}.mb-md-10{margin-bottom:8rem !important}.mb-md-11{margin-bottom:10rem !important}.mb-md-12{margin-bottom:12rem !important}.mb-md-13{margin-bottom:14rem !important}.mb-md-14{margin-bottom:16rem !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.m-md-n1{margin:-0.25rem !important}.m-md-n2{margin:-0.5rem !important}.m-md-n3{margin:-1rem !important}.m-md-n4{margin:-1.5rem !important}.m-md-n5{margin:-3rem !important}.mx-md-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-md-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-md-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-md-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-md-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-md-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-md-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-md-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-md-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-md-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-md-n1{margin-top:-0.25rem !important}.mt-md-n2{margin-top:-0.5rem !important}.mt-md-n3{margin-top:-1rem !important}.mt-md-n4{margin-top:-1.5rem !important}.mt-md-n5{margin-top:-3rem !important}.me-md-n1{margin-right:-0.25rem !important}.me-md-n2{margin-right:-0.5rem !important}.me-md-n3{margin-right:-1rem !important}.me-md-n4{margin-right:-1.5rem !important}.me-md-n5{margin-right:-3rem !important}.mb-md-n1{margin-bottom:-0.25rem !important}.mb-md-n2{margin-bottom:-0.5rem !important}.mb-md-n3{margin-bottom:-1rem !important}.mb-md-n4{margin-bottom:-1.5rem !important}.mb-md-n5{margin-bottom:-3rem !important}.ms-md-n1{margin-left:-0.25rem !important}.ms-md-n2{margin-left:-0.5rem !important}.ms-md-n3{margin-left:-1rem !important}.ms-md-n4{margin-left:-1.5rem !important}.ms-md-n5{margin-left:-3rem !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.mb-lg-6{margin-bottom:3.5rem !important}.mb-lg-7{margin-bottom:4rem !important}.mb-lg-8{margin-bottom:5rem !important}.mb-lg-9{margin-bottom:6rem !important}.mb-lg-10{margin-bottom:8rem !important}.mb-lg-11{margin-bottom:10rem !important}.mb-lg-12{margin-bottom:12rem !important}.mb-lg-13{margin-bottom:14rem !important}.mb-lg-14{margin-bottom:16rem !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.m-lg-n1{margin:-0.25rem !important}.m-lg-n2{margin:-0.5rem !important}.m-lg-n3{margin:-1rem !important}.m-lg-n4{margin:-1.5rem !important}.m-lg-n5{margin:-3rem !important}.mx-lg-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-lg-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-lg-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-lg-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-lg-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-lg-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-lg-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-lg-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-lg-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-lg-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-lg-n1{margin-top:-0.25rem !important}.mt-lg-n2{margin-top:-0.5rem !important}.mt-lg-n3{margin-top:-1rem !important}.mt-lg-n4{margin-top:-1.5rem !important}.mt-lg-n5{margin-top:-3rem !important}.me-lg-n1{margin-right:-0.25rem !important}.me-lg-n2{margin-right:-0.5rem !important}.me-lg-n3{margin-right:-1rem !important}.me-lg-n4{margin-right:-1.5rem !important}.me-lg-n5{margin-right:-3rem !important}.mb-lg-n1{margin-bottom:-0.25rem !important}.mb-lg-n2{margin-bottom:-0.5rem !important}.mb-lg-n3{margin-bottom:-1rem !important}.mb-lg-n4{margin-bottom:-1.5rem !important}.mb-lg-n5{margin-bottom:-3rem !important}.ms-lg-n1{margin-left:-0.25rem !important}.ms-lg-n2{margin-left:-0.5rem !important}.ms-lg-n3{margin-left:-1rem !important}.ms-lg-n4{margin-left:-1.5rem !important}.ms-lg-n5{margin-left:-3rem !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.mb-xl-6{margin-bottom:3.5rem !important}.mb-xl-7{margin-bottom:4rem !important}.mb-xl-8{margin-bottom:5rem !important}.mb-xl-9{margin-bottom:6rem !important}.mb-xl-10{margin-bottom:8rem !important}.mb-xl-11{margin-bottom:10rem !important}.mb-xl-12{margin-bottom:12rem !important}.mb-xl-13{margin-bottom:14rem !important}.mb-xl-14{margin-bottom:16rem !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.m-xl-n1{margin:-0.25rem !important}.m-xl-n2{margin:-0.5rem !important}.m-xl-n3{margin:-1rem !important}.m-xl-n4{margin:-1.5rem !important}.m-xl-n5{margin:-3rem !important}.mx-xl-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-xl-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-xl-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-xl-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-xl-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-xl-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-xl-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-xl-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-xl-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-xl-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-xl-n1{margin-top:-0.25rem !important}.mt-xl-n2{margin-top:-0.5rem !important}.mt-xl-n3{margin-top:-1rem !important}.mt-xl-n4{margin-top:-1.5rem !important}.mt-xl-n5{margin-top:-3rem !important}.me-xl-n1{margin-right:-0.25rem !important}.me-xl-n2{margin-right:-0.5rem !important}.me-xl-n3{margin-right:-1rem !important}.me-xl-n4{margin-right:-1.5rem !important}.me-xl-n5{margin-right:-3rem !important}.mb-xl-n1{margin-bottom:-0.25rem !important}.mb-xl-n2{margin-bottom:-0.5rem !important}.mb-xl-n3{margin-bottom:-1rem !important}.mb-xl-n4{margin-bottom:-1.5rem !important}.mb-xl-n5{margin-bottom:-3rem !important}.ms-xl-n1{margin-left:-0.25rem !important}.ms-xl-n2{margin-left:-0.5rem !important}.ms-xl-n3{margin-left:-1rem !important}.ms-xl-n4{margin-left:-1.5rem !important}.ms-xl-n5{margin-left:-3rem !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.mb-xxl-6{margin-bottom:3.5rem !important}.mb-xxl-7{margin-bottom:4rem !important}.mb-xxl-8{margin-bottom:5rem !important}.mb-xxl-9{margin-bottom:6rem !important}.mb-xxl-10{margin-bottom:8rem !important}.mb-xxl-11{margin-bottom:10rem !important}.mb-xxl-12{margin-bottom:12rem !important}.mb-xxl-13{margin-bottom:14rem !important}.mb-xxl-14{margin-bottom:16rem !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.m-xxl-n1{margin:-0.25rem !important}.m-xxl-n2{margin:-0.5rem !important}.m-xxl-n3{margin:-1rem !important}.m-xxl-n4{margin:-1.5rem !important}.m-xxl-n5{margin:-3rem !important}.mx-xxl-n1{margin-right:-0.25rem !important;margin-left:-0.25rem !important}.mx-xxl-n2{margin-right:-0.5rem !important;margin-left:-0.5rem !important}.mx-xxl-n3{margin-right:-1rem !important;margin-left:-1rem !important}.mx-xxl-n4{margin-right:-1.5rem !important;margin-left:-1.5rem !important}.mx-xxl-n5{margin-right:-3rem !important;margin-left:-3rem !important}.my-xxl-n1{margin-top:-0.25rem !important;margin-bottom:-0.25rem !important}.my-xxl-n2{margin-top:-0.5rem !important;margin-bottom:-0.5rem !important}.my-xxl-n3{margin-top:-1rem !important;margin-bottom:-1rem !important}.my-xxl-n4{margin-top:-1.5rem !important;margin-bottom:-1.5rem !important}.my-xxl-n5{margin-top:-3rem !important;margin-bottom:-3rem !important}.mt-xxl-n1{margin-top:-0.25rem !important}.mt-xxl-n2{margin-top:-0.5rem !important}.mt-xxl-n3{margin-top:-1rem !important}.mt-xxl-n4{margin-top:-1.5rem !important}.mt-xxl-n5{margin-top:-3rem !important}.me-xxl-n1{margin-right:-0.25rem !important}.me-xxl-n2{margin-right:-0.5rem !important}.me-xxl-n3{margin-right:-1rem !important}.me-xxl-n4{margin-right:-1.5rem !important}.me-xxl-n5{margin-right:-3rem !important}.mb-xxl-n1{margin-bottom:-0.25rem !important}.mb-xxl-n2{margin-bottom:-0.5rem !important}.mb-xxl-n3{margin-bottom:-1rem !important}.mb-xxl-n4{margin-bottom:-1.5rem !important}.mb-xxl-n5{margin-bottom:-3rem !important}.ms-xxl-n1{margin-left:-0.25rem !important}.ms-xxl-n2{margin-left:-0.5rem !important}.ms-xxl-n3{margin-left:-1rem !important}.ms-xxl-n4{margin-left:-1.5rem !important}.ms-xxl-n5{margin-left:-3rem !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}@media(min-width: 1200px){.fs-1{font-size:2.5rem !important}.fs-2{font-size:2rem !important}.fs-3{font-size:1.75rem !important}.fs-4{font-size:1.5rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}.diagonal-fractions{font-variant-numeric:diagonal-fractions}.bg-super-light{--mdb-bg-super-light: #fbfbfb;background-color:var(--mdb-bg-super-light)}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.overflow-y-scroll{overflow-y:scroll}.overflow-x-scroll{overflow-x:scroll}.table-fixed{table-layout:fixed}.table-auto{table-layout:auto}.link-primary{transition:color .15s}.link-secondary{transition:color .15s}.link-success{transition:color .15s}.link-danger{transition:color .15s}.link-warning{transition:color .15s}.link-info{transition:color .15s}.link-light{transition:color .15s}.link-dark{transition:color .15s}:root,[data-mdb-theme=light]{--mdb-font-roboto: "Roboto", sans-serif;--mdb-bg-opacity: 1;--mdb-text-hover-opacity: 0.8;--mdb-surface-color: #4f4f4f;--mdb-surface-color-rgb: 79, 79, 79;--mdb-surface-bg: #fff;--mdb-surface-inverted-color: #fff;--mdb-surface-inverted-color-rgb: 255, 255, 255;--mdb-surface-inverted-bg: #6d6d6d;--mdb-divider-color: #f5f5f5;--mdb-divider-blurry-color: hsl(0, 0%, 40%);--mdb-highlight-bg-color: #eeeeee;--mdb-scrollbar-rail-bg: #eeeeee;--mdb-scrollbar-thumb-bg: #9e9e9e;--mdb-picker-header-bg: #3b71ca;--mdb-timepicker-clock-face-bg: var(--mdb-secondary-bg);--mdb-sidenav-backdrop-opacity: 0.1;--mdb-input-focus-border-color: var(--mdb-primary);--mdb-input-focus-label-color: var(--mdb-primary);--mdb-form-control-border-color: #bdbdbd;--mdb-form-control-label-color: #757575;--mdb-form-control-disabled-bg: #e0e0e0;--mdb-box-shadow-color: #000;--mdb-box-shadow-color-rgb: 0, 0, 0;--mdb-stepper-mobile-bg: #fbfbfb;--mdb-datepicker-cell-in-range-background-color: #b1c6ea}[data-mdb-theme=dark]{color-scheme:dark;--mdb-surface-color: #fff;--mdb-surface-color-rgb: 255, 255, 255;--mdb-surface-bg: #424242;--mdb-surface-inverted-color: #fff;--mdb-surface-inverted-color-rgb: 255, 255, 255;--mdb-surface-inverted-bg: #757575;--mdb-divider-color: rgba(255, 255, 255, 0.12);--mdb-divider-blurry-color: hsl(0, 0%, 70%);--mdb-highlight-bg-color: #3c3c3c;--mdb-scrollbar-rail-bg: #9e9e9e;--mdb-scrollbar-thumb-bg: #eeeeee;--mdb-picker-header-bg: #323232;--mdb-timepicker-clock-face-bg: #616161;--mdb-sidenav-backdrop-opacity: 0.5;--mdb-form-control-border-color: rgba(255, 255, 255, 0.7);--mdb-form-control-label-color: #bdbdbd;--mdb-form-control-disabled-bg: #616161;--mdb-box-shadow-color: #000;--mdb-box-shadow-color-rgb: 0, 0, 0;--mdb-stepper-mobile-bg: #3b3b3b;--mdb-datepicker-cell-in-range-background-color: #616161}hr:not([size]).hr{--mdb-divider-height: 2px;--mdb-divider-bg: var(--mdb-divider-color);--mdb-divider-opacity: 1;--mdb-divider-blurry-bg: transparent;--mdb-divider-blurry-bg-image: linear-gradient(90deg, transparent, var(--mdb-divider-blurry-color), transparent);--mdb-divider-blurry-height: 1px;--mdb-divider-blurry-opacity: 0.25;height:var(--mdb-divider-height);background-color:var(--mdb-divider-bg);opacity:var(--mdb-divider-opacity)}hr:not([size]).hr.hr-blurry{background-color:var(--mdb-divider-blurry-bg);background-image:var(--mdb-divider-blurry-bg-image);height:var(--mdb-divider-blurry-height);opacity:var(--mdb-divider-blurry-opacity)}hr:not([size]).vr{height:auto}hr.hr,hr.vr{border-top:none !important}.vr{--mdb-divider-width: 2px;--mdb-divider-bg: var(--mdb-divider-color);--mdb-divider-opacity: 1;width:var(--mdb-divider-width);background-color:var(--mdb-divider-bg);opacity:var(--mdb-divider-opacity)}.vr-blurry{--mdb-divider-blurry-vr-bg-image: linear-gradient(180deg, transparent, var(--mdb-divider-blurry-color), transparent);--mdb-divider-blurry-vr-width: 1px;--mdb-divider-blurry-opacity: 0.25;background-image:var(--mdb-divider-blurry-vr-bg-image);width:var(--mdb-divider-blurry-vr-width);opacity:var(--mdb-divider-blurry-opacity)}a{--mdb-link-decoration: none;text-decoration:var(--mdb-link-decoration)}.note{--mdb-note-padding: 10px;--mdb-note-border-width: 6px;--mdb-note-border-radius: 5px;--mdb-note-strong-font-weight: 600;padding:var(--mdb-note-padding);border-left:var(--mdb-note-border-width) solid;border-radius:var(--mdb-note-border-radius)}.note strong{font-weight:var(--mdb-note-strong-font-weight)}.note-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.note-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.note-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.note-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.note-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.note-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.note-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.note-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}@media(min-width: 1199px){.w-responsive{width:75%}}.bg-primary{--mdb--bg-opacity: 1;background-color:rgba(59, 113, 202, var(--mdb--bg-opacity))}.bg-secondary{--mdb--bg-opacity: 1;background-color:rgba(159, 166, 178, var(--mdb--bg-opacity))}.bg-success{--mdb--bg-opacity: 1;background-color:rgba(20, 164, 77, var(--mdb--bg-opacity))}.bg-danger{--mdb--bg-opacity: 1;background-color:rgba(220, 76, 100, var(--mdb--bg-opacity))}.bg-warning{--mdb--bg-opacity: 1;background-color:rgba(228, 161, 27, var(--mdb--bg-opacity))}.bg-info{--mdb--bg-opacity: 1;background-color:rgba(84, 180, 211, var(--mdb--bg-opacity))}.bg-light{--mdb--bg-opacity: 1;background-color:rgba(251, 251, 251, var(--mdb--bg-opacity))}.bg-dark{--mdb--bg-opacity: 1;background-color:rgba(51, 45, 45, var(--mdb--bg-opacity))}#mdb-table-flag tr{cursor:pointer}.mdb-flag-selected{border-top-left-radius:5px;border-top-right-radius:5px;text-align:center;max-width:150px;margin:0 auto;margin-top:10px}.mdb-selected-flag-text{margin:0 auto;max-width:150px}i.flag:not(.icon){display:inline-block;width:16px;height:11px;margin:0 .5em 0 0;line-height:11px;text-decoration:inherit;vertical-align:baseline;backface-visibility:hidden}i.flag::before{display:inline-block;width:16px;height:11px;content:"";background:url("https://mdbootstrap.com/img/svg/flags.png") no-repeat -108px -1976px}i.flag-ad:before,i.flag-andorra:before{background-position:0 0 !important}i.flag-ae:before,i.flag-united-arab-emirates:before,i.flag-uae:before{background-position:0 -26px !important}i.flag-af:before,i.flag-afghanistan:before{background-position:0 -52px !important}i.flag-ag:before,i.flag-antigua:before{background-position:0 -78px !important}i.flag-ai:before,i.flag-anguilla:before{background-position:0 -104px !important}i.flag-al:before,i.flag-albania:before{background-position:0 -130px !important}i.flag-am:before,i.flag-armenia:before{background-position:0 -156px !important}i.flag-an:before,i.flag-netherlands-antilles:before{background-position:0 -182px !important}i.flag-ao:before,i.flag-angola:before{background-position:0 -208px !important}i.flag-ar:before,i.flag-argentina:before{background-position:0 -234px !important}i.flag-as:before,i.flag-american-samoa:before{background-position:0 -260px !important}i.flag-at:before,i.flag-austria:before{background-position:0 -286px !important}i.flag-au:before,i.flag-australia:before{background-position:0 -312px !important}i.flag-aw:before,i.flag-aruba:before{background-position:0 -338px !important}i.flag-ax:before,i.flag-aland-islands:before{background-position:0 -364px !important}i.flag-az:before,i.flag-azerbaijan:before{background-position:0 -390px !important}i.flag-ba:before,i.flag-bosnia:before{background-position:0 -416px !important}i.flag-bb:before,i.flag-barbados:before{background-position:0 -442px !important}i.flag-bd:before,i.flag-bangladesh:before{background-position:0 -468px !important}i.flag-be:before,i.flag-belgium:before{background-position:0 -494px !important}i.flag-bf:before,i.flag-burkina-faso:before{background-position:0 -520px !important}i.flag-bg:before,i.flag-bulgaria:before{background-position:0 -546px !important}i.flag-bh:before,i.flag-bahrain:before{background-position:0 -572px !important}i.flag-bi:before,i.flag-burundi:before{background-position:0 -598px !important}i.flag-bj:before,i.flag-benin:before{background-position:0 -624px !important}i.flag-bm:before,i.flag-bermuda:before{background-position:0 -650px !important}i.flag-bn:before,i.flag-brunei:before{background-position:0 -676px !important}i.flag-bo:before,i.flag-bolivia:before{background-position:0 -702px !important}i.flag-br:before,i.flag-brazil:before{background-position:0 -728px !important}i.flag-bs:before,i.flag-bahamas:before{background-position:0 -754px !important}i.flag-bt:before,i.flag-bhutan:before{background-position:0 -780px !important}i.flag-bv:before,i.flag-bouvet-island:before{background-position:0 -806px !important}i.flag-bw:before,i.flag-botswana:before{background-position:0 -832px !important}i.flag-by:before,i.flag-belarus:before{background-position:0 -858px !important}i.flag-bz:before,i.flag-belize:before{background-position:0 -884px !important}i.flag-ca:before,i.flag-canada:before{background-position:0 -910px !important}i.flag-cc:before,i.flag-cocos-islands:before{background-position:0 -962px !important}i.flag-cd:before,i.flag-congo:before{background-position:0 -988px !important}i.flag-cf:before,i.flag-central-african-republic:before{background-position:0 -1014px !important}i.flag-cg:before,i.flag-congo-brazzaville:before{background-position:0 -1040px !important}i.flag-ch:before,i.flag-switzerland:before{background-position:0 -1066px !important}i.flag-ci:before,i.flag-cote-divoire:before{background-position:0 -1092px !important}i.flag-ck:before,i.flag-cook-islands:before{background-position:0 -1118px !important}i.flag-cl:before,i.flag-chile:before{background-position:0 -1144px !important}i.flag-cm:before,i.flag-cameroon:before{background-position:0 -1170px !important}i.flag-cn:before,i.flag-china:before{background-position:0 -1196px !important}i.flag-co:before,i.flag-colombia:before{background-position:0 -1222px !important}i.flag-cr:before,i.flag-costa-rica:before{background-position:0 -1248px !important}i.flag-cs:before,i.flag-serbia:before{background-position:0 -1274px !important}i.flag-cu:before,i.flag-cuba:before{background-position:0 -1300px !important}i.flag-cv:before,i.flag-cape-verde:before{background-position:0 -1326px !important}i.flag-cx:before,i.flag-christmas-island:before{background-position:0 -1352px !important}i.flag-cy:before,i.flag-cyprus:before{background-position:0 -1378px !important}i.flag-cz:before,i.flag-czech-republic:before{background-position:0 -1404px !important}i.flag-de:before,i.flag-germany:before{background-position:0 -1430px !important}i.flag-dj:before,i.flag-djibouti:before{background-position:0 -1456px !important}i.flag-dk:before,i.flag-denmark:before{background-position:0 -1482px !important}i.flag-dm:before,i.flag-dominica:before{background-position:0 -1508px !important}i.flag-do:before,i.flag-dominican-republic:before{background-position:0 -1534px !important}i.flag-dz:before,i.flag-algeria:before{background-position:0 -1560px !important}i.flag-ec:before,i.flag-ecuador:before{background-position:0 -1586px !important}i.flag-ee:before,i.flag-estonia:before{background-position:0 -1612px !important}i.flag-eg:before,i.flag-egypt:before{background-position:0 -1638px !important}i.flag-eh:before,i.flag-western-sahara:before{background-position:0 -1664px !important}i.flag-gb-eng:before,i.flag-england:before{background-position:0 -1690px !important}i.flag-er:before,i.flag-eritrea:before{background-position:0 -1716px !important}i.flag-es:before,i.flag-spain:before{background-position:0 -1742px !important}i.flag-et:before,i.flag-ethiopia:before{background-position:0 -1768px !important}i.flag-eu:before,i.flag-european-union:before{background-position:0 -1794px !important}i.flag-fi:before,i.flag-finland:before{background-position:0 -1846px !important}i.flag-fj:before,i.flag-fiji:before{background-position:0 -1872px !important}i.flag-fk:before,i.flag-falkland-islands:before{background-position:0 -1898px !important}i.flag-fm:before,i.flag-micronesia:before{background-position:0 -1924px !important}i.flag-fo:before,i.flag-faroe-islands:before{background-position:0 -1950px !important}i.flag-fr:before,i.flag-france:before{background-position:0 -1976px !important}i.flag-ga:before,i.flag-gabon:before{background-position:-36px 0 !important}i.flag-gb:before,i.flag-uk:before,i.flag-united-kingdom:before{background-position:-36px -26px !important}i.flag-gd:before,i.flag-grenada:before{background-position:-36px -52px !important}i.flag-ge:before,i.flag-georgia:before{background-position:-36px -78px !important}i.flag-gf:before,i.flag-french-guiana:before{background-position:-36px -104px !important}i.flag-gh:before,i.flag-ghana:before{background-position:-36px -130px !important}i.flag-gi:before,i.flag-gibraltar:before{background-position:-36px -156px !important}i.flag-gl:before,i.flag-greenland:before{background-position:-36px -182px !important}i.flag-gm:before,i.flag-gambia:before{background-position:-36px -208px !important}i.flag-gn:before,i.flag-guinea:before{background-position:-36px -234px !important}i.flag-gp:before,i.flag-guadeloupe:before{background-position:-36px -260px !important}i.flag-gq:before,i.flag-equatorial-guinea:before{background-position:-36px -286px !important}i.flag-gr:before,i.flag-greece:before{background-position:-36px -312px !important}i.flag-gs:before,i.flag-sandwich-islands:before{background-position:-36px -338px !important}i.flag-gt:before,i.flag-guatemala:before{background-position:-36px -364px !important}i.flag-gu:before,i.flag-guam:before{background-position:-36px -390px !important}i.flag-gw:before,i.flag-guinea-bissau:before{background-position:-36px -416px !important}i.flag-gy:before,i.flag-guyana:before{background-position:-36px -442px !important}i.flag-hk:before,i.flag-hong-kong:before{background-position:-36px -468px !important}i.flag-hm:before,i.flag-heard-island:before{background-position:-36px -494px !important}i.flag-hn:before,i.flag-honduras:before{background-position:-36px -520px !important}i.flag-hr:before,i.flag-croatia:before{background-position:-36px -546px !important}i.flag-ht:before,i.flag-haiti:before{background-position:-36px -572px !important}i.flag-hu:before,i.flag-hungary:before{background-position:-36px -598px !important}i.flag-id:before,i.flag-indonesia:before{background-position:-36px -624px !important}i.flag-ie:before,i.flag-ireland:before{background-position:-36px -650px !important}i.flag-il:before,i.flag-israel:before{background-position:-36px -676px !important}i.flag-in:before,i.flag-india:before{background-position:-36px -702px !important}i.flag-io:before,i.flag-indian-ocean-territory:before{background-position:-36px -728px !important}i.flag-iq:before,i.flag-iraq:before{background-position:-36px -754px !important}i.flag-ir:before,i.flag-iran:before{background-position:-36px -780px !important}i.flag-is:before,i.flag-iceland:before{background-position:-36px -806px !important}i.flag-it:before,i.flag-italy:before{background-position:-36px -832px !important}i.flag-jm:before,i.flag-jamaica:before{background-position:-36px -858px !important}i.flag-jo:before,i.flag-jordan:before{background-position:-36px -884px !important}i.flag-jp:before,i.flag-japan:before{background-position:-36px -910px !important}i.flag-ke:before,i.flag-kenya:before{background-position:-36px -936px !important}i.flag-kg:before,i.flag-kyrgyzstan:before{background-position:-36px -962px !important}i.flag-kh:before,i.flag-cambodia:before{background-position:-36px -988px !important}i.flag-ki:before,i.flag-kiribati:before{background-position:-36px -1014px !important}i.flag-km:before,i.flag-comoros:before{background-position:-36px -1040px !important}i.flag-kn:before,i.flag-saint-kitts-and-nevis:before{background-position:-36px -1066px !important}i.flag-kp:before,i.flag-north-korea:before{background-position:-36px -1092px !important}i.flag-kr:before,i.flag-south-korea:before{background-position:-36px -1118px !important}i.flag-kw:before,i.flag-kuwait:before{background-position:-36px -1144px !important}i.flag-ky:before,i.flag-cayman-islands:before{background-position:-36px -1170px !important}i.flag-kz:before,i.flag-kazakhstan:before{background-position:-36px -1196px !important}i.flag-la:before,i.flag-laos:before{background-position:-36px -1222px !important}i.flag-lb:before,i.flag-lebanon:before{background-position:-36px -1248px !important}i.flag-lc:before,i.flag-saint-lucia:before{background-position:-36px -1274px !important}i.flag-li:before,i.flag-liechtenstein:before{background-position:-36px -1300px !important}i.flag-lk:before,i.flag-sri-lanka:before{background-position:-36px -1326px !important}i.flag-lr:before,i.flag-liberia:before{background-position:-36px -1352px !important}i.flag-ls:before,i.flag-lesotho:before{background-position:-36px -1378px !important}i.flag-lt:before,i.flag-lithuania:before{background-position:-36px -1404px !important}i.flag-lu:before,i.flag-luxembourg:before{background-position:-36px -1430px !important}i.flag-lv:before,i.flag-latvia:before{background-position:-36px -1456px !important}i.flag-ly:before,i.flag-libya:before{background-position:-36px -1482px !important}i.flag-ma:before,i.flag-morocco:before{background-position:-36px -1508px !important}i.flag-mc:before,i.flag-monaco:before{background-position:-36px -1534px !important}i.flag-md:before,i.flag-moldova:before{background-position:-36px -1560px !important}i.flag-me:before,i.flag-montenegro:before{background-position:-36px -1586px !important}i.flag-mg:before,i.flag-madagascar:before{background-position:-36px -1613px !important}i.flag-mh:before,i.flag-marshall-islands:before{background-position:-36px -1639px !important}i.flag-mk:before,i.flag-macedonia:before{background-position:-36px -1665px !important}i.flag-ml:before,i.flag-mali:before{background-position:-36px -1691px !important}i.flag-mm:before,i.flag-myanmar:before,i.flag-burma:before{background-position:-73px -1821px !important}i.flag-mn:before,i.flag-mongolia:before{background-position:-36px -1743px !important}i.flag-mo:before,i.flag-macau:before{background-position:-36px -1769px !important}i.flag-mp:before,i.flag-northern-mariana-islands:before{background-position:-36px -1795px !important}i.flag-mq:before,i.flag-martinique:before{background-position:-36px -1821px !important}i.flag-mr:before,i.flag-mauritania:before{background-position:-36px -1847px !important}i.flag-ms:before,i.flag-montserrat:before{background-position:-36px -1873px !important}i.flag-mt:before,i.flag-malta:before{background-position:-36px -1899px !important}i.flag-mu:before,i.flag-mauritius:before{background-position:-36px -1925px !important}i.flag-mv:before,i.flag-maldives:before{background-position:-36px -1951px !important}i.flag-mw:before,i.flag-malawi:before{background-position:-36px -1977px !important}i.flag-mx:before,i.flag-mexico:before{background-position:-72px 0 !important}i.flag-my:before,i.flag-malaysia:before{background-position:-72px -26px !important}i.flag-mz:before,i.flag-mozambique:before{background-position:-72px -52px !important}i.flag-na:before,i.flag-namibia:before{background-position:-72px -78px !important}i.flag-nc:before,i.flag-new-caledonia:before{background-position:-72px -104px !important}i.flag-ne:before,i.flag-niger:before{background-position:-72px -130px !important}i.flag-nf:before,i.flag-norfolk-island:before{background-position:-72px -156px !important}i.flag-ng:before,i.flag-nigeria:before{background-position:-72px -182px !important}i.flag-ni:before,i.flag-nicaragua:before{background-position:-72px -208px !important}i.flag-nl:before,i.flag-netherlands:before{background-position:-72px -234px !important}i.flag-no:before,i.flag-norway:before{background-position:-72px -260px !important}i.flag-np:before,i.flag-nepal:before{background-position:-72px -286px !important}i.flag-nr:before,i.flag-nauru:before{background-position:-72px -312px !important}i.flag-nu:before,i.flag-niue:before{background-position:-72px -338px !important}i.flag-nz:before,i.flag-new-zealand:before{background-position:-72px -364px !important}i.flag-om:before,i.flag-oman:before{background-position:-72px -390px !important}i.flag-pa:before,i.flag-panama:before{background-position:-72px -416px !important}i.flag-pe:before,i.flag-peru:before{background-position:-72px -442px !important}i.flag-pf:before,i.flag-french-polynesia:before{background-position:-72px -468px !important}i.flag-pg:before,i.flag-new-guinea:before{background-position:-72px -494px !important}i.flag-ph:before,i.flag-philippines:before{background-position:-72px -520px !important}i.flag-pk:before,i.flag-pakistan:before{background-position:-72px -546px !important}i.flag-pl:before,i.flag-poland:before{background-position:-72px -572px !important}i.flag-pm:before,i.flag-saint-pierre:before{background-position:-72px -598px !important}i.flag-pn:before,i.flag-pitcairn-islands:before{background-position:-72px -624px !important}i.flag-pr:before,i.flag-puerto-rico:before{background-position:-72px -650px !important}i.flag-ps:before,i.flag-palestine:before{background-position:-72px -676px !important}i.flag-pt:before,i.flag-portugal:before{background-position:-72px -702px !important}i.flag-pw:before,i.flag-palau:before{background-position:-72px -728px !important}i.flag-py:before,i.flag-paraguay:before{background-position:-72px -754px !important}i.flag-qa:before,i.flag-qatar:before{background-position:-72px -780px !important}i.flag-re:before,i.flag-reunion:before{background-position:-72px -806px !important}i.flag-ro:before,i.flag-romania:before{background-position:-72px -832px !important}i.flag-rs:before,i.flag-serbia:before{background-position:-72px -858px !important}i.flag-ru:before,i.flag-russia:before{background-position:-72px -884px !important}i.flag-rw:before,i.flag-rwanda:before{background-position:-72px -910px !important}i.flag-sa:before,i.flag-saudi-arabia:before{background-position:-72px -936px !important}i.flag-sb:before,i.flag-solomon-islands:before{background-position:-72px -962px !important}i.flag-sc:before,i.flag-seychelles:before{background-position:-72px -988px !important}i.flag-gb-sct:before,i.flag-scotland:before{background-position:-72px -1014px !important}i.flag-sd:before,i.flag-sudan:before{background-position:-72px -1040px !important}i.flag-se:before,i.flag-sweden:before{background-position:-72px -1066px !important}i.flag-sg:before,i.flag-singapore:before{background-position:-72px -1092px !important}i.flag-sh:before,i.flag-saint-helena:before{background-position:-72px -1118px !important}i.flag-si:before,i.flag-slovenia:before{background-position:-72px -1144px !important}i.flag-sj:before,i.flag-svalbard:before,i.flag-jan-mayen:before{background-position:-72px -1170px !important}i.flag-sk:before,i.flag-slovakia:before{background-position:-72px -1196px !important}i.flag-sl:before,i.flag-sierra-leone:before{background-position:-72px -1222px !important}i.flag-sm:before,i.flag-san-marino:before{background-position:-72px -1248px !important}i.flag-sn:before,i.flag-senegal:before{background-position:-72px -1274px !important}i.flag-so:before,i.flag-somalia:before{background-position:-72px -1300px !important}i.flag-sr:before,i.flag-suriname:before{background-position:-72px -1326px !important}i.flag-st:before,i.flag-sao-tome:before{background-position:-72px -1352px !important}i.flag-sv:before,i.flag-el-salvador:before{background-position:-72px -1378px !important}i.flag-sy:before,i.flag-syria:before{background-position:-72px -1404px !important}i.flag-sz:before,i.flag-swaziland:before{background-position:-72px -1430px !important}i.flag-tc:before,i.flag-caicos-islands:before{background-position:-72px -1456px !important}i.flag-td:before,i.flag-chad:before{background-position:-72px -1482px !important}i.flag-tf:before,i.flag-french-territories:before{background-position:-72px -1508px !important}i.flag-tg:before,i.flag-togo:before{background-position:-72px -1534px !important}i.flag-th:before,i.flag-thailand:before{background-position:-72px -1560px !important}i.flag-tj:before,i.flag-tajikistan:before{background-position:-72px -1586px !important}i.flag-tk:before,i.flag-tokelau:before{background-position:-72px -1612px !important}i.flag-tl:before,i.flag-timorleste:before{background-position:-72px -1638px !important}i.flag-tm:before,i.flag-turkmenistan:before{background-position:-72px -1664px !important}i.flag-tn:before,i.flag-tunisia:before{background-position:-72px -1690px !important}i.flag-to:before,i.flag-tonga:before{background-position:-72px -1716px !important}i.flag-tr:before,i.flag-turkey:before{background-position:-72px -1742px !important}i.flag-tt:before,i.flag-trinidad:before{background-position:-72px -1768px !important}i.flag-tv:before,i.flag-tuvalu:before{background-position:-72px -1794px !important}i.flag-tw:before,i.flag-taiwan:before{background-position:-72px -1820px !important}i.flag-tz:before,i.flag-tanzania:before{background-position:-72px -1846px !important}i.flag-ua:before,i.flag-ukraine:before{background-position:-72px -1872px !important}i.flag-ug:before,i.flag-uganda:before{background-position:-72px -1898px !important}i.flag-um:before,i.flag-us-minor-islands:before{background-position:-72px -1924px !important}i.flag-us:before,i.flag-america:before,i.flag-united-states:before{background-position:-72px -1950px !important}i.flag-uy:before,i.flag-uruguay:before{background-position:-72px -1976px !important}i.flag-uz:before,i.flag-uzbekistan:before{background-position:-108px 0 !important}i.flag-va:before,i.flag-vatican-city:before{background-position:-108px -26px !important}i.flag-vc:before,i.flag-saint-vincent:before{background-position:-108px -52px !important}i.flag-ve:before,i.flag-venezuela:before{background-position:-108px -78px !important}i.flag-vg:before,i.flag-british-virgin-islands:before{background-position:-108px -104px !important}i.flag-vi:before,i.flag-us-virgin-islands:before{background-position:-108px -130px !important}i.flag-vn:before,i.flag-vietnam:before{background-position:-108px -156px !important}i.flag-vu:before,i.flag-vanuatu:before{background-position:-108px -182px !important}i.flag-gb-wls:before,i.flag-wales:before{background-position:-108px -208px !important}i.flag-wf:before,i.flag-wallis-and-futuna:before{background-position:-108px -234px !important}i.flag-ws:before,i.flag-samoa:before{background-position:-108px -260px !important}i.flag-ye:before,i.flag-yemen:before{background-position:-108px -286px !important}i.flag-yt:before,i.flag-mayotte:before{background-position:-108px -312px !important}i.flag-za:before,i.flag-south-africa:before{background-position:-108px -338px !important}i.flag-zm:before,i.flag-zambia:before{background-position:-108px -364px !important}i.flag-zw:before,i.flag-zimbabwe:before{background-position:-108px -390px !important}.bg-fixed{background-attachment:fixed}.bg-image{position:relative;overflow:hidden;background-repeat:no-repeat;background-size:cover;background-position:center center}.mask{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;background-attachment:fixed}.hover-overlay .mask{--mdb-image-hover-transition: all 0.3s ease-in-out;opacity:0;transition:var(--mdb-image-hover-transition)}.hover-overlay .mask:hover{opacity:1}.hover-zoom{--mdb-image-hover-zoom-transition: all 0.3s linear;--mdb-image-hover-zoom-transform: scale(1.1)}.hover-zoom img,.hover-zoom video{transition:var(--mdb-image-hover-zoom-transition)}.hover-zoom:hover img,.hover-zoom:hover video{transform:var(--mdb-image-hover-zoom-transform)}.hover-shadow,.card.hover-shadow,.hover-shadow-soft,.card.hover-shadow-soft{--mdb-image-hover-shadow-transition: all 0.3s ease-in-out;transition:var(--mdb-image-hover-shadow-transition)}.hover-shadow:hover,.card.hover-shadow:hover,.hover-shadow-soft:hover,.card.hover-shadow-soft:hover{transition:var(--mdb-image-hover-shadow-transition)}.hover-shadow,.card.hover-shadow{--mdb-image-hover-shadow-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.16), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.1);box-shadow:none}.hover-shadow:hover,.card.hover-shadow:hover{box-shadow:var(--mdb-image-hover-shadow-box-shadow)}.hover-shadow-soft,.card.hover-shadow-soft{--mdb-image-hover-shadow-box-shadow-soft: 0 2px 25px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 25px 21px -5px rgba(var(--mdb-box-shadow-color-rgb), 0.04);box-shadow:none}.hover-shadow-soft:hover,.card.hover-shadow-soft:hover{box-shadow:var(--mdb-image-hover-shadow-box-shadow-soft)}.form-control{min-height:auto;padding:4.5px 12px 3.68px 12px;transition:all .1s linear;box-shadow:none}.form-control:focus{box-shadow:none;transition:all .1s linear;border-color:#3b71ca;box-shadow:inset 0px 0px 0px 1px #3b71ca}.form-control.form-control-sm{font-size:.775rem;line-height:1.5}.form-control.form-control-lg{line-height:2.15;border-radius:.25rem}.form-outline{position:relative;width:100%}.form-outline .form-helper{width:100%;position:absolute;font-size:.875em;color:#757575}.form-outline .form-helper .form-counter{text-align:right}.form-outline .trailing{position:absolute;right:10px;left:initial;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--mdb-surface-color)}.form-outline .form-icon-trailing{padding-right:2rem !important}.form-outline .form-control{min-height:auto;padding-top:.32rem;padding-bottom:.32rem;padding-left:.75rem;padding-right:.75rem;border:0;background:rgba(0,0,0,0);transition:all .2s linear}.form-outline .form-control~.form-label{position:absolute;top:0;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;left:.75rem;padding-top:.37rem;pointer-events:none;transform-origin:0 0;transition:all .2s ease-out;color:var(--mdb-form-control-label-color);margin-bottom:0}.form-outline .form-control~.form-notch{display:flex;position:absolute;left:0;top:0;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}.form-outline .form-control~.form-notch div{pointer-events:none;border:1px solid;border-color:var(--mdb-form-control-border-color);box-sizing:border-box;background:rgba(0,0,0,0);transition:all .2s linear}.form-outline .form-control~.form-notch .form-notch-leading{left:0;top:0;height:100%;width:.5rem;border-right:none;border-radius:.25rem 0 0 .25rem}.form-outline .form-control~.form-notch .form-notch-middle{flex:0 0 auto;width:auto;max-width:calc(100% - 1rem);height:100%;border-right:none;border-left:none}.form-outline .form-control~.form-notch .form-notch-trailing{flex-grow:1;height:100%;border-left:none;border-radius:0 .25rem .25rem 0}.form-outline .form-control:not(.placeholder-active)::placeholder{opacity:0}.form-outline .form-control:focus::placeholder,.form-outline .form-control.active::placeholder{opacity:1}.form-outline .form-control:focus{box-shadow:none !important}.form-outline .form-control:focus~.form-label,.form-outline .form-control.active~.form-label{transform:translateY(-1rem) translateY(0.1rem) scale(0.8)}.form-outline .form-control:focus~.form-label{color:var(--mdb-input-focus-label-color)}.form-outline .form-control:focus~.form-notch .form-notch-middle,.form-outline .form-control.active~.form-notch .form-notch-middle{border-right:none;border-left:none;border-top:1px solid rgba(0,0,0,0)}.form-outline .form-control:focus~.form-notch .form-notch-middle{border-color:var(--mdb-input-focus-border-color);box-shadow:0 1px 0 0 var(--mdb-input-focus-border-color);border-top:1px solid rgba(0,0,0,0)}.form-outline .form-control:focus~.form-notch .form-notch-leading,.form-outline .form-control.active~.form-notch .form-notch-leading{border-right:none}.form-outline .form-control:focus~.form-notch .form-notch-leading{border-color:var(--mdb-input-focus-border-color);box-shadow:-1px 0 0 0 var(--mdb-input-focus-border-color),0 1px 0 0 var(--mdb-input-focus-border-color),0 -1px 0 0 var(--mdb-input-focus-border-color)}.form-outline .form-control:focus~.form-notch .form-notch-trailing,.form-outline .form-control.active~.form-notch .form-notch-trailing{border-left:none}.form-outline .form-control:focus~.form-notch .form-notch-trailing{border-color:var(--mdb-input-focus-border-color);box-shadow:1px 0 0 0 var(--mdb-input-focus-border-color),0 -1px 0 0 var(--mdb-input-focus-border-color),0 1px 0 0 var(--mdb-input-focus-border-color)}.form-outline .form-control:disabled,.form-outline .form-control.disabled,.form-outline .form-control[readonly]{background-color:var(--mdb-form-control-disabled-bg)}.form-outline .form-control:disabled~.timepicker-toggle-button,.form-outline .form-control:disabled~.datepicker-toggle-button,.form-outline .form-control:disabled~.datetimepicker-toggle-button,.form-outline .form-control:disabled~.select-arrow,.form-outline .form-control:disabled~.trailing,.form-outline .form-control.disabled~.timepicker-toggle-button,.form-outline .form-control.disabled~.datepicker-toggle-button,.form-outline .form-control.disabled~.datetimepicker-toggle-button,.form-outline .form-control.disabled~.select-arrow,.form-outline .form-control.disabled~.trailing,.form-outline .form-control[readonly]~.timepicker-toggle-button,.form-outline .form-control[readonly]~.datepicker-toggle-button,.form-outline .form-control[readonly]~.datetimepicker-toggle-button,.form-outline .form-control[readonly]~.select-arrow,.form-outline .form-control[readonly]~.trailing{color:rgba(var(--mdb-surface-color-rgb), 0.5)}.form-outline .form-control.form-control-lg{font-size:1rem;line-height:2.15}.form-outline .form-control.form-control-lg~.form-label{padding-top:.7rem}.form-outline .form-control.form-control-lg:focus~.form-label,.form-outline .form-control.form-control-lg.active~.form-label{transform:translateY(-1.25rem) translateY(0.1rem) scale(0.8)}.form-outline .form-control.form-control-sm{padding-top:.32rem;padding-bottom:.32rem;font-size:.775rem;line-height:1.5}.form-outline .form-control.form-control-sm~.form-label{padding-top:.33rem;font-size:.775rem}.form-outline .form-control.form-control-sm:focus~.form-label,.form-outline .form-control.form-control-sm.active~.form-label{transform:translateY(-0.85rem) translateY(0.1rem) scale(0.8)}.form-outline.form-white .form-control{color:#fff}.form-outline.form-white .form-control~.form-label{color:#fbfbfb}.form-outline.form-white .form-control~.form-notch div{border-color:#fbfbfb}.form-outline.form-white .form-control:focus~.form-label{color:#fff}.form-outline.form-white .form-control:focus~.form-notch .form-notch-middle{border-color:#fff;box-shadow:0 1px 0 0 #fff;border-top:1px solid rgba(0,0,0,0)}.form-outline.form-white .form-control:focus~.form-notch .form-notch-leading{border-color:#fff;box-shadow:-1px 0 0 0 #fff,0 1px 0 0 #fff,0 -1px 0 0 #fff}.form-outline.form-white .form-control:focus~.form-notch .form-notch-trailing{border-color:#fff;box-shadow:1px 0 0 0 #fff,0 -1px 0 0 #fff,0 1px 0 0 #fff}.form-outline.form-white .form-control::placeholder{color:rgba(255,255,255,.7)}.form-outline.form-white .form-control:disabled,.form-outline.form-white .form-control.disabled,.form-outline.form-white .form-control[readonly]{background-color:rgba(255,255,255,.45)}.select-input.form-control[readonly]:not([disabled]){background-color:rgba(0,0,0,0)}.form-select{transition:all .2s linear}.form-select:focus{border-color:#3b71ca;outline:0;box-shadow:inset 0px 0px 0px 1px #3b71ca}.form-check{min-height:1.5rem}.form-check-input{position:relative;width:1.125rem;height:1.125rem;background-color:var(--mdb-body-bg);border:.125rem solid var(--mdb-form-control-border-color)}.form-check-input:before{content:"";position:absolute;box-shadow:0px 0px 0px 13px rgba(0,0,0,0);border-radius:50%;width:.875rem;height:.875rem;background-color:rgba(0,0,0,0);opacity:0;pointer-events:none;transform:scale(0)}.form-check-input:hover{cursor:pointer}.form-check-input:hover:before{opacity:.04;box-shadow:0px 0px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6)}.form-check-input:focus{box-shadow:none;border-color:var(--mdb-form-control-border-color);transition:border-color .2s}.form-check-input:focus:before{opacity:.12;box-shadow:0px 0px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6);transform:scale(1);transition:box-shadow .2s,transform .2s}.form-check-input:checked{border-color:#3b71ca}.form-check-input:checked:before{opacity:.16}.form-check-input:checked:after{content:"";position:absolute}.form-check-input:checked:focus{border-color:#3b71ca}.form-check-input:checked:focus:before{box-shadow:0px 0px 0px 13px #3b71ca;transform:scale(1);transition:box-shadow .2s,transform .2s}.form-check-input:indeterminate:focus:before{box-shadow:0px 0px 0px 13px #3b71ca}.form-check-input[type=checkbox]{border-radius:.25rem;margin-top:.19em;margin-right:6px}.form-check-input[type=checkbox]:focus:after{content:"";position:absolute;width:.875rem;height:.875rem;z-index:1;display:block;border-radius:0;background-color:var(--mdb-body-bg)}.form-check-input[type=checkbox]:checked{background-image:none;background-color:#3b71ca}.form-check-input[type=checkbox]:checked:after{display:block;transform:rotate(45deg) /*!rtl:ignore*/;border-width:.125rem;border-color:#fff;width:.375rem;height:.8125rem;border-style:solid;border-top:0;border-left:0 /*!rtl:ignore*/;margin-left:.25rem;margin-top:-1px;background-color:rgba(0,0,0,0)}.form-check-input[type=checkbox]:checked:focus{background-color:#3b71ca}.form-check-input[type=checkbox]:indeterminate{border-color:#3b71ca}.form-check-input[type=radio]{border-radius:50%;width:1.25rem;height:1.25rem;margin-top:.125em;margin-right:4px}.form-check-input[type=radio]:before{width:1rem;height:1rem}.form-check-input[type=radio]:after{content:"";position:absolute;width:1rem;height:1rem;z-index:1;display:block;border-radius:50%;background-color:var(--mdb-body-bg)}.form-check-input[type=radio]:checked{background-image:none;background-color:var(--mdb-body-bg)}.form-check-input[type=radio]:checked:after{border-radius:50%;width:.625rem;height:.625rem;border-color:#3b71ca;background-color:#3b71ca;transition:border-color;transform:translate(-50%, -50%);position:absolute;left:50%;top:50%}.form-check-input[type=radio]:checked:focus{background-color:var(--mdb-body-bg)}.form-check-label{padding-left:.15rem}.form-check-label:hover{cursor:pointer}.form-switch .form-check-input{background-image:none;border-width:0;border-radius:.4375rem;width:2rem;height:.875rem;background-color:rgba(var(--mdb-emphasis-color-rgb), 0.25);margin-top:.3em;margin-right:8px}.form-switch .form-check-input:after{content:"";position:absolute;border:none;z-index:2;border-radius:50%;width:1.25rem;height:1.25rem;background-color:var(--mdb-surface-bg);margin-top:-0.1875rem;box-shadow:0 0px 3px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.04);transition:background-color .2s,transform .2s}.form-switch .form-check-input:focus{background-image:none}.form-switch .form-check-input:focus:before{box-shadow:3px -1px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6);transform:scale(1);transition:box-shadow .2s,transform .2s}.form-switch .form-check-input:focus:after{border-radius:50%;width:1.25rem;height:1.25rem}.form-switch .form-check-input:checked{background-image:none}.form-switch .form-check-input:checked:focus{background-image:none}.form-switch .form-check-input:checked:focus:before{margin-left:1.0625rem;box-shadow:3px -1px 0px 13px #3b71ca;transform:scale(1);transition:box-shadow .2s,transform .2s}.form-switch .form-check-input:checked[type=checkbox]{background-image:none}.form-switch .form-check-input:checked[type=checkbox]:after{content:"";position:absolute;border:none;z-index:2;border-radius:50%;width:1.25rem;height:1.25rem;background-color:#3b71ca;margin-top:-3px;margin-left:1.0625rem;box-shadow:0 3px 1px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.2),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.14),0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.12);transition:background-color .2s,transform .2s}.form-control[type=file]{border-color:var(--mdb-form-control-border-color)}.form-control[type=file]::-webkit-file-upload-button{background-color:rgba(0,0,0,0)}.form-control[type=file]:disabled{background-color:var(--mdb-form-control-disabled-bg);color:rgba(var(--mdb-surface-color-rgb), 0.5)}.form-control[type=file]:disabled::file-selector-button{color:rgba(var(--mdb-surface-color-rgb), 0.5)}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:rgba(0,0,0,0)}.input-group{flex-wrap:nowrap}.input-group>.form-control{min-height:calc(2.08rem + 2px);height:calc(2.08rem + 2px);padding-top:.27rem;padding-bottom:.27rem;transition:all .2s linear}.input-group>.form-control:focus{transition:all .2s linear;border-color:#3b71ca;outline:0;box-shadow:inset 0 0 0 1px #3b71ca}.input-group-text{background-color:rgba(0,0,0,0);padding-top:.26rem;padding-bottom:.26rem}.input-group-text>.form-check-input[type=checkbox]{margin-left:1px;margin-right:1px}.input-group-text>.form-check-input[type=radio]{margin-right:0}.input-group-lg>.form-control{height:calc(2.645rem + 2px);font-size:1rem;padding-top:.33rem;padding-bottom:.33rem}.input-group-lg .input-group-text{font-size:1rem}.input-group-sm>.form-control{min-height:calc(1.66rem + 2px);height:calc(1.66rem + 2px);font-size:.775rem;padding-top:.33rem;padding-bottom:.33rem}.input-group-sm .input-group-text{font-size:.775rem;line-height:1.5}.input-group.form-outline .input-group-text{border-left:0}.input-group.form-outline input+.input-group-text{border:0;border-left:1px solid #bdbdbd}.input-group .form-outline:not(:first-child),.input-group .select-wrapper:not(:first-child),.input-group .form-outline:not(:first-child) .form-notch-leading,.input-group .select-wrapper:not(:first-child) .form-notch-leading{border-top-left-radius:0 !important;border-bottom-left-radius:0 !important}.input-group .form-outline:not(:last-child),.input-group .select-wrapper:not(:last-child),.input-group .form-outline:not(:last-child) .form-notch-trailing,.input-group .select-wrapper:not(:last-child) .form-notch-trailing{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.input-group>[class*=btn-outline-]+[class*=btn-outline-]{border-left:0}.input-group>.btn[class*=btn-outline-]{padding-top:.47rem}.input-group>.btn{padding-top:.59rem}.input-group.input-group-lg .input-group-text{height:calc(2.645rem + 2px)}.input-group .input-group-text{height:calc(2.08rem + 2px)}.input-group .btn{line-height:1}.input-group.input-group-sm .input-group-text{height:calc(1.66rem + 2px)}INPUT:-webkit-autofill,SELECT:-webkit-autofill,TEXTAREA:-webkit-autofill{animation-name:onautofillstart;-webkit-background-clip:text;box-shadow:inset 0 0 20px 20px var(--mdb-body-bg);-webkit-box-shadow:0 0 20px 20px var(--mdb-body-bg) inset !important}INPUT:-webkit-autofill:hover,INPUT:-webkit-autofill:focus,INPUT:-webkit-autofill:active,SELECT:-webkit-autofill:hover,SELECT:-webkit-autofill:focus,SELECT:-webkit-autofill:active,TEXTAREA:-webkit-autofill:hover,TEXTAREA:-webkit-autofill:focus,TEXTAREA:-webkit-autofill:active{animation-name:onautofillstart;-webkit-background-clip:text;box-shadow:inset 0 0 20px 20px var(--mdb-body-bg);-webkit-box-shadow:0 0 20px 20px var(--mdb-body-bg) inset !important}INPUT:not(:-webkit-autofill),SELECT:not(:-webkit-autofill),TEXTAREA:not(:-webkit-autofill){animation-name:onautofillcancel}@keyframes onautofillstart{}@keyframes onautofillcancel{}.was-validated .input-group .invalid-feedback,.was-validated .input-group .valid-feedback{margin-top:2.5rem}.input-group .invalid-feedback,.input-group .valid-feedback{margin-top:2.5rem}.valid-feedback{position:absolute;display:none;width:auto;margin-top:.25rem;font-size:.875rem;color:#14a44d;margin-top:-0.75rem}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:.875rem;background-color:rgba(20,164,77,.9);border-radius:.25rem !important;color:#fff}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{margin-bottom:1rem;background-image:none;border-color:#14a44d}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#14a44d;box-shadow:0 0 0 .25rem rgba(20,164,77,.25)}.was-validated .form-outline .form-control:valid~.form-label,.form-outline .form-control.is-valid~.form-label{color:#14a44d}.was-validated .form-outline .form-control:valid~.form-notch .form-notch-leading,.was-validated .form-outline .form-control:valid~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:valid~.form-notch .form-notch-trailing,.form-outline .form-control.is-valid~.form-notch .form-notch-leading,.form-outline .form-control.is-valid~.form-notch .form-notch-middle,.form-outline .form-control.is-valid~.form-notch .form-notch-trailing{border-color:#14a44d}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:valid.active~.form-notch .form-notch-middle,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-valid.active~.form-notch .form-notch-middle{border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-leading,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-leading{border-color:#14a44d;box-shadow:-1px 0 0 0 #14a44d,0 1px 0 0 #14a44d,0 -1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid:focus~.form-notch .form-notch-trailing,.form-outline .form-control.is-valid:focus~.form-notch .form-notch-trailing{border-color:#14a44d;box-shadow:1px 0 0 0 #14a44d,0 -1px 0 0 #14a44d,0 1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid.select-input.focused~.form-notch .form-notch-leading,.form-outline .form-control.is-valid.select-input.focused~.form-notch .form-notch-leading{box-shadow:-1px 0 0 0 #14a44d,0 1px 0 0 #14a44d,0 -1px 0 0 #14a44d}.was-validated .form-outline .form-control:valid.select-input.focused~.form-notch .form-notch-middle,.form-outline .form-control.is-valid.select-input.focused~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #14a44d;border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:valid.select-input.focused~.form-notch .form-notch-trailing,.form-outline .form-control.is-valid.select-input.focused~.form-notch .form-notch-trailing{box-shadow:1px 0 0 0 #14a44d,0 -1px 0 0 #14a44d,0 1px 0 0 #14a44d}.was-validated .form-select:valid,.form-select.is-valid{border-color:#14a44d}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#14a44d;box-shadow:0 0 0 .25rem rgba(20,164,77,.25)}.was-validated .form-select:valid~.valid-feedback,.form-select.is-valid~.valid-feedback{margin-top:0}.was-validated .input-group .form-control:valid,.input-group .form-control.is-valid{margin-bottom:0}.was-validated input[type=file].form-control:valid .valid-feedback,input[type=file].form-control.is-valid .valid-feedback{margin-top:0}.was-validated input[type=file].form-control:valid:focus,input[type=file].form-control.is-valid:focus{box-shadow:inset 0 0 0 1px #14a44d;border-color:#14a44d}.was-validated input[type=file].form-control:valid:focus~.form-file-label,input[type=file].form-control.is-valid:focus~.form-file-label{box-shadow:none}.was-validated input[type=file].form-control:valid:focus-within~.form-file-label .form-file-text,.was-validated input[type=file].form-control:valid:focus-within~.form-file-label .form-file-button,input[type=file].form-control.is-valid:focus-within~.form-file-label .form-file-text,input[type=file].form-control.is-valid:focus-within~.form-file-label .form-file-button{border-color:#14a44d}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#14a44d}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#14a44d}.was-validated .form-check-input:valid:checked:focus:before,.form-check-input.is-valid:checked:focus:before{box-shadow:0px 0px 0px 13px #14a44d}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:none}.was-validated .form-check-input:valid:focus:before,.form-check-input.is-valid:focus:before{box-shadow:0px 0px 0px 13px #14a44d}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#14a44d;margin-bottom:1rem}.was-validated .form-check-input:valid[type=checkbox]:checked:focus,.form-check-input.is-valid[type=checkbox]:checked:focus{background-color:#14a44d;border-color:#14a44d}.was-validated .form-check-input:valid[type=radio]:checked,.form-check-input.is-valid[type=radio]:checked{border-color:#14a44d;background-color:#fff}.was-validated .form-check-input:valid[type=radio]:checked:focus:before,.form-check-input.is-valid[type=radio]:checked:focus:before{box-shadow:0px 0px 0px 13px #14a44d}.was-validated .form-check-input:valid[type=radio]:checked:after,.form-check-input.is-valid[type=radio]:checked:after{border-color:#14a44d;background-color:#14a44d}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .form-switch .form-check-input:valid:focus:before,.form-switch .form-check-input.is-valid:focus:before{box-shadow:3px -1px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6)}.was-validated .form-switch .form-check-input:valid:checked[type=checkbox]:after,.form-switch .form-check-input.is-valid:checked[type=checkbox]:after{background-color:#14a44d;box-shadow:0 3px 1px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.2),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.14),0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.12)}.was-validated .form-switch .form-check-input:valid:checked:focus:before,.form-switch .form-check-input.is-valid:checked:focus:before{box-shadow:3px -1px 0px 13px #14a44d}.invalid-feedback{position:absolute;display:none;width:auto;margin-top:.25rem;font-size:.875rem;color:#dc4c64;margin-top:-0.75rem}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:6px 16px;margin-top:.1rem;font-size:.875rem;background-color:rgba(220,76,100,.9);border-radius:.25rem !important;color:#fff}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{margin-bottom:1rem;background-image:none;border-color:#dc4c64}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#dc4c64;box-shadow:0 0 0 .25rem rgba(220,76,100,.25)}.was-validated .form-outline .form-control:invalid~.form-label,.form-outline .form-control.is-invalid~.form-label{color:#dc4c64}.was-validated .form-outline .form-control:invalid~.form-notch .form-notch-leading,.was-validated .form-outline .form-control:invalid~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:invalid~.form-notch .form-notch-trailing,.form-outline .form-control.is-invalid~.form-notch .form-notch-leading,.form-outline .form-control.is-invalid~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid~.form-notch .form-notch-trailing{border-color:#dc4c64}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-middle,.was-validated .form-outline .form-control:invalid.active~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid.active~.form-notch .form-notch-middle{border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-leading,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-leading{border-color:#dc4c64;box-shadow:-1px 0 0 0 #dc4c64,0 1px 0 0 #dc4c64,0 -1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid:focus~.form-notch .form-notch-trailing,.form-outline .form-control.is-invalid:focus~.form-notch .form-notch-trailing{border-color:#dc4c64;box-shadow:1px 0 0 0 #dc4c64,0 -1px 0 0 #dc4c64,0 1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid.select-input.focused~.form-notch .form-notch-leading,.form-outline .form-control.is-invalid.select-input.focused~.form-notch .form-notch-leading{box-shadow:-1px 0 0 0 #dc4c64,0 1px 0 0 #dc4c64,0 -1px 0 0 #dc4c64}.was-validated .form-outline .form-control:invalid.select-input.focused~.form-notch .form-notch-middle,.form-outline .form-control.is-invalid.select-input.focused~.form-notch .form-notch-middle{box-shadow:0 1px 0 0 #dc4c64;border-top:1px solid rgba(0,0,0,0)}.was-validated .form-outline .form-control:invalid.select-input.focused~.form-notch .form-notch-trailing,.form-outline .form-control.is-invalid.select-input.focused~.form-notch .form-notch-trailing{box-shadow:1px 0 0 0 #dc4c64,0 -1px 0 0 #dc4c64,0 1px 0 0 #dc4c64}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#dc4c64}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#dc4c64;box-shadow:0 0 0 .25rem rgba(220,76,100,.25)}.was-validated .form-select:invalid~.invalid-feedback,.form-select.is-invalid~.invalid-feedback{margin-top:0}.was-validated .input-group .form-control:invalid,.input-group .form-control.is-invalid{margin-bottom:0}.was-validated input[type=file].form-control:invalid .invalid-feedback,input[type=file].form-control.is-invalid .invalid-feedback{margin-top:0}.was-validated input[type=file].form-control:invalid:focus,input[type=file].form-control.is-invalid:focus{box-shadow:inset 0 0 0 1px #dc4c64;border-color:#dc4c64}.was-validated input[type=file].form-control:invalid:focus~.form-file-label,input[type=file].form-control.is-invalid:focus~.form-file-label{box-shadow:none}.was-validated input[type=file].form-control:invalid:focus-within~.form-file-label .form-file-text,.was-validated input[type=file].form-control:invalid:focus-within~.form-file-label .form-file-button,input[type=file].form-control.is-invalid:focus-within~.form-file-label .form-file-text,input[type=file].form-control.is-invalid:focus-within~.form-file-label .form-file-button{border-color:#dc4c64}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#dc4c64}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#dc4c64}.was-validated .form-check-input:invalid:checked:focus:before,.form-check-input.is-invalid:checked:focus:before{box-shadow:0px 0px 0px 13px #dc4c64}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:none}.was-validated .form-check-input:invalid:focus:before,.form-check-input.is-invalid:focus:before{box-shadow:0px 0px 0px 13px #dc4c64}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#dc4c64;margin-bottom:1rem}.was-validated .form-check-input:invalid[type=checkbox]:checked:focus,.form-check-input.is-invalid[type=checkbox]:checked:focus{background-color:#dc4c64;border-color:#dc4c64}.was-validated .form-check-input:invalid[type=radio]:checked,.form-check-input.is-invalid[type=radio]:checked{border-color:#dc4c64;background-color:#fff}.was-validated .form-check-input:invalid[type=radio]:checked:focus:before,.form-check-input.is-invalid[type=radio]:checked:focus:before{box-shadow:0px 0px 0px 13px #dc4c64}.was-validated .form-check-input:invalid[type=radio]:checked:after,.form-check-input.is-invalid[type=radio]:checked:after{border-color:#dc4c64;background-color:#dc4c64}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .form-switch .form-check-input:invalid:focus:before,.form-switch .form-check-input.is-invalid:focus:before{box-shadow:3px -1px 0px 13px rgba(var(--mdb-box-shadow-color-rgb), 0.6)}.was-validated .form-switch .form-check-input:invalid:checked[type=checkbox]:after,.form-switch .form-check-input.is-invalid:checked[type=checkbox]:after{background-color:#dc4c64;box-shadow:0 3px 1px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.2),0 2px 2px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.14),0 1px 5px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.12)}.was-validated .form-switch .form-check-input:invalid:checked:focus:before,.form-switch .form-check-input.is-invalid:checked:focus:before{box-shadow:3px -1px 0px 13px #dc4c64}.form-range:focus{box-shadow:none}.form-range:focus::-webkit-slider-thumb{box-shadow:none}.form-range:focus::-moz-range-thumb{box-shadow:none}.form-range:focus::-ms-thumb{box-shadow:none}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{margin-top:-6px;box-shadow:none;appearance:none}.form-range::-webkit-slider-runnable-track{height:4px;border-radius:0;box-shadow:none;background-color:var(--mdb-secondary-bg)}.form-range::-moz-range-thumb{box-shadow:none;appearance:none}.form-range::-moz-range-track{box-shadow:none}.table{--mdb-table-font-size: 0.9rem;--mdb-table-divider-color: currentcolor;font-size:var(--mdb-table-font-size)}.table th{font-weight:500}.table tbody{font-weight:400}.table>:not(:last-child)>:last-child>*{border-bottom-color:inherit}.table-primary{--mdb-table-color: #000;--mdb-table-bg: #d8e3f4;--mdb-table-border-color: #adb6c3;--mdb-table-striped-bg: #cdd8e8;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c2ccdc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c8d2e2;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-secondary{--mdb-table-color: #000;--mdb-table-bg: #ecedf0;--mdb-table-border-color: #bdbec0;--mdb-table-striped-bg: #e0e1e4;--mdb-table-striped-color: #000;--mdb-table-active-bg: #d4d5d8;--mdb-table-active-color: #000;--mdb-table-hover-bg: #dadbde;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-success{--mdb-table-color: #000;--mdb-table-bg: #d0eddb;--mdb-table-border-color: #a6beaf;--mdb-table-striped-bg: #c6e1d0;--mdb-table-striped-color: #000;--mdb-table-active-bg: #bbd5c5;--mdb-table-active-color: #000;--mdb-table-hover-bg: #c0dbcb;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-info{--mdb-table-color: #000;--mdb-table-bg: #ddf0f6;--mdb-table-border-color: #b1c0c5;--mdb-table-striped-bg: #d2e4ea;--mdb-table-striped-color: #000;--mdb-table-active-bg: #c7d8dd;--mdb-table-active-color: #000;--mdb-table-hover-bg: #ccdee4;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-warning{--mdb-table-color: #000;--mdb-table-bg: #faecd1;--mdb-table-border-color: #c8bda7;--mdb-table-striped-bg: #eee0c7;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e1d4bc;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e7dac1;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-danger{--mdb-table-color: #000;--mdb-table-bg: #f8dbe0;--mdb-table-border-color: #c6afb3;--mdb-table-striped-bg: #ecd0d5;--mdb-table-striped-color: #000;--mdb-table-active-bg: #dfc5ca;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e5cbcf;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-light{--mdb-table-color: #000;--mdb-table-bg: #fbfbfb;--mdb-table-border-color: #c9c9c9;--mdb-table-striped-bg: #eeeeee;--mdb-table-striped-color: #000;--mdb-table-active-bg: #e2e2e2;--mdb-table-active-color: #000;--mdb-table-hover-bg: #e8e8e8;--mdb-table-hover-color: #000;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-dark{--mdb-table-color: #fff;--mdb-table-bg: #332d2d;--mdb-table-border-color: #5c5757;--mdb-table-striped-bg: #3d3838;--mdb-table-striped-color: #fff;--mdb-table-active-bg: #474242;--mdb-table-active-color: #fff;--mdb-table-hover-bg: #423d3d;--mdb-table-hover-color: #fff;color:var(--mdb-table-color);border-color:var(--mdb-table-border-color)}.table-hover>tbody>tr{transition:.5s}.table-hover>tbody>tr:hover{--mdb-table-accent-bg: transparent;background-color:var(--mdb-table-hover-bg)}.table-group-divider{border-top:calc(2*var(--mdb-border-width)) solid;border-top-color:inherit}.table-divider-color{border-top-color:var(--mdb-table-divider-color)}.btn{--mdb-btn-padding-top: 0.625rem;--mdb-btn-padding-bottom: 0.5rem;--mdb-btn-border-width: 0;--mdb-btn-border-color: none;--mdb-btn-border-radius: 0.25rem;--mdb-btn-box-shadow: 0 4px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.35);--mdb-btn-hover-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-focus-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-active-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);padding-top:var(--mdb-btn-padding-top);padding-bottom:var(--mdb-btn-padding-bottom);text-transform:uppercase;vertical-align:bottom;border:0;border-radius:var(--mdb-btn-border-radius);box-shadow:var(--mdb-btn-box-shadow)}:not(.btn-check)+.btn:hover,.btn:first-child:hover,.btn:focus-visible,.btn:hover{box-shadow:var(--mdb-btn-hover-box-shadow)}.btn-check:focus-visible+.btn,.btn-check:focus+.btn,.btn:focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn-check:active+.btn,.btn:active,.btn.active,.btn.show{box-shadow:var(--mdb-btn-active-box-shadow)}.btn-check:checked+.btn:focus,.btn-check:active+.btn:focus,.btn:active:focus,.btn.active:focus,.btn.show:focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{box-shadow:var(--mdb-btn-box-shadow)}[class*=btn-outline-]{--mdb-btn-padding-top: 0.5rem;--mdb-btn-padding-bottom: 0.375rem;--mdb-btn-padding-x: 1.375rem;--mdb-btn-border-width: 2px;--mdb-btn-line-height: 1.5;padding:var(--mdb-btn-padding-top) var(--mdb-btn-padding-x) var(--mdb-btn-padding-bottom);border-width:var(--mdb-btn-border-width);border-style:solid;box-shadow:none}:not(.btn-check)+[class*=btn-outline-]:hover,[class*=btn-outline-]:first-child:hover,[class*=btn-outline-]:focus-visible,[class*=btn-outline-]:hover{box-shadow:none}.btn-check:focus-visible+[class*=btn-outline-],.btn-check:focus+[class*=btn-outline-],[class*=btn-outline-]:focus{box-shadow:none}.btn-check:checked+[class*=btn-outline-],.btn-check:active+[class*=btn-outline-],[class*=btn-outline-]:active,[class*=btn-outline-].active,[class*=btn-outline-].show{box-shadow:none}.btn-check:checked+[class*=btn-outline-]:focus,.btn-check:active+[class*=btn-outline-]:focus,[class*=btn-outline-]:active:focus,[class*=btn-outline-].active:focus,[class*=btn-outline-].show:focus{box-shadow:none}[class*=btn-outline-]:disabled,[class*=btn-outline-].disabled,fieldset:disabled [class*=btn-outline-]{box-shadow:none}[class*=btn-outline-].btn-lg,.btn-group-lg>[class*=btn-outline-].btn{--mdb-btn-padding-top: 0.625rem;--mdb-btn-padding-bottom: 0.5625rem;--mdb-btn-padding-x: 1.5625rem;--mdb-btn-font-size:0.875rem;--mdb-btn-line-height: 1.6}[class*=btn-outline-].btn-sm,.btn-group-sm>[class*=btn-outline-].btn{--mdb-btn-padding-top: 0.25rem;--mdb-btn-padding-bottom: 0.1875rem;--mdb-btn-padding-x: 0.875rem;--mdb-btn-font-size:0.75rem;--mdb-btn-line-height: 1.5}.btn-secondary{box-shadow:none}:not(.btn-check)+.btn-secondary:hover,.btn-secondary:first-child:hover,.btn-secondary:focus-visible,.btn-secondary:hover{box-shadow:none !important}.btn-check:focus-visible+.btn-secondary,.btn-check:focus+.btn-secondary,.btn-secondary:focus{box-shadow:none}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.btn-secondary.show{box-shadow:none}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.btn-secondary.show:focus{box-shadow:none}.btn-secondary:disabled,.btn-secondary.disabled,fieldset:disabled .btn-secondary{box-shadow:none}.btn-primary{--mdb-btn-bg: #3b71ca;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #386bc0;--mdb-btn-hover-bg: #386bc0;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #386bc0;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #3566b6;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(56, 107, 192, 0.3), 0 4px 18px 0 rgba(56, 107, 192, 0.2)}:not(.btn-check)+.btn-primary:hover,.btn-primary:first-child:hover,.btn-primary:focus-visible,.btn-primary:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-primary,.btn-check:focus+.btn-primary,.btn-primary:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-primary,.btn-check:active+.btn-primary,.btn-primary:active,.btn-primary.active,.btn-primary.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-primary:focus,.btn-check:active+.btn-primary:focus,.btn-primary:active:focus,.btn-primary.active:focus,.btn-primary.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-primary:hover,.btn-check:active+.btn-primary:hover,.btn-primary:active:hover,.btn-primary.active:hover,.btn-primary.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-primary:disabled,.btn-primary.disabled,fieldset:disabled .btn-primary{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-primary{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-primary:hover,[data-mdb-theme=dark] .btn-primary:active,[data-mdb-theme=dark] .btn-primary:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-secondary{--mdb-btn-bg: #e2eaf7;--mdb-btn-color: #294f8d;--mdb-btn-box-shadow: 0 4px 9px -4px #e3ebf7;--mdb-btn-hover-bg: #d7deeb;--mdb-btn-hover-color: #294f8d;--mdb-btn-focus-bg: #d7deeb;--mdb-btn-focus-color: #294f8d;--mdb-btn-active-bg: #d7deeb;--mdb-btn-active-color: #294f8d;--mdb-btn-box-shadow-state: transparent}:not(.btn-check)+.btn-secondary:hover,.btn-secondary:first-child:hover,.btn-secondary:focus-visible,.btn-secondary:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-secondary,.btn-check:focus+.btn-secondary,.btn-secondary:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-secondary,.btn-check:active+.btn-secondary,.btn-secondary:active,.btn-secondary.active,.btn-secondary.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-secondary:focus,.btn-check:active+.btn-secondary:focus,.btn-secondary:active:focus,.btn-secondary.active:focus,.btn-secondary.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-secondary:hover,.btn-check:active+.btn-secondary:hover,.btn-secondary:active:hover,.btn-secondary.active:hover,.btn-secondary.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-secondary:disabled,.btn-secondary.disabled,fieldset:disabled .btn-secondary{box-shadow:var(--mdb-btn-box-shadow)}.btn-success{--mdb-btn-bg: #14a44d;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #139c49;--mdb-btn-hover-bg: #139c49;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #139c49;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #129445;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(19, 156, 73, 0.3), 0 4px 18px 0 rgba(19, 156, 73, 0.2)}:not(.btn-check)+.btn-success:hover,.btn-success:first-child:hover,.btn-success:focus-visible,.btn-success:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-success,.btn-check:focus+.btn-success,.btn-success:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-success,.btn-check:active+.btn-success,.btn-success:active,.btn-success.active,.btn-success.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-success:focus,.btn-check:active+.btn-success:focus,.btn-success:active:focus,.btn-success.active:focus,.btn-success.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-success:hover,.btn-check:active+.btn-success:hover,.btn-success:active:hover,.btn-success.active:hover,.btn-success.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-success:disabled,.btn-success.disabled,fieldset:disabled .btn-success{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-success{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-success:hover,[data-mdb-theme=dark] .btn-success:active,[data-mdb-theme=dark] .btn-success:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-danger{--mdb-btn-bg: #dc4c64;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #d1485f;--mdb-btn-hover-bg: #d1485f;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #d1485f;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #c6445a;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(209, 72, 95, 0.3), 0 4px 18px 0 rgba(209, 72, 95, 0.2)}:not(.btn-check)+.btn-danger:hover,.btn-danger:first-child:hover,.btn-danger:focus-visible,.btn-danger:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-danger,.btn-check:focus+.btn-danger,.btn-danger:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-danger,.btn-check:active+.btn-danger,.btn-danger:active,.btn-danger.active,.btn-danger.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-danger:focus,.btn-check:active+.btn-danger:focus,.btn-danger:active:focus,.btn-danger.active:focus,.btn-danger.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-danger:hover,.btn-check:active+.btn-danger:hover,.btn-danger:active:hover,.btn-danger.active:hover,.btn-danger.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-danger:disabled,.btn-danger.disabled,fieldset:disabled .btn-danger{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-danger{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-danger:hover,[data-mdb-theme=dark] .btn-danger:active,[data-mdb-theme=dark] .btn-danger:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-warning{--mdb-btn-bg: #e4a11b;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #d9991a;--mdb-btn-hover-bg: #d9991a;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #d9991a;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #cd9118;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(217, 153, 26, 0.3), 0 4px 18px 0 rgba(217, 153, 26, 0.2)}:not(.btn-check)+.btn-warning:hover,.btn-warning:first-child:hover,.btn-warning:focus-visible,.btn-warning:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-warning,.btn-check:focus+.btn-warning,.btn-warning:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-warning,.btn-check:active+.btn-warning,.btn-warning:active,.btn-warning.active,.btn-warning.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-warning:focus,.btn-check:active+.btn-warning:focus,.btn-warning:active:focus,.btn-warning.active:focus,.btn-warning.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-warning:hover,.btn-check:active+.btn-warning:hover,.btn-warning:active:hover,.btn-warning.active:hover,.btn-warning.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-warning:disabled,.btn-warning.disabled,fieldset:disabled .btn-warning{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-warning{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-warning:hover,[data-mdb-theme=dark] .btn-warning:active,[data-mdb-theme=dark] .btn-warning:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-info{--mdb-btn-bg: #54b4d3;--mdb-btn-color: #fff;--mdb-btn-box-shadow: 0 4px 9px -4px #50abc8;--mdb-btn-hover-bg: #50abc8;--mdb-btn-hover-color: #fff;--mdb-btn-focus-bg: #50abc8;--mdb-btn-focus-color: #fff;--mdb-btn-active-bg: #4ca2be;--mdb-btn-active-color: #fff;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(80, 171, 200, 0.3), 0 4px 18px 0 rgba(80, 171, 200, 0.2)}:not(.btn-check)+.btn-info:hover,.btn-info:first-child:hover,.btn-info:focus-visible,.btn-info:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-info,.btn-check:focus+.btn-info,.btn-info:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-info,.btn-check:active+.btn-info,.btn-info:active,.btn-info.active,.btn-info.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-info:focus,.btn-check:active+.btn-info:focus,.btn-info:active:focus,.btn-info.active:focus,.btn-info.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-info:hover,.btn-check:active+.btn-info:hover,.btn-info:active:hover,.btn-info.active:hover,.btn-info.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-info:disabled,.btn-info.disabled,fieldset:disabled .btn-info{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-info{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-info:hover,[data-mdb-theme=dark] .btn-info:active,[data-mdb-theme=dark] .btn-info:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-light{--mdb-btn-bg: #f5f5f5;--mdb-btn-color: #616161;--mdb-btn-box-shadow: 0 4px 9px -4px #f6f6f6;--mdb-btn-hover-bg: #e9e9e9;--mdb-btn-hover-color: #616161;--mdb-btn-focus-bg: #f6f6f6;--mdb-btn-focus-color: #616161;--mdb-btn-active-bg: #dddddd;--mdb-btn-active-color: #616161;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(238, 238, 238, 0.3), 0 4px 18px 0 rgba(238, 238, 238, 0.2)}:not(.btn-check)+.btn-light:hover,.btn-light:first-child:hover,.btn-light:focus-visible,.btn-light:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-light,.btn-check:focus+.btn-light,.btn-light:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-light,.btn-check:active+.btn-light,.btn-light:active,.btn-light.active,.btn-light.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-light:focus,.btn-check:active+.btn-light:focus,.btn-light:active:focus,.btn-light.active:focus,.btn-light.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-light:hover,.btn-check:active+.btn-light:hover,.btn-light:active:hover,.btn-light.active:hover,.btn-light.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-light:disabled,.btn-light.disabled,fieldset:disabled .btn-light{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-light{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-light:hover,[data-mdb-theme=dark] .btn-light:active,[data-mdb-theme=dark] .btn-light:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-dark{--mdb-btn-bg: #262626;--mdb-btn-color: #eeeeee;--mdb-btn-box-shadow: 0 4px 9px -4px #313131;--mdb-btn-hover-bg: #313131;--mdb-btn-hover-color: #eeeeee;--mdb-btn-focus-bg: #313131;--mdb-btn-focus-color: #eeeeee;--mdb-btn-active-bg: #3c3c3c;--mdb-btn-active-color: #eeeeee;--mdb-btn-box-shadow-state: 0 8px 9px -4px rgba(48, 43, 43, 0.3), 0 4px 18px 0 rgba(48, 43, 43, 0.2)}:not(.btn-check)+.btn-dark:hover,.btn-dark:first-child:hover,.btn-dark:focus-visible,.btn-dark:hover{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:focus-visible+.btn-dark,.btn-check:focus+.btn-dark,.btn-dark:focus{box-shadow:var(--mdb-btn-box-shadow-state);background-color:var(--mdb-btn-focus-bg)}.btn-check:checked+.btn-dark,.btn-check:active+.btn-dark,.btn-dark:active,.btn-dark.active,.btn-dark.show{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-dark:focus,.btn-check:active+.btn-dark:focus,.btn-dark:active:focus,.btn-dark.active:focus,.btn-dark.show:focus{box-shadow:var(--mdb-btn-box-shadow-state)}.btn-check:checked+.btn-dark:hover,.btn-check:active+.btn-dark:hover,.btn-dark:active:hover,.btn-dark.active:hover,.btn-dark.show:hover{background-color:var(--mdb-btn-active-bg)}.btn-dark:disabled,.btn-dark.disabled,fieldset:disabled .btn-dark{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-dark{box-shadow:0 4px 9px -4px rgba(0,0,0,.35)}[data-mdb-theme=dark] .btn-dark:hover,[data-mdb-theme=dark] .btn-dark:active,[data-mdb-theme=dark] .btn-dark:focus{box-shadow:0 4px 18px -2px rgba(0,0,0,.7)}.btn-outline-primary{--mdb-btn-bg: transparent;--mdb-btn-color: #3b71ca;--mdb-btn-hover-bg: #f5f8fc;--mdb-btn-hover-color: #386bc0;--mdb-btn-focus-bg: #f5f8fc;--mdb-btn-focus-color: #386bc0;--mdb-btn-active-bg: #f5f8fc;--mdb-btn-active-color: #3566b6;--mdb-btn-outline-border-color: #3b71ca;--mdb-btn-outline-focus-border-color: #2f5aa2;--mdb-btn-outline-hover-border-color: #2f5aa2;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-primary:hover,.btn-outline-primary:first-child:hover,.btn-outline-primary:focus-visible,.btn-outline-primary:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-primary,.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-primary,.btn-check:active+.btn-outline-primary,.btn-outline-primary:active,.btn-outline-primary.active,.btn-outline-primary.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-primary:focus,.btn-check:active+.btn-outline-primary:focus,.btn-outline-primary:active:focus,.btn-outline-primary.active:focus,.btn-outline-primary.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-primary:disabled,.btn-outline-primary.disabled,fieldset:disabled .btn-outline-primary{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-primary{--mdb-btn-bg: transparent;--mdb-btn-color: #628dd5;--mdb-btn-hover-bg: #12223d;--mdb-btn-hover-color: #386bc0;--mdb-btn-focus-bg: #12223d;--mdb-btn-focus-color: #386bc0;--mdb-btn-active-bg: #12223d;--mdb-btn-active-color: #3566b6}.btn-outline-secondary{--mdb-btn-bg: transparent;--mdb-btn-color: #294f8d;--mdb-btn-hover-bg: #f4f6f9;--mdb-btn-hover-color: #294f8d;--mdb-btn-focus-bg: #f4f6f9;--mdb-btn-focus-color: #294f8d;--mdb-btn-active-bg: #f4f6f9;--mdb-btn-active-color: #294f8d;--mdb-btn-outline-border-color: #e2eaf7;--mdb-btn-outline-focus-border-color: #d7deeb;--mdb-btn-outline-hover-border-color: #d7deeb;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-secondary:hover,.btn-outline-secondary:first-child:hover,.btn-outline-secondary:focus-visible,.btn-outline-secondary:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-secondary,.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-secondary,.btn-check:active+.btn-outline-secondary,.btn-outline-secondary:active,.btn-outline-secondary.active,.btn-outline-secondary.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-secondary:focus,.btn-check:active+.btn-outline-secondary:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-secondary:disabled,.btn-outline-secondary.disabled,fieldset:disabled .btn-outline-secondary{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-secondary{--mdb-btn-bg: transparent;--mdb-btn-color: #c4d4ef;--mdb-btn-hover-bg: #182d51;--mdb-btn-hover-color: #b1c6ea;--mdb-btn-focus-bg: #182d51;--mdb-btn-focus-color: #b1c6ea;--mdb-btn-active-bg: #182d51;--mdb-btn-active-color: #b1c6ea;--mdb-btn-outline-border-color: #9db8e5;--mdb-btn-outline-focus-border-color: #95afda;--mdb-btn-outline-hover-border-color: #95afda;border-color:var(--mdb-btn-outline-border-color)}.btn-outline-success{--mdb-btn-bg: transparent;--mdb-btn-color: #14a44d;--mdb-btn-hover-bg: #f3faf6;--mdb-btn-hover-color: #139c49;--mdb-btn-focus-bg: #f3faf6;--mdb-btn-focus-color: #139c49;--mdb-btn-active-bg: #f3faf6;--mdb-btn-active-color: #129445;--mdb-btn-outline-border-color: #14a44d;--mdb-btn-outline-focus-border-color: #10833e;--mdb-btn-outline-hover-border-color: #10833e;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-success:hover,.btn-outline-success:first-child:hover,.btn-outline-success:focus-visible,.btn-outline-success:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-success,.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-success,.btn-check:active+.btn-outline-success,.btn-outline-success:active,.btn-outline-success.active,.btn-outline-success.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-success:focus,.btn-check:active+.btn-outline-success:focus,.btn-outline-success:active:focus,.btn-outline-success.active:focus,.btn-outline-success.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-success:disabled,.btn-outline-success.disabled,fieldset:disabled .btn-outline-success{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-success{--mdb-btn-bg: transparent;--mdb-btn-color: #43b671;--mdb-btn-hover-bg: #063117;--mdb-btn-hover-color: #139c49;--mdb-btn-focus-bg: #063117;--mdb-btn-focus-color: #139c49;--mdb-btn-active-bg: #063117;--mdb-btn-active-color: #129445}.btn-outline-danger{--mdb-btn-bg: transparent;--mdb-btn-color: #dc4c64;--mdb-btn-hover-bg: #fdf6f7;--mdb-btn-hover-color: #d1485f;--mdb-btn-focus-bg: #fdf6f7;--mdb-btn-focus-color: #d1485f;--mdb-btn-active-bg: #fdf6f7;--mdb-btn-active-color: #c6445a;--mdb-btn-outline-border-color: #dc4c64;--mdb-btn-outline-focus-border-color: #b03d50;--mdb-btn-outline-hover-border-color: #b03d50;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-danger:hover,.btn-outline-danger:first-child:hover,.btn-outline-danger:focus-visible,.btn-outline-danger:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-danger,.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-danger,.btn-check:active+.btn-outline-danger,.btn-outline-danger:active,.btn-outline-danger.active,.btn-outline-danger.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-danger:focus,.btn-check:active+.btn-outline-danger:focus,.btn-outline-danger:active:focus,.btn-outline-danger.active:focus,.btn-outline-danger.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-danger:disabled,.btn-outline-danger.disabled,fieldset:disabled .btn-outline-danger{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-danger{--mdb-btn-bg: transparent;--mdb-btn-color: #e37083;--mdb-btn-hover-bg: #42171e;--mdb-btn-hover-color: #d1485f;--mdb-btn-focus-bg: #42171e;--mdb-btn-focus-color: #d1485f;--mdb-btn-active-bg: #42171e;--mdb-btn-active-color: #c6445a}.btn-outline-warning{--mdb-btn-bg: transparent;--mdb-btn-color: #e4a11b;--mdb-btn-hover-bg: #fefaf4;--mdb-btn-hover-color: #d9991a;--mdb-btn-focus-bg: #fefaf4;--mdb-btn-focus-color: #d9991a;--mdb-btn-active-bg: #fefaf4;--mdb-btn-active-color: #cd9118;--mdb-btn-outline-border-color: #e4a11b;--mdb-btn-outline-focus-border-color: #b68116;--mdb-btn-outline-hover-border-color: #b68116;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-warning:hover,.btn-outline-warning:first-child:hover,.btn-outline-warning:focus-visible,.btn-outline-warning:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-warning,.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-warning,.btn-check:active+.btn-outline-warning,.btn-outline-warning:active,.btn-outline-warning.active,.btn-outline-warning.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-warning:focus,.btn-check:active+.btn-outline-warning:focus,.btn-outline-warning:active:focus,.btn-outline-warning.active:focus,.btn-outline-warning.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-warning:disabled,.btn-outline-warning.disabled,fieldset:disabled .btn-outline-warning{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-warning{--mdb-btn-bg: transparent;--mdb-btn-color: #e9b449;--mdb-btn-hover-bg: #443008;--mdb-btn-hover-color: #d9991a;--mdb-btn-focus-bg: #443008;--mdb-btn-focus-color: #d9991a;--mdb-btn-active-bg: #443008;--mdb-btn-active-color: #cd9118}.btn-outline-info{--mdb-btn-bg: transparent;--mdb-btn-color: #54b4d3;--mdb-btn-hover-bg: #f6fbfd;--mdb-btn-hover-color: #50abc8;--mdb-btn-focus-bg: #f6fbfd;--mdb-btn-focus-color: #50abc8;--mdb-btn-active-bg: #f6fbfd;--mdb-btn-active-color: #4ca2be;--mdb-btn-outline-border-color: #54b4d3;--mdb-btn-outline-focus-border-color: #4390a9;--mdb-btn-outline-hover-border-color: #4390a9;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-info:hover,.btn-outline-info:first-child:hover,.btn-outline-info:focus-visible,.btn-outline-info:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-info,.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-info,.btn-check:active+.btn-outline-info,.btn-outline-info:active,.btn-outline-info.active,.btn-outline-info.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-info:focus,.btn-check:active+.btn-outline-info:focus,.btn-outline-info:active:focus,.btn-outline-info.active:focus,.btn-outline-info.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-info:disabled,.btn-outline-info.disabled,fieldset:disabled .btn-outline-info{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-info{--mdb-btn-bg: transparent;--mdb-btn-color: #76c3dc;--mdb-btn-hover-bg: #19363f;--mdb-btn-hover-color: #50abc8;--mdb-btn-focus-bg: #19363f;--mdb-btn-focus-color: #50abc8;--mdb-btn-active-bg: #19363f;--mdb-btn-active-color: #4ca2be}.btn-outline-light{--mdb-btn-bg: transparent;--mdb-btn-color: #fbfbfb;--mdb-btn-hover-bg: white;--mdb-btn-hover-color: #eeeeee;--mdb-btn-focus-bg: white;--mdb-btn-focus-color: #eeeeee;--mdb-btn-active-bg: white;--mdb-btn-active-color: #e2e2e2;--mdb-btn-outline-border-color: #fbfbfb;--mdb-btn-outline-focus-border-color: #c9c9c9;--mdb-btn-outline-hover-border-color: #c9c9c9;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-light:hover,.btn-outline-light:first-child:hover,.btn-outline-light:focus-visible,.btn-outline-light:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-light,.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-light,.btn-check:active+.btn-outline-light,.btn-outline-light:active,.btn-outline-light.active,.btn-outline-light.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-light:focus,.btn-check:active+.btn-outline-light:focus,.btn-outline-light:active:focus,.btn-outline-light.active:focus,.btn-outline-light.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-light:disabled,.btn-outline-light.disabled,fieldset:disabled .btn-outline-light{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-light{--mdb-btn-bg: transparent;--mdb-btn-color: #fcfcfc;--mdb-btn-hover-bg: #4b4b4b;--mdb-btn-hover-color: #eeeeee;--mdb-btn-focus-bg: #4b4b4b;--mdb-btn-focus-color: #eeeeee;--mdb-btn-active-bg: #4b4b4b;--mdb-btn-active-color: #e2e2e2}.btn-outline-dark{--mdb-btn-bg: transparent;--mdb-btn-color: #332d2d;--mdb-btn-hover-bg: whitesmoke;--mdb-btn-hover-color: #302b2b;--mdb-btn-focus-bg: whitesmoke;--mdb-btn-focus-color: #302b2b;--mdb-btn-active-bg: whitesmoke;--mdb-btn-active-color: #2e2929;--mdb-btn-outline-border-color: #332d2d;--mdb-btn-outline-focus-border-color: #292424;--mdb-btn-outline-hover-border-color: #292424;border-color:var(--mdb-btn-outline-border-color)}:not(.btn-check)+.btn-outline-dark:hover,.btn-outline-dark:first-child:hover,.btn-outline-dark:focus-visible,.btn-outline-dark:hover{border-color:var(--mdb-btn-outline-hover-border-color)}.btn-check:focus-visible+.btn-outline-dark,.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-check:checked+.btn-outline-dark,.btn-check:active+.btn-outline-dark,.btn-outline-dark:active,.btn-outline-dark.active,.btn-outline-dark.show{border-color:var(--mdb-btn-outline-active-border-color)}.btn-check:checked+.btn-outline-dark:focus,.btn-check:active+.btn-outline-dark:focus,.btn-outline-dark:active:focus,.btn-outline-dark.active:focus,.btn-outline-dark.show:focus{border-color:var(--mdb-btn-outline-focus-border-color)}.btn-outline-dark:disabled,.btn-outline-dark.disabled,fieldset:disabled .btn-outline-dark{border-color:var(--mdb-btn-outline-border-color)}[data-mdb-theme=dark] .btn-outline-dark{--mdb-btn-bg: transparent;--mdb-btn-color: #5c5757;--mdb-btn-hover-bg: #0f0e0e;--mdb-btn-hover-color: #302b2b;--mdb-btn-focus-bg: #0f0e0e;--mdb-btn-focus-color: #302b2b;--mdb-btn-active-bg: #0f0e0e;--mdb-btn-active-color: #2e2929}.btn-link{--mdb-btn-font-weight: 500;--mdb-btn-color: #3b71ca;--mdb-btn-hover-color: #386bc0;--mdb-btn-hover-bg: hsl(0, 0%, 96%);--mdb-btn-focus-color: #3566b6;--mdb-btn-active-color: #3260ac;--mdb-btn-disabled-color: #9e9e9e;--mdb-btn-box-shadow: none;text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}:not(.btn-check)+.btn-link:hover,.btn-link:first-child:hover,.btn-link:focus-visible,.btn-link:hover{text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}.btn-check:focus-visible+.btn-link,.btn-check:focus+.btn-link,.btn-link:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-link,.btn-check:active+.btn-link,.btn-link:active,.btn-link.active,.btn-link.show{color:var(--mdb-btn-active-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-link:focus,.btn-check:active+.btn-link:focus,.btn-link:active:focus,.btn-link.active:focus,.btn-link.show:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-link:disabled,.btn-link.disabled,fieldset:disabled .btn-link{box-shadow:var(--mdb-btn-box-shadow)}.btn-tertiary{--mdb-btn-font-weight: 500;--mdb-btn-color: #3b71ca;--mdb-btn-hover-color: #386bc0;--mdb-btn-hover-bg: transparent;--mdb-btn-focus-color: #3566b6;--mdb-btn-active-color: #3260ac;--mdb-btn-disabled-color: #9e9e9e;--mdb-btn-box-shadow: none;padding-left:0px;padding-right:0px;text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}:not(.btn-check)+.btn-tertiary:hover,.btn-tertiary:first-child:hover,.btn-tertiary:focus-visible,.btn-tertiary:hover{text-decoration:none;box-shadow:var(--mdb-btn-box-shadow)}.btn-check:focus-visible+.btn-tertiary,.btn-check:focus+.btn-tertiary,.btn-tertiary:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-tertiary,.btn-check:active+.btn-tertiary,.btn-tertiary:active,.btn-tertiary.active,.btn-tertiary.show{color:var(--mdb-btn-active-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-check:checked+.btn-tertiary:focus,.btn-check:active+.btn-tertiary:focus,.btn-tertiary:active:focus,.btn-tertiary.active:focus,.btn-tertiary.show:focus{color:var(--mdb-btn-focus-color);box-shadow:var(--mdb-btn-box-shadow)}.btn-tertiary:disabled,.btn-tertiary.disabled,fieldset:disabled .btn-tertiary{box-shadow:var(--mdb-btn-box-shadow)}[data-mdb-theme=dark] .btn-secondary{--mdb-btn-bg: #b1c6ea;--mdb-btn-hover-bg: #9db8e5;--mdb-btn-focus-bg: #9db8e5;--mdb-btn-active-bg: #9db8e5}[data-mdb-theme=dark] .btn-link{--mdb-btn-color: #9fa6b2;--mdb-btn-hover-color: #bcc1c9;--mdb-btn-hover-bg: #404247;--mdb-btn-focus-color: #bcc1c9;--mdb-btn-active-color: #bcc1c9}[data-mdb-theme=dark] .btn-tertiary{--mdb-btn-color: #9fa6b2;--mdb-btn-hover-color: #bcc1c9;--mdb-btn-focus-color: #bcc1c9;--mdb-btn-active-color: #bcc1c9}.btn-lg,.btn-group-lg>.btn{--mdb-btn-padding-top: 0.75rem;--mdb-btn-padding-bottom: 0.6875rem;--mdb-btn-padding-x: 1.6875rem;--mdb-btn-font-size:0.875rem;--mdb-btn-line-height: 1.6}.btn-sm,.btn-group-sm>.btn{--mdb-btn-padding-top: 0.375rem;--mdb-btn-padding-bottom: 0.3125rem;--mdb-btn-padding-x: 1rem;--mdb-btn-font-size:0.75rem;--mdb-btn-line-height: 1.5}.btn-rounded{--mdb-btn-border-radius: 10rem;border-radius:var(--mdb-btn-border-radius)}.btn-floating,[class*=btn-outline-].btn-floating{--mdb-btn-border-radius: 50%;border-radius:var(--mdb-btn-border-radius);padding:0;position:relative;display:inline-flex;align-items:center;justify-content:center}.btn-floating{--mdb-btn-width: 2.3125rem;--mdb-btn-height: 2.3125rem;--mdb-btn-icon-width: 2.3125rem;--mdb-btn-icon-line-height: 2.3125rem;--mdb-btn-width-lg: 2.8125rem;--mdb-btn-height-lg: 2.8125rem;--mdb-btn-icon-width-lg: 2.8125rem;--mdb-btn-icon-line-height-lg: 2.8125rem;--mdb-btn-width-sm: 1.8125rem;--mdb-btn-height-sm: 1.8125rem;--mdb-btn-icon-width-sm: 1.8125rem;--mdb-btn-icon-line-height-sm: 1.8125rem;width:var(--mdb-btn-width);height:var(--mdb-btn-height)}.btn-floating .fas,.btn-floating .far,.btn-floating .fab{width:var(--mdb-btn-icon-width);line-height:var(--mdb-btn-icon-line-height)}.btn-floating.btn-lg,.btn-group-lg>.btn-floating.btn{width:var(--mdb-btn-width-lg);height:var(--mdb-btn-height-lg)}.btn-floating.btn-lg .fas,.btn-group-lg>.btn-floating.btn .fas,.btn-floating.btn-lg .far,.btn-group-lg>.btn-floating.btn .far,.btn-floating.btn-lg .fab,.btn-group-lg>.btn-floating.btn .fab{width:var(--mdb-btn-icon-width-lg);line-height:var(--mdb-btn-icon-line-height-lg)}.btn-floating.btn-sm,.btn-group-sm>.btn-floating.btn{width:var(--mdb-btn-width-sm);height:var(--mdb-btn-height-sm)}.btn-floating.btn-sm .fas,.btn-group-sm>.btn-floating.btn .fas,.btn-floating.btn-sm .far,.btn-group-sm>.btn-floating.btn .far,.btn-floating.btn-sm .fab,.btn-group-sm>.btn-floating.btn .fab{width:var(--mdb-btn-icon-width-sm);line-height:var(--mdb-btn-icon-line-height-sm)}[class*=btn-outline-].btn-floating{--mdb-btn-icon-width: 2.0625rem;--mdb-btn-icon-width-lg: 2.5625rem;--mdb-btn-icon-width-sm: 1.5625rem;--mdb-btn-icon-line-height: 2.0625rem;--mdb-btn-icon-line-height-lg: 2.5625rem;--mdb-btn-icon-line-height-sm: 1.5625rem}[class*=btn-outline-].btn-floating .fas,[class*=btn-outline-].btn-floating .far,[class*=btn-outline-].btn-floating .fab{width:var(--mdb-btn-icon-width);line-height:var(--mdb-btn-icon-line-height)}[class*=btn-outline-].btn-floating.btn-lg .fas,.btn-group-lg>[class*=btn-outline-].btn-floating.btn .fas,[class*=btn-outline-].btn-floating.btn-lg .far,.btn-group-lg>[class*=btn-outline-].btn-floating.btn .far,[class*=btn-outline-].btn-floating.btn-lg .fab,.btn-group-lg>[class*=btn-outline-].btn-floating.btn .fab{width:var(--mdb-btn-icon-width-lg);line-height:var(--mdb-btn-icon-line-height-lg)}[class*=btn-outline-].btn-floating.btn-sm .fas,.btn-group-sm>[class*=btn-outline-].btn-floating.btn .fas,[class*=btn-outline-].btn-floating.btn-sm .far,.btn-group-sm>[class*=btn-outline-].btn-floating.btn .far,[class*=btn-outline-].btn-floating.btn-sm .fab,.btn-group-sm>[class*=btn-outline-].btn-floating.btn .fab{width:var(--mdb-btn-icon-width-sm);line-height:var(--mdb-btn-icon-line-height-sm)}.fixed-action-btn{--mdb-btn-right: 2.1875rem;--mdb-btn-bottom: 2.1875rem;--mdb-btn-zindex: 1030;--mdb-btn-padding-top: 0.9375rem;--mdb-btn-padding-bottom: 1.25rem;--mdb-btn-padding-x: 1.25rem;--mdb-btn-margin-bottom: 1.5rem;position:fixed;right:var(--mdb-btn-right);bottom:var(--mdb-btn-bottom);z-index:var(--mdb-btn-zindex);display:flex;flex-flow:column-reverse nowrap;align-items:center;padding:var(--mdb-btn-padding-top) var(--mdb-btn-padding-x) var(--mdb-btn-padding-bottom);margin-bottom:0;height:auto;overflow:hidden}.fixed-action-btn>.btn-floating{position:relative;transform:scale(1.2);z-index:10}.fixed-action-btn ul{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;padding:0;margin:0;margin-bottom:0;text-align:center;opacity:0;transition:transform .4s,opacity .4s;z-index:-1}.fixed-action-btn ul li{z-index:0;display:flex;margin-right:auto;margin-bottom:var(--mdb-btn-margin-bottom);margin-left:auto}.fixed-action-btn ul li:first-of-type{margin-top:calc(var(--mdb-btn-margin-bottom)*.5)}.fixed-action-btn ul a.btn{opacity:0;transition:opacity .4s ease-in}.fixed-action-btn ul a.btn.shown{opacity:1}.fixed-action-btn.active ul{opacity:1}.btn-block{--mdb-btn-margin-top: 0.5rem;display:block;width:100%}.btn-block+.btn-block{margin-top:var(--mdb-btn-margin-top)}hr.divider-horizontal:not([size]){height:2px}.divider-horizontal{opacity:1;background-color:#f5f5f5;height:2px}.divider-vertical{opacity:1;background-color:#f5f5f5;display:inline-block;width:2px;margin:0 1rem}hr.divider-horizontal-blurry{background-image:linear-gradient(90deg, transparent, hsl(0, 0%, 40%), transparent);background-color:rgba(0,0,0,0)}hr.divider-vertical-blurry{background-image:linear-gradient(180deg, transparent, hsl(0, 0%, 40%), transparent);background-color:rgba(0,0,0,0);width:1px;top:0;right:0}.dropdown-menu{--mdb-dropdown-item-border-radius: 0.5rem;color:var(--mdb-dropdown-color);margin:0;padding-top:0;padding-bottom:0;border:0;box-shadow:var(--mdb-dropdown-box-shadow);font-size:var(--mdb-dropdown-font-size);top:100%;left:0;margin-top:var(--mdb-dropdown-spacer)}.dropdown-menu>li{border-radius:0}.dropdown-menu>li:first-child{border-top-left-radius:var(--mdb-dropdown-item-border-radius);border-top-right-radius:var(--mdb-dropdown-item-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown-menu>li:first-child .dropdown-item{border-top-left-radius:var(--mdb-dropdown-item-border-radius);border-top-right-radius:var(--mdb-dropdown-item-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.dropdown-menu>li:not(:first-child):not(:last-child) .dropdown-item{border-radius:0}.dropdown-menu>li:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--mdb-dropdown-item-border-radius);border-bottom-right-radius:var(--mdb-dropdown-item-border-radius)}.dropdown-menu>li:last-child .dropdown-item{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:var(--mdb-dropdown-item-border-radius);border-bottom-right-radius:var(--mdb-dropdown-item-border-radius)}.dropdown-menu.animation{--mdb-dropdown-menu-animated-animation-duration: 0.55s;--mdb-dropdown-menu-animated-animation-timing-function: ease;display:block;animation-duration:var(--mdb-dropdown-menu-animated-animation-duration);animation-timing-function:var(--mdb-dropdown-menu-animated-animation-timing-function)}.dropdown-item{--mdb-dropdown-state-color: var(--mdb-surface-color);--mdb-dropdown-state-background-color: var(--mdb-highlight-bg-color);padding:var(--mdb-dropdown-item-padding-y) var(--mdb-dropdown-item-padding-x);color:var(--mdb-dropdown-color);border-radius:0}.dropdown-item:hover,.dropdown-item:focus{color:var(--mdb-dropdown-state-color);background-color:var(--mdb-dropdown-state-background-color)}.dropdown-item.active,.dropdown-item:active{color:var(--mdb-dropdown-state-color);background-color:var(--mdb-dropdown-state-background-color)}.dropdown-item:focus{outline:none}.hidden-arrow.dropdown-toggle:after{display:none}.animation{animation-duration:1s;animation-fill-mode:both;padding:auto}@media(prefers-reduced-motion){.animation{transition:none !important;animation:unset !important}}@keyframes fade-in{from{opacity:0}to{opacity:1}}.fade-in{animation-name:fade-in}@keyframes fade-out{from{opacity:1}to{opacity:0}}.fade-out{animation-name:fade-out}.dropdown-divider{--mdb-dropdown-divider-border-top-width: 2px;--mdb-dropdown-divider-border-top-bg: var(--mdb-divider-color);border-top:var(--mdb-dropdown-divider-border-top-width) solid var(--mdb-dropdown-divider-border-top-bg);opacity:1}.dropdown-menu INPUT:not(:-webkit-autofill),.dropdown-menu SELECT:not(:-webkit-autofill),.dropdown-menu TEXTAREA:not(:-webkit-autofill){animation-name:none !important}.btn-group,.btn-group-vertical{--mdb-btn-box-shadow: 0 4px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.35);--mdb-btn-hover-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-focus-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-active-box-shadow: 0 8px 9px -4px rgba(var(--mdb-box-shadow-color-rgb), 0.15), 0 4px 18px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.1);--mdb-btn-group-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;box-shadow:var(--mdb-btn-box-shadow);transition:var(--mdb-btn-group-transition)}.btn-group:hover,.btn-group-vertical:hover{box-shadow:var(--mdb-btn-hover-box-shadow)}.btn-group:focus,.btn-group.focus,.btn-group-vertical:focus,.btn-group-vertical.focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn-group:active,.btn-group.active,.btn-group-vertical:active,.btn-group-vertical.active{box-shadow:var(--mdb-btn-active-box-shadow)}.btn-group:active:focus,.btn-group.active:focus,.btn-group-vertical:active:focus,.btn-group-vertical.active:focus{box-shadow:var(--mdb-btn-focus-box-shadow)}.btn-group:disabled,.btn-group.disabled,fieldset:disabled .btn-group,.btn-group-vertical:disabled,.btn-group-vertical.disabled,fieldset:disabled .btn-group-vertical{box-shadow:var(--mdb-btn-box-shadow);border:0}.btn-group>.btn,.btn-group-vertical>.btn{box-shadow:none}:not(.btn-check)+.btn-group>.btn:hover,.btn-group>.btn:first-child:hover,.btn-group>.btn:focus-visible,.btn-group>.btn:hover,:not(.btn-check)+.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:first-child:hover,.btn-group-vertical>.btn:focus-visible,.btn-group-vertical>.btn:hover{box-shadow:none !important}.btn-check:focus-visible+.btn-group>.btn,.btn-check:focus+.btn-group>.btn,.btn-group>.btn:focus,.btn-check:focus-visible+.btn-group-vertical>.btn,.btn-check:focus+.btn-group-vertical>.btn,.btn-group-vertical>.btn:focus{box-shadow:none}.btn-check:checked+.btn-group>.btn,.btn-check:active+.btn-group>.btn,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group>.btn.show,.btn-check:checked+.btn-group-vertical>.btn,.btn-check:active+.btn-group-vertical>.btn,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn.show{box-shadow:none}.btn-check:checked+.btn-group>.btn:focus,.btn-check:active+.btn-group>.btn:focus,.btn-group>.btn:active:focus,.btn-group>.btn.active:focus,.btn-group>.btn.show:focus,.btn-check:checked+.btn-group-vertical>.btn:focus,.btn-check:active+.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active:focus,.btn-group-vertical>.btn.active:focus,.btn-group-vertical>.btn.show:focus{box-shadow:none}.btn-group>.btn:disabled,.btn-group>.btn.disabled,fieldset:disabled .btn-group>.btn,.btn-group-vertical>.btn:disabled,.btn-group-vertical>.btn.disabled,fieldset:disabled .btn-group-vertical>.btn{box-shadow:none}.btn-group>.btn-group,.btn-group-vertical>.btn-group{box-shadow:none}.btn-group>.btn-link:first-child,.btn-group>.btn-tertiary:first-child,.btn-group-vertical>.btn-link:first-child,.btn-group-vertical>.btn-tertiary:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-link:last-child,.btn-group>.btn-tertiary:last-child,.btn-group-vertical>.btn-link:last-child,.btn-group-vertical>.btn-tertiary:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group,.btn-group-lg>.btn,.btn-group-sm>.btn{--mdb-btn-border-radius: 0.25rem;border-radius:var(--mdb-btn-border-radius)}.nav-tabs{border-bottom:0}.nav-tabs .nav-link{--mdb-nav-tabs-link-font-weight: 500;--mdb-nav-tabs-link-font-size: 12px;--mdb-nav-tabs-link-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-nav-tabs-link-padding-top: 17px;--mdb-nav-tabs-link-padding-bottom: 16px;--mdb-nav-tabs-link-padding-x: 29px;--mdb-nav-tabs-link-hover-bgc: var(--mdb-highlight-bg-color);--mdb-nav-tabs-link-border-bottom-width: 2px;--mdb-nav-tabs-link-active-color: #3b71ca;--mdb-nav-tabs-link-active-border-color: #3b71ca;border-width:0;border-bottom:var(--mdb-nav-tabs-link-border-bottom-width) solid rgba(0,0,0,0);border-radius:0;text-transform:uppercase;line-height:1;font-weight:var(--mdb-nav-tabs-link-font-weight);font-size:var(--mdb-nav-tabs-link-font-size);color:var(--mdb-nav-tabs-link-color);padding:var(--mdb-nav-tabs-link-padding-top) var(--mdb-nav-tabs-link-padding-x) var(--mdb-nav-tabs-link-padding-bottom) var(--mdb-nav-tabs-link-padding-x)}.nav-tabs .nav-link:hover{background-color:var(--mdb-nav-tabs-link-hover-bgc);border-color:rgba(0,0,0,0)}.nav-tabs .nav-link:focus{border-color:rgba(0,0,0,0)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--mdb-nav-tabs-link-active-color);border-color:var(--mdb-nav-tabs-link-active-border-color)}.nav-pills{margin-left:-0.5rem;margin-right:-0.5rem}.nav-pills .nav-link{--mdb-nav-pills-link-border-radius: 0.25rem;--mdb-nav-pills-link-font-size: 12px;--mdb-nav-pills-link-padding-top: 17px;--mdb-nav-pills-link-padding-bottom: 16px;--mdb-nav-pills-link-padding-x: 29px;--mdb-nav-pills-link-line-height: 1;--mdb-nav-pills-link-hover-bg: var(--mdb-highlight-bg-color);--mdb-nav-pills-link-font-weight: 500;--mdb-nav-pills-link-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-nav-pills-margin: 0.5rem;border-radius:var(--mdb-nav-pills-link-border-radius);font-size:var(--mdb-nav-pills-link-font-size);text-transform:uppercase;padding:var(--mdb-nav-pills-link-padding-top) var(--mdb-nav-pills-link-padding-x) var(--mdb-nav-pills-link-padding-bottom) var(--mdb-nav-pills-link-padding-x);line-height:var(--mdb-nav-pills-link-line-height);background-color:var(--mdb-nav-pills-link-hover-bg);font-weight:var(--mdb-nav-pills-link-font-weight);color:var(--mdb-nav-pills-link-color);margin:var(--mdb-nav-pills-margin)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{--mdb-nav-pills-link-active-bg: var(--mdb-primary-bg-subtle);--mdb-nav-pills-link-active-color: var(--mdb-primary-text-emphasis);background-color:var(--mdb-nav-pills-link-active-bg);color:var(--mdb-nav-pills-link-active-color)}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:auto}.navbar{--mdb-navbar-box-shadow: 0 4px 12px 0 rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 2px 4px rgba(var(--mdb-box-shadow-color-rgb), 0.05);--mdb-navbar-padding-top: 0.5625rem;--mdb-navbar-brand-img-margin-right: 0.25rem;box-shadow:var(--mdb-navbar-box-shadow);padding-top:var(--mdb-navbar-padding-top)}.navbar-toggler{border:0}.navbar-toggler:focus{box-shadow:none}.navbar-dark .navbar-toggler,.navbar-light .navbar-toggler{border:0}.navbar-brand{display:flex;align-items:center}.navbar-brand img{margin-right:var(--mdb-navbar-brand-img-margin-right)}.navbar-nav .dropdown-menu{position:absolute}.navbar-light .navbar-toggler-icon{background-image:none}.navbar-dark .navbar-toggler-icon{background-image:none}.navbar-dark,.navbar[data-mdb-theme=dark]{--mdb-navbar-color: rgba(255, 255, 255, 0.55);--mdb-navbar-hover-color: rgba(255, 255, 255, 0.75);--mdb-navbar-disabled-color: rgba(255, 255, 255, 0.25);--mdb-navbar-active-color: #fff;--mdb-navbar-brand-color: #fff;--mdb-navbar-brand-hover-color: #fff;--mdb-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);--mdb-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{border:0}.card .bg-image{border-top-left-radius:var(--mdb-card-border-radius);border-top-right-radius:var(--mdb-card-border-radius)}.card[class*=bg-] .card-header{--mdb-card-header-border-bottom-color: rgba(0, 0, 0, 0.175);border-bottom-color:var(--mdb-card-header-border-bottom-color)}.card[class*=bg-] .card-footer{--mdb-card-footer-border-top-color: rgba(0, 0, 0, 0.175);border-top-color:var(--mdb-card-footer-border-top-color)}.card-header{--mdb-card-header-border-width: 2px;--mdb-card-header-border-color: var(--mdb-divider-color);border-bottom:var(--mdb-card-header-border-width) solid var(--mdb-card-header-border-color)}.card-body[class*=bg-]{border-bottom-left-radius:var(--mdb-card-border-radius);border-bottom-right-radius:var(--mdb-card-border-radius)}.card-footer{--mdb-card-footer-border-color: var(--mdb-divider-color);--mdb-card-footer-border-width: 2px;border-top:var(--mdb-card-footer-border-width) solid var(--mdb-card-footer-border-color)}.card-img-left{border-top-left-radius:var(--mdb-card-border-radius);border-bottom-left-radius:var(--mdb-card-border-radius)}.navbar .breadcrumb{--mdb-breadcrumb-item-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-breadcrumb-item-hover-color: rgba(var(--mdb-emphasis-color-rgb), 0.7);--mdb-breadcrumb-item-before-color: rgba(var(--mdb-emphasis-color-rgb), 0.55);--mdb-breadcrumb-item-transition: color 0.15s ease-in-out;background-color:rgba(0,0,0,0);margin-bottom:0}.navbar .breadcrumb .breadcrumb-item a{color:var(--mdb-breadcrumb-item-color);transition:var(--mdb-breadcrumb-item-transition)}.navbar .breadcrumb .breadcrumb-item a:hover,.navbar .breadcrumb .breadcrumb-item a:focus{color:var(--mdb-breadcrumb-item-hover-color)}.navbar .breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:var(--mdb-breadcrumb-item-before-color)}.pagination{--mdb-pagination-border-radius: 0.25rem;--mdb-pagination-active-transition: all 0.2s linear;--mdb-pagination-active-font-weight: 500;--mdb-pagination-circle-border-radius: 50%;--mdb-pagination-circle-padding-x: 0.841rem;--mdb-pagination-circle-padding-l-lg: 1.399414rem;--mdb-pagination-circle-padding-r-lg: 1.399415rem;--mdb-pagination-circle-padding-l-sm: 0.696rem;--mdb-pagination-circle-padding-r-sm: 0.688rem}.page-link{background-color:rgba(0,0,0,0);border:0;outline:0;border-radius:var(--mdb-pagination-border-radius)}.page-link:focus{box-shadow:none}.page-link.active,.active>.page-link{border:0;transition:var(--mdb-pagination-active-transition);font-weight:var(--mdb-pagination-active-font-weight)}.page-item:not(:first-child) .page-link{margin-left:0}.page-item:first-child .page-link{border-top-left-radius:var(--mdb-pagination-border-radius);border-bottom-left-radius:var(--mdb-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--mdb-pagination-border-radius);border-bottom-right-radius:var(--mdb-pagination-border-radius)}.pagination-circle .page-item:first-child .page-link{border-radius:var(--mdb-pagination-circle-border-radius)}.pagination-circle .page-item:last-child .page-link{border-radius:var(--mdb-pagination-circle-border-radius)}.pagination-circle .page-link{border-radius:var(--mdb-pagination-circle-border-radius);padding-left:var(--mdb-pagination-circle-padding-x);padding-right:var(--mdb-pagination-circle-padding-x)}.pagination-circle.pagination-lg .page-link{padding-left:var(--mdb-pagination-circle-padding-l-lg);padding-right:var(--mdb-pagination-circle-padding-r-lg)}.pagination-circle.pagination-sm .page-link{padding-left:var(--mdb-pagination-circle-padding-l-sm);padding-right:var(--mdb-pagination-circle-padding-r-sm)}.badge-dot{--mdb-badge-border-radius: 4.5px;--mdb-badge-height: 9px;--mdb-badge-width: 9px;--mdb-badge-margin-left: -0.3125rem;position:absolute;min-width:0;width:var(--mdb-badge-width);height:var(--mdb-badge-height);border-radius:var(--mdb-badge-border-radius);padding:0;margin-left:var(--mdb-badge-margin-left)}.badge-dot:empty{display:inline-block}.badge-notification{--mdb-badge-font-size: 0.6rem;--mdb-badge-padding-x: 0.45em;--mdb-badge-padding-y: 0.2em;--mdb-badge-margin-top: -0.1rem;--mdb-badge-margin-left: -0.5rem;position:absolute;font-size:var(--mdb-badge-font-size);padding:var(--mdb-badge-padding-y) var(--mdb-badge-padding-x);margin-top:var(--mdb-badge-margin-top);margin-left:var(--mdb-badge-margin-left)}.badge-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.badge-primary i{color:var(--mdb-primary-text-emphasis)}.badge-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.badge-secondary i{color:var(--mdb-secondary-text-emphasis)}.badge-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.badge-success i{color:var(--mdb-success-text-emphasis)}.badge-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.badge-danger i{color:var(--mdb-danger-text-emphasis)}.badge-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.badge-warning i{color:var(--mdb-warning-text-emphasis)}.badge-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.badge-info i{color:var(--mdb-info-text-emphasis)}.badge-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.badge-light i{color:var(--mdb-light-text-emphasis)}.badge-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}.badge-dark i{color:var(--mdb-dark-text-emphasis)}.alert{border:0}.alert-absolute{position:absolute}.alert-fixed{--mdb-alert-fixed-z-index: 1070;position:fixed;z-index:var(--mdb-alert-fixed-z-index)}.parent-alert-relative{position:relative}.alert-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.alert-primary i{color:var(--mdb-primary-text-emphasis)}.alert-primary .alert-link{color:var(--mdb-primary-text-emphasis)}.alert-primary .alert-link:hover{color:rgba(var(--mdb-primary-text-emphasis), var(--mdb-text-hover-opacity))}.alert-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.alert-secondary i{color:var(--mdb-secondary-text-emphasis)}.alert-secondary .alert-link{color:var(--mdb-secondary-text-emphasis)}.alert-secondary .alert-link:hover{color:rgba(var(--mdb-secondary-text-emphasis), var(--mdb-text-hover-opacity))}.alert-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.alert-success i{color:var(--mdb-success-text-emphasis)}.alert-success .alert-link{color:var(--mdb-success-text-emphasis)}.alert-success .alert-link:hover{color:rgba(var(--mdb-success-text-emphasis), var(--mdb-text-hover-opacity))}.alert-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.alert-danger i{color:var(--mdb-danger-text-emphasis)}.alert-danger .alert-link{color:var(--mdb-danger-text-emphasis)}.alert-danger .alert-link:hover{color:rgba(var(--mdb-danger-text-emphasis), var(--mdb-text-hover-opacity))}.alert-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.alert-warning i{color:var(--mdb-warning-text-emphasis)}.alert-warning .alert-link{color:var(--mdb-warning-text-emphasis)}.alert-warning .alert-link:hover{color:rgba(var(--mdb-warning-text-emphasis), var(--mdb-text-hover-opacity))}.alert-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.alert-info i{color:var(--mdb-info-text-emphasis)}.alert-info .alert-link{color:var(--mdb-info-text-emphasis)}.alert-info .alert-link:hover{color:rgba(var(--mdb-info-text-emphasis), var(--mdb-text-hover-opacity))}.alert-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.alert-light i{color:var(--mdb-light-text-emphasis)}.alert-light .alert-link{color:var(--mdb-light-text-emphasis)}.alert-light .alert-link:hover{color:rgba(var(--mdb-light-text-emphasis), var(--mdb-text-hover-opacity))}.alert-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}.alert-dark i{color:var(--mdb-dark-text-emphasis)}.alert-dark .alert-link{color:var(--mdb-dark-text-emphasis)}.alert-dark .alert-link:hover{color:rgba(var(--mdb-dark-text-emphasis), var(--mdb-text-hover-opacity))}.progress{border-radius:0;box-shadow:none}.progress-circular{--mdb-progress-circular-size: 48px;--mdb-progress-circular-bar-width: 4px;--mdb-progress-circular-color: var(--mdb-emphasis-color);position:relative;width:var(--mdb-progress-circular-size);height:var(--mdb-progress-circular-size);background-color:rgba(0,0,0,0);display:inline-block}.progress-circular .progress-bar{background-color:var(--mdb-progress-bar-bg)}.progress-circular .progress-bar::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;box-sizing:border-box;background:conic-gradient(transparent calc(var(--percentage) * 1%), var(--mdb-progress-bg) 0%);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--mdb-progress-circular-bar-width)), black calc(100% - var(--mdb-progress-circular-bar-width) + 1px));mask:radial-gradient(farthest-side, transparent calc(100% - var(--mdb-progress-circular-bar-width)), black calc(100% - var(--mdb-progress-circular-bar-width) + 1px));background-color:inherit}.progress-circular .progress-label{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);color:var(--mdb-progress-circular-color)}.list-group{--mdb-list-group-item-transition-time: 0.5s}.list-group-item{--mdb-list-group-item-active-margin-top: 0}.list-group-item+.list-group-item.active{margin-top:var(--mdb-list-group-item-active-margin-top)}.list-group-item-action{transition:var(--mdb-list-group-item-transition-time)}.list-group-item-action:hover{transition:var(--mdb-list-group-item-transition-time)}.list-group-light{--mdb-list-group-light-item-py: 1rem;--mdb-list-group-light-item-border: 2px solid var(--mdb-divider-color);--mdb-list-group-light-item-border-width: 2px;--mdb-list-group-light-active-border-radius: 0.5rem;--mdb-list-group-light-active-bg: var(--mdb-primary-bg-subtle);--mdb-list-group-light-active-color: var(--mdb-primary-text-emphasis)}.list-group-light .list-group-item{padding:var(--mdb-list-group-light-item-py) 0;border:var(--mdb-list-group-light-item-border)}.list-group-light>.list-group-item{border-width:0 0 var(--mdb-list-group-light-item-border-width)}.list-group-light>.list-group-item:last-of-type{border:none}.list-group-light .active{border:none;border-radius:var(--mdb-list-group-light-active-border-radius);background-color:var(--mdb-list-group-light-active-bg);color:var(--mdb-list-group-light-active-color)}.list-group-light .list-group-item-action:hover{border-radius:var(--mdb-list-group-light-active-border-radius)}.list-group-light .list-group-item-action:focus{border-radius:var(--mdb-list-group-light-active-border-radius)}.list-group-small{--mdb-list-group-small-item-py: 0.5rem}.list-group-small .list-group-item{padding:var(--mdb-list-group-small-item-py) 0}.list-group-item-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis)}.list-group-item-primary i{color:var(--mdb-primary-link-emphasis)}.list-group-item-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis)}.list-group-item-secondary i{color:var(--mdb-secondary-link-emphasis)}.list-group-item-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis)}.list-group-item-success i{color:var(--mdb-success-link-emphasis)}.list-group-item-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis)}.list-group-item-danger i{color:var(--mdb-danger-link-emphasis)}.list-group-item-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis)}.list-group-item-warning i{color:var(--mdb-warning-link-emphasis)}.list-group-item-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis)}.list-group-item-info i{color:var(--mdb-info-link-emphasis)}.list-group-item-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis)}.list-group-item-light i{color:var(--mdb-light-link-emphasis)}.list-group-item-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis)}.list-group-item-dark i{color:var(--mdb-dark-link-emphasis)}.btn-close:focus{box-shadow:none}.modal-content{--mdb-modal-box-shadow: 0 2px 15px -3px rgba(var(--mdb-box-shadow-color-rgb), 0.07), 0 10px 20px -2px rgba(var(--mdb-box-shadow-color-rgb), 0.04);border:0;box-shadow:var(--mdb-modal-box-shadow)}.toast{--mdb-toast-border-bottom-width: 2px;--mdb-toast-btn-close-width: 1.3em;--mdb-toast-btn-close-mr: -0.375rem;--mdb-toast-btn-close-ml: 0.75rem;--mdb-toast-bg: var(--mdb-surface-bg);--mdb-toast-header-bg: var(--mdb-surface-bg);border:0}.toast .btn-close{width:var(--mdb-toast-btn-close-width)}.toast-header{border-bottom-width:var(--mdb-toast-border-bottom-width)}.toast-header .btn-close{margin-right:var(--mdb-toast-btn-close-mr);margin-left:var(--mdb-toast-btn-close-ml)}.parent-toast-relative{position:relative}.toast-absolute{position:absolute}.toast-fixed{position:fixed;z-index:var(--mdb-toast-zindex)}.toast-primary{background-color:var(--mdb-primary-bg-subtle);color:var(--mdb-primary-text-emphasis);border-color:var(--mdb-primary-border-subtle)}.toast-primary i{color:var(--mdb-primary-text-emphasis)}.toast-secondary{background-color:var(--mdb-secondary-bg-subtle);color:var(--mdb-secondary-text-emphasis);border-color:var(--mdb-secondary-border-subtle)}.toast-secondary i{color:var(--mdb-secondary-text-emphasis)}.toast-success{background-color:var(--mdb-success-bg-subtle);color:var(--mdb-success-text-emphasis);border-color:var(--mdb-success-border-subtle)}.toast-success i{color:var(--mdb-success-text-emphasis)}.toast-danger{background-color:var(--mdb-danger-bg-subtle);color:var(--mdb-danger-text-emphasis);border-color:var(--mdb-danger-border-subtle)}.toast-danger i{color:var(--mdb-danger-text-emphasis)}.toast-warning{background-color:var(--mdb-warning-bg-subtle);color:var(--mdb-warning-text-emphasis);border-color:var(--mdb-warning-border-subtle)}.toast-warning i{color:var(--mdb-warning-text-emphasis)}.toast-info{background-color:var(--mdb-info-bg-subtle);color:var(--mdb-info-text-emphasis);border-color:var(--mdb-info-border-subtle)}.toast-info i{color:var(--mdb-info-text-emphasis)}.toast-light{background-color:var(--mdb-light-bg-subtle);color:var(--mdb-light-text-emphasis);border-color:var(--mdb-light-border-subtle)}.toast-light i{color:var(--mdb-light-text-emphasis)}.toast-dark{background-color:var(--mdb-dark-bg-subtle);color:var(--mdb-dark-text-emphasis);border-color:var(--mdb-dark-border-subtle)}.toast-dark i{color:var(--mdb-dark-text-emphasis)}.tooltip{--mdb-tooltip-font-size: 14px}.tooltip.show{opacity:1}.tooltip .tooltip-arrow{display:none}.tooltip-inner{font-size:var(--mdb-tooltip-font-size)}.popover{--mdb-popover-border-bottom-width: 2px}.popover .popover-arrow{display:none}.popover-header{border-bottom:var(--mdb-popover-border-bottom-width) solid var(--mdb-popover-border-color)}.nav-pills.menu-sidebar .nav-link{--mdb-scrollspy-menu-sidebar-font-size: 0.8rem;--mdb-scrollspy-menu-sidebar-color: var(--mdb-body-color);--mdb-scrollspy-menu-sidebar-line-height: 1.1rem;--mdb-scrollspy-menu-sidebar-padding-x: 5px;--mdb-scrollspy-menu-sidebar-font-weight: 400;--mdb-scrollspy-menu-sidebar-transition: all 0.2s ease-in-out;--mdb-scrollspy-menu-sidebar-margin-y: 3px;font-size:var(--mdb-scrollspy-menu-sidebar-font-size);background-color:rgba(0,0,0,0);color:var(--mdb-scrollspy-menu-sidebar-color);line-height:var(--mdb-scrollspy-menu-sidebar-line-height);padding:0 var(--mdb-scrollspy-menu-sidebar-padding-x);font-weight:var(--mdb-scrollspy-menu-sidebar-font-weight);transition:var(--mdb-scrollspy-menu-sidebar-transition);text-transform:initial;margin-top:var(--mdb-scrollspy-menu-sidebar-margin-y);margin-bottom:var(--mdb-scrollspy-menu-sidebar-margin-y)}.nav-pills.menu-sidebar .nav-link.active,.nav-pills.menu-sidebar .show>.nav-link{--mdb-scrollspy-menu-sidebar-active-color: #3b71ca;--mdb-scrollspy-menu-sidebar-active-font-weight: 600;--mdb-scrollspy-menu-sidebar-active-border-width: 0.125rem;--mdb-scrollspy-menu-sidebar-active-border-color: #3b71ca;background-color:rgba(0,0,0,0);box-shadow:none;color:var(--mdb-scrollspy-menu-sidebar-active-color);font-weight:var(--mdb-scrollspy-menu-sidebar-active-font-weight);border-left:var(--mdb-scrollspy-menu-sidebar-active-border-width) solid var(--mdb-scrollspy-menu-sidebar-active-border-color);border-radius:0}.nav-pills.menu-sidebar .collapsible-scrollspy~.nav{--mdb-scrollspy-collapsible-nav-transition-time: 0.5s;transition:height var(--mdb-scrollspy-collapsible-nav-transition-time) ease;flex-wrap:nowrap}.ripple-surface{position:relative;overflow:hidden;display:inline-block;vertical-align:bottom}.ripple-surface-unbound{overflow:visible}.ripple-wave{--mdb-ripple-wave-cubicBezier: cubic-bezier(0, 0, 0.15, 1);--mdb-ripple-wave-border-radius: 50%;--mdb-ripple-wave-opacity: 0.5;--mdb-ripple-wave-transform: scale(0);--mdb-ripple-wave-z-index: 999;--mdb-ripple-wave-active-transform: scale(1);background-image:radial-gradient(circle, rgba(0, 0, 0, 0.2) 0, rgba(0, 0, 0, 0.3) 40%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 0, 0, 0.5) 60%, rgba(0, 0, 0, 0) 70%);border-radius:var(--mdb-ripple-wave-border-radius);opacity:var(--mdb-ripple-wave-opacity);pointer-events:none;position:absolute;touch-action:none;transform:var(--mdb-ripple-wave-transform);transition-property:transform,opacity;transition-timing-function:var(--mdb-ripple-wave-cubicBezier),var(--mdb-ripple-wave-cubicBezier);z-index:var(--mdb-ripple-wave-z-index)}.ripple-wave.active{transform:var(--mdb-ripple-wave-active-transform);opacity:0}.btn .ripple-wave{background-image:radial-gradient(circle, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%)}.input-wrapper .ripple-wave{background-image:radial-gradient(circle, rgba(255, 255, 255, 0.2) 0, rgba(255, 255, 255, 0.3) 40%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) 70%)}.ripple-surface-primary .ripple-wave{background-image:radial-gradient(circle, rgba(59, 113, 202, 0.2) 0, rgba(59, 113, 202, 0.3) 40%, rgba(59, 113, 202, 0.4) 50%, rgba(59, 113, 202, 0.5) 60%, rgba(59, 113, 202, 0) 70%)}.ripple-surface-secondary .ripple-wave{background-image:radial-gradient(circle, rgba(227, 235, 247, 0.2) 0, rgba(227, 235, 247, 0.3) 40%, rgba(227, 235, 247, 0.4) 50%, rgba(227, 235, 247, 0.5) 60%, rgba(227, 235, 247, 0) 70%)}.ripple-surface-success .ripple-wave{background-image:radial-gradient(circle, rgba(20, 164, 77, 0.2) 0, rgba(20, 164, 77, 0.3) 40%, rgba(20, 164, 77, 0.4) 50%, rgba(20, 164, 77, 0.5) 60%, rgba(20, 164, 77, 0) 70%)}.ripple-surface-danger .ripple-wave{background-image:radial-gradient(circle, rgba(220, 76, 100, 0.2) 0, rgba(220, 76, 100, 0.3) 40%, rgba(220, 76, 100, 0.4) 50%, rgba(220, 76, 100, 0.5) 60%, rgba(220, 76, 100, 0) 70%)}.ripple-surface-warning .ripple-wave{background-image:radial-gradient(circle, rgba(228, 161, 27, 0.2) 0, rgba(228, 161, 27, 0.3) 40%, rgba(228, 161, 27, 0.4) 50%, rgba(228, 161, 27, 0.5) 60%, rgba(228, 161, 27, 0) 70%)}.ripple-surface-info .ripple-wave{background-image:radial-gradient(circle, rgba(84, 180, 211, 0.2) 0, rgba(84, 180, 211, 0.3) 40%, rgba(84, 180, 211, 0.4) 50%, rgba(84, 180, 211, 0.5) 60%, rgba(84, 180, 211, 0) 70%)}.ripple-surface-light .ripple-wave{background-image:radial-gradient(circle, rgba(251, 251, 251, 0.2) 0, rgba(251, 251, 251, 0.3) 40%, rgba(251, 251, 251, 0.4) 50%, rgba(251, 251, 251, 0.5) 60%, rgba(251, 251, 251, 0) 70%)}.ripple-surface-dark .ripple-wave{background-image:radial-gradient(circle, rgba(51, 45, 45, 0.2) 0, rgba(51, 45, 45, 0.3) 40%, rgba(51, 45, 45, 0.4) 50%, rgba(51, 45, 45, 0.5) 60%, rgba(51, 45, 45, 0) 70%)}.range{--mdb-range-thumb-height: 30px;--mdb-range-thumb-width: 30px;--mdb-range-thumb-top: -35px;--mdb-range-thumb-margin-left: -15px;--mdb-range-thumb-border-radius: 50% 50% 50% 0;--mdb-range-thumb-transform: scale(0);--mdb-range-thumb-transition: transform 0.2s ease-in-out;--mdb-range-thumb-value-font-size: 12px;--mdb-range-thumb-value-line-height: 30px;--mdb-range-thumb-value-color: #fff;--mdb-range-thumb-value-font-weight: 500;--mdb-range-thumb-background: #3b71ca;position:relative}.range .thumb{position:absolute;display:block;height:var(--mdb-range-thumb-height);width:var(--mdb-range-thumb-width);top:var(--mdb-range-thumb-top);margin-left:var(--mdb-range-thumb-margin-left);text-align:center;border-radius:var(--mdb-range-thumb-border-radius);transform:var(--mdb-range-thumb-transform);transform-origin:bottom;transition:var(--mdb-range-thumb-transition)}.range .thumb:after{position:absolute;display:block;content:"";transform:translateX(-50%);width:100%;height:100%;top:0;border-radius:var(--mdb-range-thumb-border-radius);transform:rotate(-45deg);background:var(--mdb-range-thumb-background);z-index:-1}.range .thumb .thumb-value{display:block;font-size:var(--mdb-range-thumb-value-font-size);line-height:var(--mdb-range-thumb-value-line-height);color:var(--mdb-range-thumb-value-color);font-weight:var(--mdb-range-thumb-value-font-weight);z-index:2}.range .thumb.thumb-active{transform:scale(1)}.accordion-button:not(.collapsed):focus{box-shadow:var(--mdb-accordion-btn-focus-box-shadow)}.accordion-button:focus{border-color:var(--mdb-accordion-btn-focus-border-color);outline:0;box-shadow:none}.accordion-flush{--mdb-accordion-flush-btn-box-shadow: inset 0 -2px 0 var(--mdb-divider-color);--mdb-accordion-flush-border-bottom: 2px solid var(--mdb-divider-color)}.accordion-flush .accordion-button:not(.collapsed){box-shadow:var(--mdb-accordion-flush-btn-box-shadow)}.accordion-flush .accordion-item{border-bottom:var(--mdb-accordion-flush-border-bottom)}.accordion-borderless{--mdb-accordion-borderless-btn-border-radius: 0.5rem;--mdb-accordion-borderless-btn-bg: var(--mdb-primary-bg-subtle);--mdb-accordion-borderless-btn-color: var(--mdb-primary-text-emphasis)}.accordion-borderless .accordion-item{border:0}.accordion-borderless .accordion-item .accordion-button{border-radius:var(--mdb-accordion-borderless-btn-border-radius)}.accordion-borderless .accordion-item .accordion-button:not(.collapsed){background-color:var(--mdb-accordion-borderless-btn-bg);color:var(--mdb-accordion-borderless-btn-color);box-shadow:none}.carousel-control-prev-icon::after{content:"";--mdb-carousel-control-icon-font-size: 1.7rem;--mdb-carousel-control-icon-font-weight: 700;font-weight:var(--mdb-carousel-control-icon-font-weight);font-size:var(--mdb-carousel-control-icon-font-size);font-family:"Font Awesome 6 Pro","Font Awesome 6 Free"}.carousel-control-next-icon::after{content:"";--mdb-carousel-control-icon-font-size: 1.7rem;--mdb-carousel-control-icon-font-weight: 700;font-weight:var(--mdb-carousel-control-icon-font-weight);font-size:var(--mdb-carousel-control-icon-font-size);font-family:"Font Awesome 6 Pro","Font Awesome 6 Free"}/*# sourceMappingURL=mdb.min.css.map */ diff --git a/css/mdb.min.css.map b/css/mdb.min.css.map new file mode 100644 index 000000000..1c365d5a7 --- /dev/null +++ b/css/mdb.min.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../mdb.scss","../../src/scss/bootstrap-rtl-fix/_root.scss","../../src/scss/bootstrap-rtl-fix/vendor/_rfs.scss","../../src/scss/bootstrap-rtl-fix/mixins/_color-mode.scss","../../src/scss/bootstrap-rtl-fix/_reboot.scss","../../src/scss/bootstrap-rtl-fix/_variables.scss","../../src/scss/free/_variables.scss","../../src/scss/bootstrap-rtl-fix/mixins/_border-radius.scss","../../src/scss/bootstrap-rtl-fix/_type.scss","../../src/scss/bootstrap-rtl-fix/mixins/_lists.scss","../../src/scss/bootstrap-rtl-fix/_images.scss","../../src/scss/bootstrap-rtl-fix/mixins/_image.scss","../../src/scss/bootstrap-rtl-fix/mixins/_box-shadow.scss","../../src/scss/bootstrap-rtl-fix/_containers.scss","../../src/scss/bootstrap-rtl-fix/mixins/_container.scss","../../src/scss/bootstrap-rtl-fix/mixins/_breakpoints.scss","../../src/scss/bootstrap-rtl-fix/_grid.scss","../../src/scss/bootstrap-rtl-fix/mixins/_grid.scss","../../src/scss/bootstrap-rtl-fix/_tables.scss","../../src/scss/bootstrap-rtl-fix/mixins/_table-variants.scss","../../src/scss/bootstrap-rtl-fix/forms/_labels.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-text.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-control.scss","../../src/scss/bootstrap-rtl-fix/mixins/_transition.scss","../../src/scss/bootstrap-rtl-fix/mixins/_gradients.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-select.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-check.scss","../../src/scss/bootstrap-rtl-fix/forms/_form-range.scss","../../src/scss/bootstrap-rtl-fix/forms/_floating-labels.scss","../../src/scss/bootstrap-rtl-fix/forms/_input-group.scss","../../src/scss/bootstrap-rtl-fix/mixins/_forms.scss","../../src/scss/bootstrap-rtl-fix/_buttons.scss","../../src/scss/bootstrap-rtl-fix/mixins/_buttons.scss","../../src/scss/bootstrap-rtl-fix/_transitions.scss","../../src/scss/bootstrap-rtl-fix/_dropdown.scss","../../src/scss/bootstrap-rtl-fix/mixins/_caret.scss","../../src/scss/bootstrap-rtl-fix/_button-group.scss","../../src/scss/bootstrap-rtl-fix/_nav.scss","../../src/scss/bootstrap-rtl-fix/_navbar.scss","../../src/scss/bootstrap-rtl-fix/_card.scss","../../src/scss/bootstrap-rtl-fix/_accordion.scss","../../src/scss/bootstrap-rtl-fix/_breadcrumb.scss","../../src/scss/bootstrap-rtl-fix/_pagination.scss","../../src/scss/bootstrap-rtl-fix/mixins/_pagination.scss","../../src/scss/bootstrap-rtl-fix/_badge.scss","../../src/scss/bootstrap-rtl-fix/_alert.scss","../../src/scss/bootstrap-rtl-fix/_progress.scss","../../src/scss/bootstrap-rtl-fix/_list-group.scss","../../src/scss/bootstrap-rtl-fix/_close.scss","../../src/scss/bootstrap-rtl-fix/_toasts.scss","../../src/scss/bootstrap-rtl-fix/_modal.scss","../../src/scss/bootstrap-rtl-fix/mixins/_backdrop.scss","../../src/scss/bootstrap-rtl-fix/_tooltip.scss","../../src/scss/bootstrap-rtl-fix/mixins/_reset-text.scss","../../src/scss/bootstrap-rtl-fix/_popover.scss","../../src/scss/bootstrap-rtl-fix/_carousel.scss","../../src/scss/bootstrap-rtl-fix/mixins/_clearfix.scss","../../src/scss/bootstrap-rtl-fix/_spinners.scss","../../src/scss/bootstrap-rtl-fix/_offcanvas.scss","../../src/scss/bootstrap-rtl-fix/_placeholders.scss","../../src/scss/bootstrap-rtl-fix/helpers/_color-bg.scss","../../src/scss/bootstrap-rtl-fix/helpers/_colored-links.scss","../../src/scss/bootstrap-rtl-fix/helpers/_focus-ring.scss","../../src/scss/bootstrap-rtl-fix/helpers/_icon-link.scss","../../src/scss/bootstrap-rtl-fix/helpers/_ratio.scss","../../src/scss/bootstrap-rtl-fix/helpers/_position.scss","../../src/scss/bootstrap-rtl-fix/helpers/_stacks.scss","../../src/scss/bootstrap-rtl-fix/helpers/_visually-hidden.scss","../../src/scss/bootstrap-rtl-fix/mixins/_visually-hidden.scss","../../src/scss/bootstrap-rtl-fix/helpers/_stretched-link.scss","../../src/scss/bootstrap-rtl-fix/helpers/_text-truncation.scss","../../src/scss/bootstrap-rtl-fix/mixins/_text-truncate.scss","../../src/scss/bootstrap-rtl-fix/helpers/_vr.scss","../../src/scss/free/_utilities.scss","../../src/scss/bootstrap-rtl-fix/mixins/_utilities.scss","../../src/scss/bootstrap-rtl-fix/utilities/_api.scss","../../src/scss/free/_root.scss","../../src/scss/free/_reboot.scss","../../src/scss/free/_type.scss","../../src/scss/free/_colors.scss","../../src/scss/free/_flag.scss","../../src/scss/free/_images.scss","../../src/scss/free/forms/_form-control.scss","../../src/scss/free/forms/_form-select.scss","../../src/scss/free/forms/_form-check.scss","../../src/scss/free/forms/_form-file.scss","../../src/scss/free/forms/_input-group.scss","../../src/scss/free/forms/_validation.scss","../../src/scss/free/forms/_form-range.scss","../../src/scss/free/_tables.scss","../../src/scss/free/_buttons.scss","../../src/scss/free/mixins/_buttons.scss","../../src/scss/free/_deprecated.scss","../../src/scss/free/_dropdown.scss","../../src/scss/free/_button-group.scss","../../src/scss/free/_nav.scss","../../src/scss/free/_navbar.scss","../../src/scss/free/_card.scss","../../src/scss/free/_breadcrumb.scss","../../src/scss/free/_pagination.scss","../../src/scss/free/_badge.scss","../../src/scss/free/_alert.scss","../../src/scss/free/_progress.scss","../../src/scss/free/_list-group.scss","../../src/scss/free/_close.scss","../../src/scss/free/_modal.scss","../../src/scss/free/_toasts.scss","../../src/scss/free/_tooltip.scss","../../src/scss/free/_popover.scss","../../src/scss/free/_scrollspy.scss","../../src/scss/free/_ripple.scss","../../src/scss/free/mixins/_ripple.scss","../../src/scss/free/_range.scss","../../src/scss/free/_accordion.scss","../../src/scss/free/_carousel.scss"],"names":[],"mappings":"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A,gEACA,+CACA,2CAEA,WACA,cbkYO,KajYP,ebqsB0B,IapsB1B,2CAOA,yBACE,oBAEA,wFAIA,qCACA,oBb0sBiB,wBazsBjB,8GAOF,aACE,uBAGF,aACE,sBAIJ,qBACE,yDAOF,aACE,iBASA,4BACE,oBAcF,gCACE,uCAGA,kCACE,uCAOJ,oCACE,sBAGF,qCACE,mBAUF,2CACE,uDACA,iDAMF,yDACE,uDACA,iDAQJ,cACE,uDACA,iDAQA,8BACE,sDACA,gDCjJF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,iBAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,cAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,aAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CDqJA,kBACE,gBACA,iCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,4BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,qBACE,gBACA,kCH3FF,6BGyFA,sBACE,gBACA,kCEvKN,YACE,cfm2ByB,Me/1BzB,MdyiCiB,oCcpiCnB,gBACE,qDACA,wDACA,gBlBkRI,UALI,QkBzQR,Ydm0BiB,Icl0BjB,Md4hCiB,oCczhCnB,mBACE,mDACA,sDlBwQI,UALI,KkB/PV,mBACE,oDACA,uDlBkQI,UALI,SmB1RV,WACE,WhB21BqB,OH7jBjB,UALI,QmBrRR,MhB21BgB,2BiBh2BlB,cACE,cACA,WACA,uBpB4RI,UALI,KoBpRR,YjBimBmB,IiBhmBnB,YhB60BiB,IgB50BjB,MhBgiCY,yBgB/hCZ,gBACA,iBjBi3BS,mBiBh3BT,4BACA,6DfGE,uCKLE,WARW,4BWUX,WDMJ,eCFI,uCDhBN,cCiBQ,iBDGN,yBACE,gBAEA,wDACE,eAKJ,oBACE,MhB0gCU,yBgBzgCV,iBjB41BO,mBiB31BP,ahBmhCuB,oCgBlhCvB,UVvBE,WARW,8DUwCf,2CAME,eAMA,aAKA,SAKF,qCACE,cACA,UAIF,2BACE,MhBk+BsB,wCgBh+BtB,UAQF,uBAEE,iBjB0yBgB,wBiBvyBhB,UAIF,oCACE,uBACA,0BACA,kBjBirBkB,OiBhrBlB,MhB08BU,yBkBxiCZ,iBnB8iCoB,uBiB98BlB,oBACA,qBACA,mBACA,eACA,wBjB6rBqB,wBiB5rBrB,gBCzFE,WD0FF,mHCtFE,uCD0EJ,oCCzEM,iBDwFN,yEACE,iBjBq8BwB,wBiB57B5B,wBACE,cACA,WACA,kBACA,gBACA,YhB4tBiB,IgB3tBjB,MjBuxBsB,sBiBtxBtB,+BACA,2BACA,uCAEA,8BACE,UAGF,gFAEE,gBACA,eAWJ,iBACE,WjB6wBgB,yDiB5wBhB,qBpB6II,UALI,SK3QN,0CeuIF,uCACE,qBACA,wBACA,kBjBioBqB,MiB7nBzB,iBACE,WjBowBgB,uDiBnwBhB,mBpBgII,UALI,KK3QN,0CeoJF,uCACE,mBACA,qBACA,kBjBwnBqB,KiBhnBvB,sBACE,WjB2uBW,0DiBxuBb,yBACE,WjB2uBc,yDiBxuBhB,yBACE,WjB2uBc,uDiBtuBlB,oBACE,MjB4uBiB,KiB3uBjB,OjB4tBa,0DiB3tBb,QjB8kBoB,QiB5kBpB,mDACE,eAGF,uCACE,oBfvLA,uCe2LF,0CACE,oBf5LA,uCegMF,oCACE,OjB8sBc,yDiB5sBhB,oCACE,OjB+sBc,uDoBj6BlB,aACE,0PAEA,cACA,WACA,uCvByRI,UALI,KuBhRR,YpB6lBmB,IoB5lBnB,YnBy0BiB,ImBx0BjB,MnB4hCY,yBmB3hCZ,gBACA,iBpB62BS,mBoB52BT,oFACA,4BACA,oBpBq+BwB,oBoBp+BxB,gBpBq+BoB,UoBp+BpB,6DlBJE,uCKLE,WARW,4BWUX,WEUJ,eFNI,uCEfN,aFgBQ,iBEON,mBACE,anBgmBM,QmB/lBN,UbhBE,WARW,8DaiCf,0DAEE,cpByuBkB,OoBxuBlB,sBAGF,sBAEE,iBpBk1BgB,wBoB70BlB,4BACE,oBACA,2CAIJ,gBACE,YpBkuBuB,OoBjuBvB,epBiuBuB,OoBhuBvB,apBiuBuB,MH3fnB,UALI,SK3QN,0CkB+CJ,gBACE,YpB8tBuB,MoB7tBvB,epB6tBuB,MoB5tBvB,apB6tBuB,KH/fnB,UALI,KK3QN,0CkByDA,mCACE,uPCzEN,YACE,cACA,WrB46BsB,OqB36BtB,arB46ByB,MqB36BzB,crB46ByB,QqB16BzB,8BACE,WACA,mBAIJ,oBACE,crBk6ByB,MqBj6BzB,eACA,iBAEA,sCACE,YACA,oBACA,cAIJ,kBACE,wCAEA,cACA,MrBi5BuB,IqBh5BvB,OrBg5BuB,IqB/4BvB,gBACA,mBACA,gBACA,0CACA,gDACA,4BACA,2BACA,wBACA,OrBk5BwB,sDqBj5BxB,yBAGA,iCnB3BE,oBmB+BF,8BAEE,crB04B6B,IqBv4B/B,yBACE,OrBi4B6B,gBqB93B/B,wBACE,apB2/BuB,oCoB1/BvB,UACA,WrB0foB,kCqBvftB,0BACE,iBpB2jBM,QoB1jBN,apB0jBM,QoBxjBN,yCAKI,yPAIJ,sCAKI,iKAKN,+CACE,iBpBoiBM,QoBniBN,apB9EO,QoBoFL,mPAIJ,2BACE,oBACA,YACA,QrBs2BgC,GqB/1BhC,2FACE,eACA,QrB61B8B,GqB/0BpC,aACE,arBw1B0B,MqBt1B1B,+BACE,6KAEA,MrBk1BgB,IqBj1BhB,mBACA,2CACA,gCnBpHA,kBgBHE,WGyHF,qCHrHE,uCG6GJ,+BH5GM,iBGsHJ,qCACE,6LAGF,uCACE,oBrBi1B4B,aqB30B1B,4JAKN,gCACE,crB2zBwB,MqB1zBxB,eAEA,kDACE,oBACA,cAKN,mBACE,qBACA,arByyB6B,KqBtyB/B,WACE,kBACA,sBACA,oBAIE,mDACE,oBACA,YACA,QrB8oBiB,IqBvoBnB,+EACE,mLCvLN,YACE,WACA,cACA,UACA,gBACA,+BAEA,kBACE,UAIA,wCACE,WtBqhC8B,iDsBnhChC,oCACE,WtBkhC8B,iDsB9gClC,8BACE,SAGF,kCACE,MtBmgCqB,KsBlgCrB,OtBkgCqB,KsBjgCrB,oBACA,gBH9BF,iBlBynBQ,QqBzlBN,OtBigCsB,EElhCtB,mBKLE,WARW,8BWUX,WIuBF,4FJnBE,uCIUJ,kCJTM,iBIoBJ,yCHrCF,iBnBsiC2B,QsB5/B3B,2CACE,MtB4+BqB,KsB3+BrB,OtB4+BsB,MsB3+BtB,oBACA,OtB2+BsB,QsB1+BtB,iBtB2+BkB,wBsB1+BlB,2BpBjCA,mBKLE,WARW,4BemDf,8BACE,MtBw+BqB,KsBv+BrB,OtBu+BqB,KsBt+BrB,gBHxDF,iBlBynBQ,QqB/jBN,OtBu+BsB,EElhCtB,mBKLE,WARW,8BWUX,WIiDF,4FJ7CE,uCIqCJ,8BJpCM,iBI8CJ,qCH/DF,iBnBsiC2B,QsBl+B3B,8BACE,MtBk9BqB,KsBj9BrB,OtBk9BsB,MsBj9BtB,oBACA,OtBi9BsB,QsBh9BtB,iBtBi9BkB,wBsBh9BlB,2BpB3DA,mBKLE,WARW,4Be6Ef,qBACE,oBAEA,2CACE,iBrB29CyB,oCqBx9C3B,uCACE,iBrBu9CyB,oCsBljD/B,eACE,kBAEA,gGAGE,OvBijCmB,iDuBhjCnB,WvBgjCmB,iDuB/iCnB,YvBgjCwB,KuB7iC1B,qBACE,kBACA,MACA,OACA,UACA,YACA,oBACA,gBACA,iBACA,uBACA,mBACA,oBACA,mDACA,qBLRE,WKSF,kDLLE,uCKTJ,qBLUM,iBKON,oEAEE,oBAEA,8FACE,oBAGF,oMAEE,YvBqhC0B,SuBphC1B,evBqhC0B,QuBlhC5B,sGACE,YvBghC0B,SuB/gC1B,evBghC0B,QuB5gC9B,4BACE,YvB0gC4B,SuBzgC5B,evB0gC4B,QuBngC5B,mLACE,4CACA,UvBogC0B,oDuBlgC1B,+MACE,kBACA,mBACA,WACA,OvB4/BqB,MuB3/BrB,WACA,iBvB4zBG,mBE52BP,u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BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCD6EA,aC1FA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCD6EA,UC1FA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCD6EA,WC1FA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCD6EA,UC1FA,sBACA,sBACA,gCACA,4BACA,4BACA,sCACA,uCACA,6BACA,6BACA,uCACA,6IACA,+BACA,+BACA,yCDuGA,qBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,uBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,qBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,wCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,oBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,qBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,kBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,yCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,mBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,0CACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBD8EA,kBC3FA,yBACA,gCACA,4BACA,4BACA,sCACA,uCACA,6BACA,6BACA,uCACA,6IACA,kCACA,mCACA,yCACA,qBDyFF,UACE,2BACA,yBACA,0BACA,oCACA,+BACA,0CACA,gCACA,2CACA,kCACA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,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,yBuB8HA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,yBuB8HA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,0BuB8HA,kBAEI,iBACA,2BAEA,8BACE,mBAEA,6CACE,kBAGF,wCACE,mDACA,kDAIJ,qCACE,iBAGF,mCACE,wBACA,gBAGF,kCACE,aAGF,6BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,+CACE,aAGF,6CACE,aACA,YACA,UACA,oBvBpLR,0BuB8HA,mBAEI,iBACA,2BAEA,+BACE,mBAEA,8CACE,kBAGF,yCACE,mDACA,kDAIJ,sCACE,iBAGF,oCACE,wBACA,gBAGF,mCACE,aAGF,8BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0CACA,oBACA,0B1B5NJ,WARW,KWUX,We4NI,KAGA,gDACE,aAGF,8CACE,aACA,YACA,UACA,oBAtDR,eAEI,iBACA,2BAEA,2BACE,mBAEA,0CACE,kBAGF,qCACE,mDACA,kDAIJ,kCACE,iBAGF,gCACE,wBACA,gBAGF,+BACE,aAGF,0BAEE,gBACA,aACA,YACA,sBACA,uBACA,8BACA,0C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ACA,8D1CmRI,UALI,2B0C5QR,yCACA,cACA,6BACA,kBACA,mBACA,wBrCJE,6CqCSF,aACE,aAKJ,YACE,kBACA,SChCF,OAEE,4BACA,8BACA,+BACA,gCACA,2BACA,sCACA,gFACA,kCACA,gCAGA,kBACA,8DACA,6CACA,6BACA,qCACA,+BtCHE,6CsCQJ,eAEE,cAIF,YACE,YxC4kBiB,IwC3kBjB,kCAOF,mBACE,cxCw/C4B,OwCr/C5B,8BACE,kBACA,MACA,QACA,UACA,yBAOF,eACE,oDACA,6CACA,2DACA,yDAJF,iBACE,sDACA,+CACA,6DACA,2DAJF,eACE,oDACA,6CACA,2DACA,yDAJF,cACE,mDACA,4CACA,0DACA,wDAJF,eACE,oDACA,6CACA,2DACA,yDAJF,YACE,iDACA,0CACA,wDACA,sDAJF,aACE,kDACA,2CACA,yDACA,uDAJF,YACE,iDACA,0CACA,wDACA,sDC1DF,gCACE,GACE,sBxCohDY,KwC9gDlB,4BAGE,2B5CoRI,yBALI,Q4C7QR,2CACA,uDACA,uDACA,+BACA,+BACA,+CAGA,aACA,kCACA,gB5CwQI,UALI,8B4CjQR,wCvCVE,gDKLE,WARW,+BkC4BjB,cACE,aACA,sBACA,uBACA,gBACA,oCACA,kBACA,mBACA,4CvB1BI,WuB2BJ,mCvBvBI,uCuBcN,cvBbQ,iBuByBR,sBtBsBE,qMsBpBA,sEAGF,4BACE,iBAGF,0CACE,WAIA,uBACE,kDAGE,uCAJJ,uBAKM,gBC7DR,YAEE,8CACA,iCACA,uDACA,uDACA,uCACA,wCACA,wCACA,0DACA,+DACA,yDACA,4DACA,2DACA,sEACA,0CACA,oCACA,oCACA,8CAGA,aACA,sBAGA,eACA,gBxCXE,kDwCeJ,qBACE,qBACA,sBAEA,8CAEE,oCACA,0BASJ,wBACE,WACA,yCACA,mBAGA,4DAEE,UACA,+CACA,qBACA,uDAGF,+BACE,gDACA,wDAQJ,iBACE,kBACA,cACA,kFACA,kCAEA,0CACA,mFAEA,6BxCxDE,+BACA,gCwC2DF,4BxC9CE,mCACA,kCwCiDF,oDAEE,2CACA,oBACA,mDAIF,wBACE,UACA,yCACA,iDACA,uDAIF,kCACE,mBAEA,yCACE,uDAGA,oDAaF,uBACE,mBAGE,qExC1DJ,8DAZA,0BwC2EI,qExC3EJ,4DAYA,4BwCoEI,+CACE,aAGF,yDACE,oDACA,oBAEA,gEACE,wDAGA,qDhCtFR,yBgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,yBgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,yBgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,0BgC4DA,0BACE,mBAGE,wExC1DJ,8DAZA,0BwC2EI,wExC3EJ,4DAYA,4BwCoEI,kDACE,aAGF,4DACE,oDACA,oBAEA,mEACE,wDAGA,sDhCtFR,0BgC4DA,2BACE,mBAGE,yExC1DJ,8DAZA,0BwC2EI,yExC3EJ,4DAYA,4BwCoEI,mDACE,aAGF,6DACE,oDACA,oBAEA,oEACE,wDAGA,sDAaZ,kBxCnJI,gBwCsJF,mCACE,oDAEA,8CACE,sBAYJ,yBACE,yDACA,kDACA,gEACA,+DACA,mEACA,gEACA,oEACA,4DACA,6DACA,uEAVF,2BACE,2DACA,oDACA,kEACA,+DACA,qEACA,gEACA,sEACA,8DACA,+DACA,yEAVF,yBACE,yDACA,kDACA,gEACA,+DACA,mEACA,gEACA,oEACA,4DACA,6DACA,uEAVF,wBACE,wDACA,iDACA,+DACA,+DACA,kEACA,gEACA,mEACA,2DACA,4DACA,sEAVF,yBACE,yDACA,kDACA,gEACA,+DACA,mEACA,gEACA,oEACA,4DACA,6DACA,uEAVF,sBACE,sDACA,+CACA,6DACA,+DACA,gEACA,gEACA,iEACA,yDACA,0DACA,oEAVF,uBACE,uDACA,gDACA,8DACA,+DACA,iEACA,gEACA,kEACA,0DACA,2DACA,qEAVF,sBACE,sDACA,+CACA,6DACA,+DACA,gEACA,gEACA,iEACA,yDACA,0DACA,oEC9LJ,WAEE,4BACA,sVACA,6BACA,oCACA,qEACA,iCACA,uCACA,yEAGA,uBACA,M3CgqDgB,I2C/pDhB,O3C+pDgB,I2C9pDhB,oBACA,iCACA,2EACA,SzCJE,qByCMF,qCAGA,iBACE,iCACA,qBACA,2CAGF,iBACE,UACA,6CACA,2CAGF,wCAEE,oBACA,iBACA,8CAQJ,iBAHE,yCASE,iCATF,yCCjDF,OAEE,yBACA,4BACA,+BACA,4BACA,6B/C6RI,sBALI,S+CtRR,oBACA,sCACA,kDACA,8DACA,kCACA,kJACA,qDACA,6CACA,qEAGA,iCACA,e/C+QI,UALI,2B+CxQR,6BACA,oBACA,qCACA,4BACA,yEACA,uC1CRE,6C0CWF,eACE,UAGF,kBACE,aAIJ,iBACE,yBAEA,kBACA,gCACA,kBACA,eACA,oBAEA,mCACE,uCAIJ,cACE,aACA,mBACA,8DACA,oCACA,4CACA,4BACA,uF1CjCE,4FACA,6F0CsCF,yBACE,mDAGA,uCAIJ,YACE,mCACA,qBCpEF,OAEE,yBACA,yBACA,0BACA,2BACA,4CACA,sCACA,8DACA,kDACA,kCACA,iDACA,0EACA,mCACA,mCACA,sCACA,0DACA,qCACA,mCACA,+BACA,wBACA,0DACA,qCAGA,eACA,MACA,OACA,gCACA,aACA,WACA,YACA,kBACA,gBAGA,UAOF,cACE,kBACA,WACA,+BAEA,oBAGA,0B3B3CI,W2B4CF,uBACA,U7Cq9CmB,oBkB9/CjB,uC2BuCJ,0B3BtCM,iB2B0CN,0BACE,U7Cm9CmB,K6C/8CrB,kCACE,U7Cg9CoB,Y6C58CxB,yBACE,8CAEA,wCACE,gBACA,gBAGF,qCACE,gBAIJ,uBACE,aACA,mBACA,kDAIF,eACE,kBACA,aACA,sBACA,WAEA,6BACA,oBACA,qCACA,4BACA,yE3CpFE,6CKLE,WARW,4BsCqGf,UAIF,gBAEE,4BACA,wBACA,4BCjHA,eACA,MACA,OACA,QDkHE,2BCjHF,YACA,aAC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qEM,6BACA,gCACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,6B2ChDF,cAEI,eACA,SACA,oCACA,aACA,sBACA,eACA,iCACA,kBACA,yCACA,4BACA,U9C9BA,WARW,gCWUX,WmC8BA,iCnC1BA,iEmCYJ,cnCXM,iBR2DJ,6B2ChCE,8BACE,MACA,OACA,iCACA,uFAEA,4BAGF,4BACE,MACA,QACA,iCACA,sFAEA,2BAGF,4BACE,MACA,QACA,OACA,mCACA,gBACA,wFAEA,4BAGF,+BACE,QACA,OACA,mCACA,gBACA,qFAEA,2BAGF,sDAEE,eAGF,8DAGE,oB3C5BJ,0B2CnCF,cAqEM,6BACA,gCACA,0CAEA,gCACE,aAGF,8BACE,aACA,YACA,UACA,mBAEA,2C3CnCN,6B2ChDF,eAEI,eACA,SACA,oCACA,aACA,sBACA,eACA,iCACA,kBACA,yCACA,4BACA,U9C9BA,WARW,gCWUX,WmC8BA,iCnC1BA,iEmCYJ,enCXM,iBR2DJ,6B2ChCE,+BACE,MACA,OACA,iCACA,uFAEA,4BAGF,6BACE,MACA,QACA,iCACA,sFAEA,2BAGF,6BACE,MACA,QACA,OACA,mCACA,gBACA,wFAEA,4BAGF,gCACE,QACA,OACA,mCACA,gBACA,qFAEA,2BAGF,wDAEE,eAGF,iEAGE,oB3C5BJ,0B2CnCF,eAqEM,6BACA,gCACA,0CAEA,iCACE,aAGF,+BACE,aACA,YACA,UACA,mBAEA,2CAnFR,WAEI,eACA,SACA,oCACA,aACA,sBACA,eACA,iCACA,kBACA,yCACA,4BACA,U9C9BA,WARW,gCWUX,WmC8BA,gCnC1BA,uCmCYJ,WnCXM,iBmC2BF,2BACE,MACA,OACA,iCACA,uFAEA,4BAGF,yBACE,MACA,QACA,iCACA,sFAEA,2BAGF,yBACE,MACA,QACA,OACA,mCACA,gBACA,wFAEA,4BAGF,4BACE,QACA,OACA,mCACA,gBACA,qFAEA,2BAGF,gDAEE,eAGF,qDAGE,mBA2BR,oBPxHE,eACA,MACA,OACA,Q9CqnC0B,K8CpnC1B,YACA,aACA,iB7CQM,K6CLN,yBACE,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AEE,U5E+2BgC,mD4Ez2BpC,uCACE,M5ErNE,K4EsNF,mDACE,M5EtNE,Q4EyNF,uDACE,a5E1NA,Q4E6NJ,yDACE,M5E/NA,K4EiOF,4EACE,a5ElOA,K4EmOA,0BACA,mCAEF,6EACE,a5EvOA,K4EwOA,0DAIF,8EACE,a5E7OA,K4E8OA,yDAIF,oDACE,M5E21BuB,qB4Ez1BzB,iJAGE,iB5Eu1BkB,sB6EhlCtB,qDACE,+BAKN,aACE,W7EsuCuB,e6EnuCzB,mBACE,a7E8mBQ,Q6E7mBR,UACA,W7EkuCoC,8B8E/uCtC,YACE,kBAGF,kBACE,kBACA,M9E8kC0B,S8E7kC1B,O9E6kC0B,S8E5kC1B,iB9E8kCkC,mB8E7kClC,0DAEA,yBACE,WACA,kBACA,W9E4kCiC,+B8E3kCjC,c9E4kCoC,I8E3kCpC,M9E4kC4B,Q8E3kC5B,O9E2kC4B,Q8E1kC5B,+BACA,UACA,oBACA,U9EykCgC,S8EtkClC,wBACE,eAEA,+BACE,Q9EokCkC,I8EnkClC,W9EokCqC,4D8EhkCzC,wBACE,gBACA,a9EqjC4B,qC8EpjC5B,W9EikCgC,iB8E/jChC,+BACE,Q9EgkCkC,I8E/jClC,W9EyjCqC,4D8ExjCrC,U9EgkCoC,S8E/jCpC,W9EgkCqC,6B8E5jCzC,0BACE,a9E0kBM,Q8ExkBN,iCACE,Q9E2jCoC,I8ExjCtC,gCACE,WACA,kBAGF,gCACE,a9E8jBI,Q8E5jBJ,uCACE,W9EijC2C,yB8EhjC3C,U9E0iCkC,S8EziClC,W9E0iCmC,6B8EniCrC,6CACE,W9E0jCiD,yB8ErjCvD,iCACE,c9EqiCsC,O8EpiCtC,iBACA,iBAGE,6CACE,WACA,kBACA,M9E8hCsC,Q8E7hCtC,O9E6hCsC,Q8E5hCtC,UACA,cACA,gBACA,iB9E2hCiD,mB8EvhCrD,yCACE,sBACA,iB9EwhBI,Q8EthBJ,+CACE,cACA,wCACA,a9EqhC+C,Q8EphC/C,a9EtGA,K8EuGA,M9EqhCwC,Q8EphCxC,O9EqhCyC,S8EphCzC,mBACA,aACA,8BACA,Y9EkhC8C,O8EjhC9C,W9EkhC6C,K8EjhC7C,+BAGF,+CACE,iB9EsgBE,Q8ElgBN,+CACE,a9EigBI,Q8E7fR,8BACE,c9EihCmC,I8EhhCnC,M9EihC2B,Q8EhhC3B,O9EghC2B,Q8E/gC3B,kBACA,iBAEA,qCACE,M9E8gCgC,K8E7gChC,O9E6gCgC,K8E1gClC,oCACE,WACA,kBACA,M9EugCgC,K8EtgChC,O9EsgCgC,K8ErgChC,UACA,cACA,c9E+/BiC,I8E9/BjC,iB9EwgC0C,mB8ErgC5C,sCACE,sBACA,iB9EqgC4C,mB8EngC5C,4CACE,c9Es/B+B,I8Er/B/B,M9EmgCqC,Q8ElgCrC,O9EkgCqC,Q8EjgCrC,a9E8dE,Q8E7dF,iB9E6dE,Q8E5dF,W9EqgC0C,a8EpgC1C,gCACA,kBACA,SACA,QAGF,4CACE,iB9E8/BgD,mB8Ex/BxD,kBACE,oBACA,wBACE,eASF,+BACE,sBACA,eACA,c9E4+ByC,S8E3+BzC,M9E4+BiC,K8E3+BjC,O9E4+BkC,Q8E3+BlC,iB9E4+B4C,0C8E3+B5C,gBACA,iBAEA,qCACE,WACA,kBACA,YACA,UACA,c9E0+B6C,I8Ez+B7C,M9E0+BqC,Q8Ez+BrC,O9Ey+BqC,Q8Ex+BrC,iB9E0+BgD,sB8Ez+BhD,W9E0+B0C,W8Ez+B1C,W9EujBS,gH8EtjBT,W9E0+B0C,mC8Ev+B5C,qCACE,sBAEA,4CACE,W9Eq+B+C,6D8Ep+B/C,U9Eq+B8C,S8Ep+B9C,W9Eq+B+C,6B8El+BjD,2CACE,c9Eu9B2C,I8Et9B3C,M9Em+ByC,Q8El+BzC,O9Ek+ByC,Q8E99B7C,uCACE,sBAEA,6CACE,sBAEA,oDACE,Y9E09BsD,U8Ez9BtD,W9E09BqD,0B8Ez9BrD,U9E09BoD,S8Ez9BpD,W9E09BqD,6B8Et9BzD,sDACE,sBAEA,4DACE,WACA,kBACA,YACA,UACA,c9Eg9B0D,I8E/8B1D,M9Eg9BkD,Q8E/8BlD,O9Eg9BmD,Q8E/8BnD,iB9EiYA,Q8EhYA,W9Eg9BuD,K8E/8BvD,Y9Eg9BwD,U8E/8BxD,W9Eg9BuD,0K8E/8BvD,W9Ek9BuD,mC+EjtC/D,yBACE,kDACA,qDACE,+BAEF,kCACE,qDACA,8CAEA,wDACE,8CAKJ,+EACE,+BCbN,aACE,iBAEA,2BACE,WhFgvCiB,oBgF/uCjB,OhF+uCiB,oBgF9uCjB,YhFgvCoB,OgF/uCpB,ehF+uCoB,OgF9uCpB,WhF+uCqB,egF7uCrB,iCACE,WhF4uCmB,egF3uCnB,ahF6mBI,QgF5mBJ,UACA,WhF6uCyB,wBgFxuC/B,kBACE,+BACA,YhFwuC2B,OgFvuC3B,ehFuuC2B,OgFtuC3B,mDACE,gBACA,iBAEF,gDACE,eAKF,8BACE,OhF6tCoB,qBgF5tCpB,UhF6tCuB,KgF5tCvB,YhF6tCuB,OgF5tCvB,ehF4tCuB,OgFztCzB,kCACE,UhFutCuB,KgFltCzB,8BACE,WhFqtCoB,oBgFptCpB,OhFotCoB,oBgFntCpB,UhFqtCuB,QgFptCvB,YhF+sCuB,OgF9sCvB,ehF8sCuB,OgF3sCzB,kCACE,UhF+sCuB,QgF9sCvB,YhFitC8B,IgF3sC9B,4CACE,cAEF,kDACE,SACA,8BAIJ,gOAIE,oCACA,uCAEF,8NAIE,qCACA,wCAIJ,yDACE,cAGF,uCACE,mBAGF,kBACE,mBAKE,8CACE,OhFypCkB,qBgFnpCtB,+BACE,OhFuoCiB,oBgFroCnB,kBACE,cAMA,8CACE,OhF6oCkB,oBgFroCtB,yEACE,+BAEA,6BACA,kDACA,qEAEA,oRAGE,+BAEA,6BACA,kDACA,qEAIJ,2FACE,gCAIJ,4BAIA,6BCiGA,0FAEE,kBAGF,4DAEE,kBA9OA,gBACE,kBACA,aACA,WACA,WlFo0BmB,OkFn0BnB,kBAEA,MjF+vCyB,QiF9vCzB,oBAGF,eACE,kBACA,SACA,UACA,aACA,eACA,iBACA,iBACA,kBAEA,iBAxBiB,mBAyBjB,gCACA,MjF1CI,KiF8CJ,8HAEE,cA/CF,0DAqDE,mBACA,sBACA,ajFiuCuB,QiF/tCvB,sEACE,ajF8tCqB,QiF7tCrB,WA3Ca,iCAmDb,8GACE,MjFotCmB,QiFjtCrB,kcAGE,ajF8sCmB,QiF3sCrB,kUAEE,mCAEF,gKACE,6BAEF,kKACE,ajFmsCmB,QiFlsCnB,mEAEF,oKACE,ajF+rCmB,QiF9rCnB,kEAIA,gMACE,mEAGF,8LACE,6BACA,mCAGF,kMACE,kEAxGR,wDAiHE,ajFuqCuB,QiFrqCvB,oEACE,ajFoqCqB,QiFnqCrB,WArGa,iCAwGf,wFACE,aAzHJ,oFAiII,gBAOF,0HACE,aAGF,sGACE,mCACA,ajF0oCqB,QiFxoCrB,wIACE,gBAMA,gXAEE,ajF+nCiB,QiFxxCzB,kEAkKE,ajFsnCuB,QiFpnCvB,kFACE,iBjFmnCqB,QiF9mCnB,4GACE,oCAKN,8EACE,gBAEA,4FACE,oCAIJ,sGACE,MjF+lCqB,QiF9lCrB,mBAKE,4HACE,iBjFwlCiB,QiFvlCjB,ajFulCiB,QiFjlCrB,0GACE,ajFglCmB,QiF/kCnB,iBjF1MF,KiF6MI,oIACE,oCAIJ,sHACE,ajFskCiB,QiFrkCjB,iBjFqkCiB,QiF9jCzB,qDACE,iBAQI,sHACE,WjFk9B2C,6DiF78B3C,sJACE,iBjF8iCe,QiF7iCf,WjF89BmD,0KiF19BrD,sIACE,qCA9NZ,kBACE,kBACA,aACA,WACA,WlFo0BmB,OkFn0BnB,kBAEA,MjF+vCyB,QiF9vCzB,oBAGF,iBACE,kBACA,SACA,UACA,aACA,eACA,iBACA,iBACA,kBAEA,iBAxBiB,oBAyBjB,gCACA,MjF1CI,KiF8CJ,8IAEE,cA/CF,8DAqDE,mBACA,sBACA,ajFiuCuB,QiF/tCvB,0EACE,ajF8tCqB,QiF7tCrB,WA3Ca,kCAmDb,kHACE,MjFotCmB,QiFjtCrB,8cAGE,ajF8sCmB,QiF3sCrB,0UAEE,mCAEF,oKACE,6BAEF,sKACE,ajFmsCmB,QiFlsCnB,mEAEF,wKACE,ajF+rCmB,QiF9rCnB,kEAIA,oMACE,mEAGF,kMACE,6BACA,mCAGF,sMACE,kEAxGR,4DAiHE,ajFuqCuB,QiFrqCvB,wEACE,ajFoqCqB,QiFnqCrB,WArGa,kCAwGf,gGACE,aAzHJ,wFAiII,gBAOF,kIACE,aAGF,0GACE,mCACA,ajF0oCqB,QiFxoCrB,4IACE,gBAMA,wXAEE,ajF+nCiB,QiFxxCzB,sEAkKE,ajFsnCuB,QiFpnCvB,sFACE,iBjFmnCqB,QiF9mCnB,gHACE,oCAKN,kFACE,gBAEA,gGACE,oCAIJ,0GACE,MjF+lCqB,QiF9lCrB,mBAKE,gIACE,iBjFwlCiB,QiFvlCjB,ajFulCiB,QiFjlCrB,8GACE,ajFglCmB,QiF/kCnB,iBjF1MF,KiF6MI,wIACE,oCAIJ,0HACE,ajFskCiB,QiFrkCjB,iBjFqkCiB,QiF9jCzB,uDACE,iBAQI,0HACE,WjFk9B2C,6DiF78B3C,0JACE,iBjF8iCe,QiF7iCf,WjF89BmD,0KiF19BrD,0IACE,qCC/OZ,kBACE,gBAIA,wCACE,gBAEF,oCACE,gBAEF,6BACE,gBAIJ,8BACE,SAGF,kCACE,WlFytCwC,KkFxtCxC,gBACA,gBAGF,2CACE,OlFotC6C,IkFntC7C,gBACA,gBACA,yCAGF,8BACE,gBACA,gBAGF,8BACE,gBC1CJ,OACE,8BACA,wCAEA,qCAEA,UACE,YnF40BiB,ImFz0BnB,aACE,YpF4lBiB,IoFzlBnB,uCACE,oBnF81B0B,Qa/2B5B,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,iBAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,eAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,cAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,aAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CAlBF,YAOE,wBACA,wBACA,kCACA,gCACA,gCACA,+BACA,+BACA,8BACA,8BAEA,6BACA,2CsEQF,sBACE,WnFk1BqB,ImFh1BvB,4BACE,mCACA,2CAIJ,qBACE,iDACA,yBAGF,qBACE,gDCvCF,KAEE,gCACA,iCACA,0BACA,6BACA,iCACA,iFACA,gJACA,gJACA,iJAGA,uCACA,6CACA,yBACA,sBACA,SnFFE,2CmFIF,qCAEA,iFAIE,2CAGF,+DAGE,2CAGF,iFAKE,4CAEA,+GACE,2CAIJ,mDAGE,qCAQJ,sBAEE,8BACA,mCACA,8BACA,4BACA,2BAGA,0FAEA,yCACA,mBACA,gBAEA,qJAIE,gBAGF,kHAGE,gBAGF,sKAKE,gBAEA,oMACE,gBAIJ,sGAGE,gBAGF,qECZA,gCACA,oCACA,+BzFkMI,oBALI,SyF3LR,2BDkBA,qECtBA,+BACA,oCACA,8BzFkMI,oBALI,QyF3LR,2BDkCF,eACE,gBAEA,yHAIE,2BAGF,6FAGE,gBAGF,mIAKE,gBAEA,iKACE,gBAIJ,iFAGE,gBAOF,aCzHA,sBACA,sBACA,6CACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BDkKI,yGAMF,iHAIE,2CAGF,uFAGE,2CACA,yCAGF,yHAKE,2CAEA,uJACE,2CAGF,uJACE,0CAIJ,2EAGE,qCAIJ,mCAEI,0CACA,4HAGE,0CAlGN,eCzHA,sBACA,yBACA,6CACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDgKI,wCAQF,yHAIE,2CAGF,6FAGE,2CACA,yCAGF,mIAKE,2CAEA,iKACE,2CAGF,iKACE,0CAIJ,iFAGE,qCAxFJ,aCzHA,sBACA,sBACA,6CACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BDkKI,uGAMF,iHAIE,2CAGF,uFAGE,2CACA,yCAGF,yHAKE,2CAEA,uJACE,2CAGF,uJACE,0CAIJ,2EAGE,qCAIJ,mCAEI,0CACA,4HAGE,0CAlGN,YCzHA,sBACA,sBACA,6CACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BDkKI,uGAMF,6GAIE,2CAGF,oFAGE,2CACA,yCAGF,oHAKE,2CAEA,kJACE,2CAGF,kJACE,0CAIJ,wEAGE,qCAIJ,kCAEI,0CACA,yHAGE,0CAlGN,aCzHA,sBACA,sBACA,6CACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BDkKI,yGAMF,iHAIE,2CAGF,uFAGE,2CACA,yCAGF,yHAKE,2CAEA,uJACE,2CAGF,uJACE,0CAIJ,2EAGE,qCAIJ,mCAEI,0CACA,4HAGE,0CAlGN,UCzHA,sBACA,sBACA,6CACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BDkKI,yGAMF,qGAIE,2CAGF,8EAGE,2CACA,yCAGF,0GAKE,2CAEA,wIACE,2CAGF,wIACE,0CAIJ,kEAGE,qCAIJ,gCAEI,0CACA,mHAGE,0CAlGN,WCzHA,sBACA,yBACA,6CACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDkKI,2GAMF,yGAIE,2CAGF,iFAGE,2CACA,yCAGF,+GAKE,2CAEA,6IACE,2CAGF,6IACE,0CAIJ,qEAGE,qCAIJ,iCAEI,0CACA,sHAGE,0CAlGN,UCzHA,sBACA,yBACA,6CACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDkKI,qGAMF,qGAIE,2CAGF,8EAGE,2CACA,yCAGF,0GAKE,2CAEA,wIACE,2CAGF,wIACE,0CAIJ,kEAGE,qCAIJ,gCAEI,0CACA,mHAGE,0CAUN,qBC/MA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,iJAIE,uDAGF,+GAGE,uDAGF,iKAKE,wDAEA,+LACE,uDAIJ,mGAGE,iDAIJ,2CCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDwMA,uBC/MA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDiNI,wCACA,8CAIA,8CAKA,iDAsBF,yJAIE,uDAGF,qHAGE,uDAGF,2KAKE,wDAEA,yMACE,uDAIJ,yGAGE,iDAIJ,6CCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCD6RI,wCACA,8CAIA,8CAKA,iDA/FJ,qBC/MA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,iJAIE,uDAGF,+GAGE,uDAGF,iKAKE,wDAEA,+LACE,uDAIJ,mGAGE,iDAIJ,2CCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDwMA,oBC/MA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,6IAIE,uDAGF,4GAGE,uDAGF,4JAKE,wDAEA,0LACE,uDAIJ,gGAGE,iDAIJ,0CCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDwMA,qBC/MA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,iJAIE,uDAGF,+GAGE,uDAGF,iKAKE,wDAEA,+LACE,uDAIJ,mGAGE,iDAIJ,2CCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDwMA,kBC/MA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,qIAIE,uDAGF,sGAGE,uDAGF,kJAKE,wDAEA,gLACE,uDAIJ,0FAGE,iDAIJ,wCCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDwMA,mBC/MA,0BACA,yBACA,0BACA,+BACA,0BACA,+BACA,2BACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,yIAIE,uDAGF,yGAGE,uDAGF,uJAKE,wDAEA,qLACE,uDAIJ,6FAGE,iDAIJ,yCCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCDwMA,kBC/MA,0BACA,yBACA,+BACA,+BACA,+BACA,+BACA,gCACA,gCDoOI,wCACA,8CAIA,8CAKA,iDAGF,qIAIE,uDAGF,sGAGE,uDAGF,kJAKE,wDAEA,gLACE,uDAIJ,0FAGE,iDAIJ,wCCxRA,0BACA,yBACA,4BACA,+BACA,4BACA,+BACA,6BACA,gCD6TF,UACE,2BACA,yBACA,+BACA,oCACA,+BACA,gCACA,kCACA,2BAEA,gBpF8UgB,KoF7UhB,qCAEA,qGAIE,gBpF2UoB,KoF1UpB,qCAGF,8EAGE,iCACA,qCAGF,0GAKE,kCACA,qCAEA,wIACE,iCACA,qCAIJ,kEAGE,qCAIJ,cACE,2BACA,yBACA,+BACA,gCACA,+BACA,gCACA,kCACA,2BAEA,iBACA,kBACA,gBpF2RgB,KoF1RhB,qCAEA,qHAIE,gBpFwRoB,KoFvRpB,qCAGF,0FAGE,iCACA,qCAGF,8HAKE,kCACA,qCAEA,4JACE,iCACA,qCAIJ,8EAGE,qCAIJ,qCACE,sBACA,4BACA,4BACA,6BAGF,gCACE,yBACA,+BACA,4BACA,+BACA,gCAGF,oCACE,yBACA,+BACA,+BACA,gCAOF,2BCrbE,+BACA,oCACA,+BzF4MI,oBALI,SyFrMR,2BD2bF,2BC/bE,gCACA,oCACA,0BzF4MI,oBALI,QyFrMR,2BDycF,aACE,+BAEA,2CAOF,iDAEE,6BAEA,2CACA,UACA,kBACA,oBACA,mBACA,uBAGF,cACE,2BACA,4BACA,gCACA,sCACA,8BACA,+BACA,mCACA,yCACA,8BACA,+BACA,mCACA,yCAEA,2BACA,6BAEA,yDAGE,gCACA,4CAGF,qDACE,8BACA,gCAEA,6LAGE,mCACA,+CAIJ,qDACE,8BACA,gCAEA,6LAGE,mCACA,+CAKN,mCACE,gCACA,mCACA,mCACA,sCACA,yCACA,yCAEA,wHAGE,gCACA,4CAIA,2TAGE,mCACA,+CAKF,2TAGE,mCACA,+CASN,kBACE,2BACA,4BACA,uBACA,iCACA,kCACA,6BACA,gCAEA,eACA,2BACA,6BACA,8BACA,aACA,gCACA,mBACA,0FAEA,gBACA,YACA,gBAEA,gCACE,kBACA,qBACA,WAGF,qBACE,kBACA,SACA,OACA,QACA,aACA,sBACA,UACA,SACA,gBACA,kBACA,UACA,qCACA,WAEA,wBACE,UACA,aACA,kBACA,2CACA,iBAEA,sCACE,iDAKF,2BACE,UACA,+BAEA,iCACE,UAMR,4BACE,UAQJ,WACE,6BAEA,cACA,WAGA,sBACE,qCEjuBJ,kCACE,WAGF,oBACE,UACA,yBACA,WAGF,kBACE,UACA,yBACA,qBACA,UACA,cAGF,6BACE,mFACA,+BAGF,2BACE,oFACA,+BACA,UACA,MACA,QC1BF,eACE,0CAEA,gCACA,SACA,cACA,iBACA,SACA,0CACA,wCACA,SACA,OACA,sCAEA,kBACE,gBACA,8BACE,8DACA,+DACA,4BACA,6BACA,6CACE,8DACA,+DACA,4BACA,6BAKF,oEACE,gBAIJ,6BACE,yBACA,0BACA,iEACA,kEACA,4CACE,yBACA,0BACA,iEACA,kEAKN,yBACE,uDACA,6DAEA,cAEA,wEACA,sFAIJ,eACE,qDACA,qEAEA,8EACA,gCACA,gBAEA,0CAEE,sCACA,4DAGF,4CAEE,sCACA,4DAGF,qBACE,aAKF,oCACE,aAIJ,WACE,sBACA,yBACA,aAGF,+BACE,WACE,2BACA,4BAIJ,mBACE,KACE,UAGF,GACE,WAIJ,SACE,uBAGF,oBACE,KACE,UAGF,GACE,WAIJ,UACE,wBAGF,kBACE,6CACA,+DAEA,wGAEA,UAIA,wIAGE,+BCjJJ,+BAEE,iFACA,gJACA,gJACA,iJACA,sJAEA,qCACA,2CAEA,2CACE,2CAGF,sFAEE,2CAGF,0FAEE,4CAEA,kHACE,2CAIJ,qKAGE,qCACA,SAGF,yCACE,gBAEA,8RAIE,2BAGF,2NAGE,gBAGF,6TAKE,gBAEA,yXACE,gBAIJ,mMAGE,gBAIJ,qDACE,gBAKA,8JACE,yBACA,4BAGF,0JACE,0BACA,6BAKN,iDAGE,iCAEA,2CC1FF,UACE,gBAEA,oBACE,qCACA,oCACA,qEACA,sCACA,yCACA,oCACA,6DACA,6CACA,0CACA,iDACA,eACA,+EACA,gBACA,yBACA,cACA,iDACA,6CACA,qCACA,2JAGA,0BACE,oDACA,2BAGF,0BACE,2BAIJ,8DAEE,4CACA,0DAQJ,WACE,oBACA,qBAEA,qBACE,4CACA,qCACA,uCACA,0CACA,qCACA,oCACA,6DACA,sCACA,sEACA,+BAEA,sDACA,8CACA,yBACA,+JAEA,kDACA,oDACA,kDACA,sCACA,mCAGF,uDAEE,6DACA,oEAEA,qDACA,6CAQA,iEACE,WC7FN,QACE,yIACA,oCACA,6CAEA,wCACA,0CAGF,gBACE,SAEA,sBACE,gBAIJ,2DAEE,SAGF,cACE,aACA,mBACA,kBACE,sDAIJ,2BACE,kBAKA,mCACE,sBAKF,kCACE,sBAIJ,0CAGE,8CACA,oDACA,uDACA,gCACA,+BACA,qCACA,4DACA,gRCzDF,MACE,SAEA,gBACE,qDACA,sDAIA,+BACE,4DAEA,+DAEF,+BACE,yDAEA,yDAKN,aACE,oCACA,yDAEA,4FAKA,uBACE,wDACA,yDAIJ,aACE,yDACA,oCAEA,yFAIF,eACE,qDACA,wDC9CA,oBAEE,uEACA,4EACA,8EACA,0DAGA,+BACA,gBAGE,uCACE,uCACA,iDAEA,0FAEE,6CAKF,6DACE,8CCzBV,YAEE,wCACA,oDACA,yCACA,2CACA,4CACA,kDACA,kDACA,+CACA,+CAIF,WACE,+BACA,SACA,UACA,kDAEA,iBACE,gBAGF,qCAEE,SACA,mDACA,qDAMA,wCACE,cAKF,kCACE,2DACA,8DAKF,iCACE,4DACA,+DAYA,qDACE,yDAKF,oDACE,yDAKN,8BACE,yDACA,oDACA,qDAIA,4CACE,uDACA,wDAKF,4CACE,uDACA,wDCvFN,WACE,iCACA,wBACA,uBACA,oCAEA,kBACA,YACA,6BACA,+BACA,6CACA,UACA,yCAEA,iBACE,qBAKJ,oBACE,8BACA,8BACA,6BACA,gCACA,iCAEA,kBACA,qCACA,8DACA,uCACA,yCAKA,eACE,8CACA,uCAEA,iBACE,uCALJ,iBACE,gDACA,yCAEA,mBACE,yCALJ,eACE,8CACA,uCAEA,iBACE,uCALJ,cACE,6CACA,sCAEA,gBACE,sCALJ,eACE,8CACA,uCAEA,iBACE,uCALJ,YACE,2CACA,oCAEA,cACE,oCALJ,aACE,4CACA,qCAEA,eACE,qCALJ,YACE,2CACA,oCAEA,cACE,oCC7CN,OACE,SAGF,gBACE,kBAGF,aACE,gCAEA,eACA,uCAGF,uBACE,kBAIA,eACE,8CACA,uCAEA,iBACE,uCAGF,2BACE,uCAEA,iCACE,4EAZN,iBACE,gDACA,yCAEA,mBACE,yCAGF,6BACE,yCAEA,mCACE,8EAZN,eACE,8CACA,uCAEA,iBACE,uCAGF,2BACE,uCAEA,iCACE,4EAZN,cACE,6CACA,sCAEA,gBACE,sCAGF,0BACE,sCAEA,gCACE,2EAZN,eACE,8CACA,uCAEA,iBACE,uCAGF,2BACE,uCAEA,iCACE,4EAZN,YACE,2CACA,oCAEA,cACE,oCAGF,wBACE,oCAEA,8BACE,yEAZN,aACE,4CACA,qCAEA,eACE,qCAGF,yBACE,qCAEA,+BACE,0EAZN,YACE,2CACA,oCAEA,cACE,oCAGF,wBACE,oCAEA,8BACE,yEChCR,UACE,gBACA,gBAGF,mBACE,mCACA,uCACA,yDAEA,kBACA,wCACA,yCACA,+BACA,qBAEA,iCACE,4CAGF,yCACE,WACA,kBACA,MACA,OACA,WACA,YACA,kBACA,sBAEA,+FAIA,8KAKA,sKAKA,yBAGF,mCACE,kBACA,QACA,SACA,gCACA,yCClDJ,YACE,4CAGF,iBACE,2CAGE,yCACE,wDAKN,wBACE,sDAGA,8BACE,sDAIJ,kBACE,qCACA,uEACA,8CACA,oDACA,+DACA,sEAEA,mCACE,8CACA,+CAEF,mCACE,+DACA,gDACE,YAGJ,0BACE,YACA,+DACA,uDACA,+CAGA,gDACE,+DAEF,gDACE,+DAKN,kBACE,uCACA,mCACE,8CAKF,yBACE,8CACA,uCAEA,2BACE,uCALJ,2BACE,gDACA,yCAEA,6BACE,yCALJ,yBACE,8CACA,uCAEA,2BACE,uCALJ,wBACE,6CACA,sCAEA,0BACE,sCALJ,yBACE,8CACA,uCAEA,2BACE,uCALJ,sBACE,2CACA,oCAEA,wBACE,oCALJ,uBACE,4CACA,qCAEA,yBACE,qCALJ,sBACE,2CACA,oCAEA,wBACE,oCCpEJ,iBACE,gBCHJ,eAEE,kJAGA,SACA,uCCNF,OAEE,qCACA,mCACA,oCACA,kCACA,sCACA,6CAGA,SAEA,kBACE,uCAIJ,cACE,yDAEA,yBACE,2CACA,0CAIJ,uBACE,kBAGF,gBACE,kBAGF,aACE,eACA,gCAIA,eACE,8CACA,uCACA,8CAEA,iBACE,uCANJ,iBACE,gDACA,yCACA,gDAEA,mBACE,yCANJ,eACE,8CACA,uCACA,8CAEA,iBACE,uCANJ,cACE,6CACA,sCACA,6CAEA,gBACE,sCANJ,eACE,8CACA,uCACA,8CAEA,iBACE,uCANJ,YACE,2CACA,oCACA,2CAEA,cACE,oCANJ,aACE,4CACA,qCACA,4CAEA,eACE,qCANJ,YACE,2CACA,oCACA,2CAEA,cACE,oCChDN,SACE,8BAEA,cACE,UAGF,wBACE,aAIJ,eACE,uCCXF,SAEE,uCAGA,wBACE,aAIJ,gBACE,2FCXE,kCACE,+CACA,0DACA,iDACA,4CACA,8CACA,8DACA,2CAEA,sDACA,+BACA,8CACA,0DACA,sDACA,0DACA,wDACA,uBACA,sDACA,yDAGF,iFAEE,mDACA,qDACA,2DACA,0DAEA,+BACA,gBACA,qDACA,iEACA,8HAEA,gBAGF,oDACE,sDAEA,4EACA,iBC7CN,gBACE,kBACA,gBACA,qBACA,sBAGF,wBACE,iBAGF,aACE,2DACA,qCACA,+BACA,sCACA,+BACA,6CCSA,6JDNA,mDACA,uCACA,oBACA,kBACA,kBACA,2CACA,sCACA,iGAEA,uCACA,oBACE,kDACA,UAIJ,kBCVE,2LDcF,4BCdE,2LDoBE,qCCpBF,sLDoBE,uCCpBF,2LDoBE,qCCpBF,iLDoBE,oCCpBF,sLDoBE,qCCpBF,sLDoBE,kCCpBF,sLDoBE,mCCpBF,2LDoBE,kCCpBF,4KCzBF,OACE,+BACA,8BACA,6BACA,qCACA,+CACA,sCACA,yDACA,wCACA,0CACA,oCACA,yCACA,sCAEA,kBAEA,cACE,kBACA,cACA,qCACA,mCACA,+BACA,+CACA,kBACA,mDACA,2CACA,wBACA,6CAEA,oBACE,kBACA,cACA,WACA,2BACA,WACA,YACA,MACA,mDACA,yBACA,6CACA,WAGF,2BACE,cACA,iDACA,qDACA,yCACA,qDACA,UAGF,2BACE,mBClDF,wCACE,qDAIJ,wBACE,yDACA,UACA,gBAIJ,iBACE,8EACA,wEAEA,mDACE,qDAEF,iCACE,uDAIJ,sBACE,qDACA,gEACA,uEAEA,sCACE,SACA,wDACE,gEACA,wEACE,wDACA,gDACA,gBCnCN,mCACE,YACA,8CACA,6CAEA,yDACA,qDACA,uDAIF,mCACE,YACA,8CACA,6CAEA,yDACA,qDACA","file":"mdb.min.css","sourcesContent":["/*!\n* MDB5\n* Version: FREE 9.3.0\n*\n*\n* Copyright: Material Design for Bootstrap\n* https://mdbootstrap.com/\n*\n* Read the license: https://mdbootstrap.com/general/license/\n*\n*\n* Documentation: https://mdbootstrap.com/docs/standard/\n*\n* Support: https://mdbootstrap.com/support/\n*\n* Contact: contact@mdbootstrap.com\n*\n*/\n\n@import 'http://github.com/src/scss/mdb.free.scss'\n",":root,\r\n[data-mdb-theme='light'] {\r\n // Note: Custom variable values only support SassScript inside `#{}`.\r\n\r\n // Colors\r\n //\r\n // Generate palettes for full colors, grays, and theme colors.\r\n\r\n @each $color, $value in $colors {\r\n --#{$prefix}#{$color}: #{$value};\r\n }\r\n\r\n @each $color, $value in $grays {\r\n --#{$prefix}gray-#{$color}: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors {\r\n --#{$prefix}#{$color}: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors-rgb {\r\n --#{$prefix}#{$color}-rgb: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors-text {\r\n --#{$prefix}#{$color}-text-emphasis: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors-bg-subtle {\r\n --#{$prefix}#{$color}-bg-subtle: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors-border-subtle {\r\n --#{$prefix}#{$color}-border-subtle: #{$value};\r\n }\r\n\r\n --#{$prefix}white-rgb: #{to-rgb($white)};\r\n --#{$prefix}black-rgb: #{to-rgb($black)};\r\n\r\n // Fonts\r\n\r\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\r\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\r\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\r\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\r\n --#{$prefix}gradient: #{$gradient};\r\n\r\n // Root and body\r\n // scss-docs-start root-body-variables\r\n @if $font-size-root != null {\r\n --#{$prefix}root-font-size: #{$font-size-root};\r\n }\r\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\r\n @include rfs($font-size-base, --#{$prefix}body-font-size);\r\n --#{$prefix}body-font-weight: #{$font-weight-base};\r\n --#{$prefix}body-line-height: #{$line-height-base};\r\n @if $body-text-align != null {\r\n --#{$prefix}body-text-align: #{$body-text-align};\r\n }\r\n\r\n --#{$prefix}body-color: #{$body-color};\r\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\r\n --#{$prefix}body-bg: #{$body-bg};\r\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\r\n\r\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\r\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\r\n\r\n --#{$prefix}secondary-color: #{$body-secondary-color};\r\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\r\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\r\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\r\n\r\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\r\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\r\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\r\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\r\n // scss-docs-end root-body-variables\r\n\r\n --#{$prefix}heading-color: #{$headings-color};\r\n\r\n --#{$prefix}link-color: #{$link-color};\r\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\r\n --#{$prefix}link-decoration: #{$link-decoration};\r\n\r\n --#{$prefix}link-hover-color: #{$link-hover-color};\r\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\r\n\r\n @if $link-hover-decoration != null {\r\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\r\n }\r\n\r\n --#{$prefix}code-color: #{$code-color};\r\n --#{$prefix}highlight-color: #{$mark-color};\r\n --#{$prefix}highlight-bg: #{$mark-bg};\r\n\r\n // scss-docs-start root-border-var\r\n --#{$prefix}border-width: #{$border-width};\r\n --#{$prefix}border-style: #{$border-style};\r\n --#{$prefix}border-color: #{$border-color};\r\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\r\n\r\n --#{$prefix}border-radius: #{$border-radius};\r\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\r\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\r\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\r\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\r\n --#{$prefix}border-radius-2xl: var(\r\n --#{$prefix}border-radius-xxl\r\n ); // Deprecated in v5.3.0 for consistency\r\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\r\n // scss-docs-end root-border-var\r\n\r\n --#{$prefix}box-shadow: #{$box-shadow};\r\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\r\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\r\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\r\n\r\n // Focus styles\r\n // scss-docs-start root-focus-variables\r\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\r\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\r\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\r\n // scss-docs-end root-focus-variables\r\n\r\n // scss-docs-start root-form-validation-variables\r\n --#{$prefix}form-valid-color: #{$form-valid-color};\r\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\r\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\r\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\r\n // scss-docs-end root-form-validation-variables\r\n}\r\n\r\n@if $enable-dark-mode {\r\n @include color-mode(dark, true) {\r\n color-scheme: dark;\r\n\r\n // scss-docs-start root-dark-mode-vars\r\n --#{$prefix}body-color: #{$body-color-dark};\r\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\r\n --#{$prefix}body-bg: #{$body-bg-dark};\r\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\r\n\r\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\r\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\r\n\r\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\r\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\r\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\r\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\r\n\r\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\r\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\r\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\r\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\r\n\r\n @each $color, $value in $theme-colors-text-dark {\r\n --#{$prefix}#{$color}-text-emphasis: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors-bg-subtle-dark {\r\n --#{$prefix}#{$color}-bg-subtle: #{$value};\r\n }\r\n\r\n @each $color, $value in $theme-colors-border-subtle-dark {\r\n --#{$prefix}#{$color}-border-subtle: #{$value};\r\n }\r\n\r\n --#{$prefix}heading-color: #{$headings-color-dark};\r\n\r\n --#{$prefix}link-color: #{$link-color-dark};\r\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\r\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\r\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\r\n\r\n --#{$prefix}code-color: #{$code-color-dark};\r\n --#{$prefix}highlight-color: #{$mark-color-dark};\r\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\r\n\r\n --#{$prefix}border-color: #{$border-color-dark};\r\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\r\n\r\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\r\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\r\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\r\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\r\n // scss-docs-end root-dark-mode-vars\r\n }\r\n}\r\n","// stylelint-disable scss/dimension-no-non-numeric-values\r\n\r\n// SCSS RFS mixin\r\n//\r\n// Automated responsive values for font sizes, paddings, margins and much more\r\n//\r\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\r\n\r\n// Configuration\r\n\r\n// Base value\r\n$rfs-base-value: 1.25rem !default;\r\n$rfs-unit: rem !default;\r\n\r\n@if $rfs-unit != rem and $rfs-unit != px {\r\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\r\n}\r\n\r\n// Breakpoint at where values start decreasing if screen width is smaller\r\n$rfs-breakpoint: 1200px !default;\r\n$rfs-breakpoint-unit: px !default;\r\n\r\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\r\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\r\n}\r\n\r\n// Resize values based on screen height and width\r\n$rfs-two-dimensional: false !default;\r\n\r\n// Factor of decrease\r\n$rfs-factor: 10 !default;\r\n\r\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\r\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\r\n}\r\n\r\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\r\n$rfs-mode: min-media-query !default;\r\n\r\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\r\n$rfs-class: false !default;\r\n\r\n// 1 rem = $rfs-rem-value px\r\n$rfs-rem-value: 16 !default;\r\n\r\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\r\n$rfs-safari-iframe-resize-bug-fix: false !default;\r\n\r\n// Disable RFS by setting $enable-rfs to false\r\n$enable-rfs: true !default;\r\n\r\n// Cache $rfs-base-value unit\r\n$rfs-base-value-unit: unit($rfs-base-value);\r\n\r\n@function divide($dividend, $divisor, $precision: 10) {\r\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\r\n $dividend: abs($dividend);\r\n $divisor: abs($divisor);\r\n @if $dividend == 0 {\r\n @return 0;\r\n }\r\n @if $divisor == 0 {\r\n @error \"Cannot divide by 0\";\r\n }\r\n $remainder: $dividend;\r\n $result: 0;\r\n $factor: 10;\r\n @while ($remainder > 0 and $precision >= 0) {\r\n $quotient: 0;\r\n @while ($remainder >= $divisor) {\r\n $remainder: $remainder - $divisor;\r\n $quotient: $quotient + 1;\r\n }\r\n $result: $result * 10 + $quotient;\r\n $factor: $factor * 0.1;\r\n $remainder: $remainder * 10;\r\n $precision: $precision - 1;\r\n @if ($precision < 0 and $remainder >= $divisor * 5) {\r\n $result: $result + 1;\r\n }\r\n }\r\n $result: $result * $factor * $sign;\r\n $dividend-unit: unit($dividend);\r\n $divisor-unit: unit($divisor);\r\n $unit-map: (\r\n 'px': 1px,\r\n 'rem': 1rem,\r\n 'em': 1em,\r\n '%': 1%,\r\n );\r\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\r\n $result: $result * map-get($unit-map, $dividend-unit);\r\n }\r\n @return $result;\r\n}\r\n\r\n// Remove px-unit from $rfs-base-value for calculations\r\n@if $rfs-base-value-unit == px {\r\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\r\n} @else if $rfs-base-value-unit == rem {\r\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\r\n}\r\n\r\n// Cache $rfs-breakpoint unit to prevent multiple calls\r\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\r\n\r\n// Remove unit from $rfs-breakpoint for calculations\r\n@if $rfs-breakpoint-unit-cache == px {\r\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\r\n} @else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == 'em' {\r\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\r\n}\r\n\r\n// Calculate the media query value\r\n$rfs-mq-value: if(\r\n $rfs-breakpoint-unit == px,\r\n #{$rfs-breakpoint}px,\r\n #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit}\r\n);\r\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\r\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\r\n\r\n// Internal mixin used to determine which media query needs to be used\r\n@mixin _rfs-media-query {\r\n @if $rfs-two-dimensional {\r\n @if $rfs-mode == max-media-query {\r\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\r\n @content;\r\n }\r\n } @else {\r\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\r\n @content;\r\n }\r\n }\r\n } @else {\r\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\r\n @content;\r\n }\r\n }\r\n}\r\n\r\n// Internal mixin that adds disable classes to the selector if needed.\r\n@mixin _rfs-rule {\r\n @if $rfs-class == disable and $rfs-mode == max-media-query {\r\n // Adding an extra class increases specificity, which prevents the media query to override the property\r\n &,\r\n .disable-rfs &,\r\n &.disable-rfs {\r\n @content;\r\n }\r\n } @else if $rfs-class == enable and $rfs-mode == min-media-query {\r\n .enable-rfs &,\r\n &.enable-rfs {\r\n @content;\r\n }\r\n } @else {\r\n @content;\r\n }\r\n}\r\n\r\n// Internal mixin that adds enable classes to the selector if needed.\r\n@mixin _rfs-media-query-rule {\r\n @if $rfs-class == enable {\r\n @if $rfs-mode == min-media-query {\r\n @content;\r\n }\r\n\r\n @include _rfs-media-query() {\r\n .enable-rfs &,\r\n &.enable-rfs {\r\n @content;\r\n }\r\n }\r\n } @else {\r\n @if $rfs-class == disable and $rfs-mode == min-media-query {\r\n .disable-rfs &,\r\n &.disable-rfs {\r\n @content;\r\n }\r\n }\r\n @include _rfs-media-query() {\r\n @content;\r\n }\r\n }\r\n}\r\n\r\n// Helper function to get the formatted non-responsive value\r\n@function rfs-value($values) {\r\n // Convert to list\r\n $values: if(type-of($values) != list, ($values), $values);\r\n\r\n $val: '';\r\n\r\n // Loop over each value and calculate value\r\n @each $value in $values {\r\n @if $value == 0 {\r\n $val: $val + ' 0';\r\n } @else {\r\n // Cache $value unit\r\n $unit: if(type-of($value) == 'number', unit($value), false);\r\n\r\n @if $unit == px {\r\n // Convert to rem if needed\r\n $val: $val +\r\n ' ' +\r\n if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\r\n } @else if $unit == rem {\r\n // Convert to px if needed\r\n $val: $val +\r\n ' ' +\r\n if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\r\n } @else {\r\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\r\n $val: $val + ' ' + $value;\r\n }\r\n }\r\n }\r\n\r\n // Remove first space\r\n @return unquote(str-slice($val, 2));\r\n}\r\n\r\n// Helper function to get the responsive value calculated by RFS\r\n@function rfs-fluid-value($values) {\r\n // Convert to list\r\n $values: if(type-of($values) != list, ($values), $values);\r\n\r\n $val: '';\r\n\r\n // Loop over each value and calculate value\r\n @each $value in $values {\r\n @if $value == 0 {\r\n $val: $val + ' 0';\r\n } @else {\r\n // Cache $value unit\r\n $unit: if(type-of($value) == 'number', unit($value), false);\r\n\r\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\r\n @if not $unit or $unit != px and $unit != rem {\r\n $val: $val + ' ' + $value;\r\n } @else {\r\n // Remove unit from $value for calculations\r\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\r\n\r\n // Only add the media query if the value is greater than the minimum value\r\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\r\n $val: $val +\r\n ' ' +\r\n if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\r\n } @else {\r\n // Calculate the minimum value\r\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\r\n\r\n // Calculate difference between $value and the minimum value\r\n $value-diff: abs($value) - $value-min;\r\n\r\n // Base value formatting\r\n $min-width: if(\r\n $rfs-unit == rem,\r\n #{divide($value-min, $rfs-rem-value)}rem,\r\n #{$value-min}px\r\n );\r\n\r\n // Use negative value if needed\r\n $min-width: if($value < 0, -$min-width, $min-width);\r\n\r\n // Use `vmin` if two-dimensional is enabled\r\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\r\n\r\n // Calculate the variable width between 0 and $rfs-breakpoint\r\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\r\n\r\n // Return the calculated value\r\n $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Remove first space\r\n @return unquote(str-slice($val, 2));\r\n}\r\n\r\n// RFS mixin\r\n@mixin rfs($values, $property: font-size) {\r\n @if $values != null {\r\n $val: rfs-value($values);\r\n $fluid-val: rfs-fluid-value($values);\r\n\r\n // Do not print the media query if responsive & non-responsive values are the same\r\n @if $val == $fluid-val {\r\n #{$property}: $val;\r\n } @else {\r\n @include _rfs-rule() {\r\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\r\n\r\n // Include safari iframe resize fix if needed\r\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\r\n }\r\n\r\n @include _rfs-media-query-rule() {\r\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\r\n }\r\n }\r\n }\r\n}\r\n\r\n// Shorthand helper mixins\r\n@mixin font-size($value) {\r\n @include rfs($value);\r\n}\r\n\r\n@mixin padding($value) {\r\n @include rfs($value, padding);\r\n}\r\n\r\n@mixin padding-top($value) {\r\n @include rfs($value, padding-top);\r\n}\r\n\r\n@mixin padding-right($value) {\r\n @include rfs($value, padding-right);\r\n}\r\n\r\n@mixin padding-bottom($value) {\r\n @include rfs($value, padding-bottom);\r\n}\r\n\r\n@mixin padding-left($value) {\r\n @include rfs($value, padding-left);\r\n}\r\n\r\n@mixin margin($value) {\r\n @include rfs($value, margin);\r\n}\r\n\r\n@mixin margin-top($value) {\r\n @include rfs($value, margin-top);\r\n}\r\n\r\n@mixin margin-right($value) {\r\n @include rfs($value, margin-right);\r\n}\r\n\r\n@mixin margin-bottom($value) {\r\n @include rfs($value, margin-bottom);\r\n}\r\n\r\n@mixin margin-left($value) {\r\n @include rfs($value, margin-left);\r\n}\r\n","// scss-docs-start color-mode-mixin\r\n@mixin color-mode($mode: light, $root: false) {\r\n @if $color-mode-type == 'media-query' {\r\n @if $root == true {\r\n @media (prefers-color-scheme: $mode) {\r\n :root {\r\n @content;\r\n }\r\n }\r\n } @else {\r\n @media (prefers-color-scheme: $mode) {\r\n @content;\r\n }\r\n }\r\n } @else {\r\n [data-mdb-theme='#{$mode}'] {\r\n @content;\r\n }\r\n }\r\n}\r\n// scss-docs-end color-mode-mixin\r\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\r\n\r\n// Reboot\r\n//\r\n// Normalization of HTML elements, manually forked from Normalize.css to remove\r\n// styles targeting irrelevant browsers while applying new styles.\r\n//\r\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\r\n\r\n// Document\r\n//\r\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\r\n\r\n*,\r\n*::before,\r\n*::after {\r\n box-sizing: border-box;\r\n}\r\n\r\n// Root\r\n//\r\n// Ability to the value of the root font sizes, affecting the value of `rem`.\r\n// null by default, thus nothing is generated.\r\n\r\n:root {\r\n @if $font-size-root != null {\r\n @include font-size(var(--#{$prefix}root-font-size));\r\n }\r\n\r\n @if $enable-smooth-scroll {\r\n @media (prefers-reduced-motion: no-preference) {\r\n scroll-behavior: smooth;\r\n }\r\n }\r\n}\r\n\r\n// Body\r\n//\r\n// 1. Remove the margin in all browsers.\r\n// 2. As a best practice, apply a default `background-color`.\r\n// 3. Prevent adjustments of font size after orientation changes in iOS.\r\n// 4. Change the default tap highlight to be completely transparent in iOS.\r\n\r\n// scss-docs-start reboot-body-rules\r\nbody {\r\n margin: 0; // 1\r\n font-family: var(--#{$prefix}body-font-family);\r\n @include font-size(var(--#{$prefix}body-font-size));\r\n font-weight: var(--#{$prefix}body-font-weight);\r\n line-height: var(--#{$prefix}body-line-height);\r\n color: var(--#{$prefix}body-color);\r\n text-align: var(--#{$prefix}body-text-align);\r\n background-color: var(--#{$prefix}body-bg); // 2\r\n -webkit-text-size-adjust: 100%; // 3\r\n -webkit-tap-highlight-color: rgba($black, 0); // 4\r\n}\r\n// scss-docs-end reboot-body-rules\r\n\r\n// Content grouping\r\n//\r\n// 1. Reset Firefox's gray color\r\n\r\nhr {\r\n margin: $hr-margin-y 0;\r\n color: $hr-color; // 1\r\n border: 0;\r\n border-top: $hr-border-width solid $hr-border-color;\r\n opacity: $hr-opacity;\r\n}\r\n\r\n// Typography\r\n//\r\n// 1. Remove top margins from headings\r\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\r\n// margin for easier control within type scales as it avoids margin collapsing.\r\n\r\n%heading {\r\n margin-top: 0; // 1\r\n margin-bottom: $headings-margin-bottom;\r\n font-family: $headings-font-family;\r\n font-style: $headings-font-style;\r\n font-weight: $headings-font-weight;\r\n line-height: $headings-line-height;\r\n color: var(--#{$prefix}heading-color);\r\n}\r\n\r\nh1 {\r\n @extend %heading;\r\n @include font-size($h1-font-size);\r\n}\r\n\r\nh2 {\r\n @extend %heading;\r\n @include font-size($h2-font-size);\r\n}\r\n\r\nh3 {\r\n @extend %heading;\r\n @include font-size($h3-font-size);\r\n}\r\n\r\nh4 {\r\n @extend %heading;\r\n @include font-size($h4-font-size);\r\n}\r\n\r\nh5 {\r\n @extend %heading;\r\n @include font-size($h5-font-size);\r\n}\r\n\r\nh6 {\r\n @extend %heading;\r\n @include font-size($h6-font-size);\r\n}\r\n\r\n// Reset margins on paragraphs\r\n//\r\n// Similarly, the top margin on `

`s get reset. However, we also reset the\r\n// bottom margin to use `rem` units instead of `em`.\r\n\r\np {\r\n margin-top: 0;\r\n margin-bottom: $paragraph-margin-bottom;\r\n}\r\n\r\n// Abbreviations\r\n//\r\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\r\n// 2. Add explicit cursor to indicate changed behavior.\r\n// 3. Prevent the text-decoration to be skipped.\r\n\r\nabbr[title] {\r\n text-decoration: underline dotted; // 1\r\n cursor: help; // 2\r\n text-decoration-skip-ink: none; // 3\r\n}\r\n\r\n// Address\r\n\r\naddress {\r\n margin-bottom: 1rem;\r\n font-style: normal;\r\n line-height: inherit;\r\n}\r\n\r\n// Lists\r\n\r\nol,\r\nul {\r\n padding-left: 2rem;\r\n}\r\n\r\nol,\r\nul,\r\ndl {\r\n margin-top: 0;\r\n margin-bottom: 1rem;\r\n}\r\n\r\nol ol,\r\nul ul,\r\nol ul,\r\nul ol {\r\n margin-bottom: 0;\r\n}\r\n\r\ndt {\r\n font-weight: $dt-font-weight;\r\n}\r\n\r\n// 1. Undo browser default\r\n\r\ndd {\r\n margin-bottom: 0.5rem;\r\n margin-left: 0; // 1\r\n}\r\n\r\n// Blockquote\r\n\r\nblockquote {\r\n margin: 0 0 1rem;\r\n}\r\n\r\n// Strong\r\n//\r\n// Add the correct font weight in Chrome, Edge, and Safari\r\n\r\nb,\r\nstrong {\r\n font-weight: $font-weight-bolder;\r\n}\r\n\r\n// Small\r\n//\r\n// Add the correct font size in all browsers\r\n\r\nsmall {\r\n @include font-size($small-font-size);\r\n}\r\n\r\n// Mark\r\n\r\nmark {\r\n padding: $mark-padding;\r\n color: var(--#{$prefix}highlight-color);\r\n background-color: var(--#{$prefix}highlight-bg);\r\n}\r\n\r\n// Sub and Sup\r\n//\r\n// Prevent `sub` and `sup` elements from affecting the line height in\r\n// all browsers.\r\n\r\nsub,\r\nsup {\r\n position: relative;\r\n @include font-size($sub-sup-font-size);\r\n line-height: 0;\r\n vertical-align: baseline;\r\n}\r\n\r\nsub {\r\n bottom: -0.25em;\r\n}\r\nsup {\r\n top: -0.5em;\r\n}\r\n\r\n// Links\r\n\r\na {\r\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\r\n text-decoration: $link-decoration;\r\n\r\n &:hover {\r\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\r\n text-decoration: $link-hover-decoration;\r\n }\r\n}\r\n\r\n// And undo these styles for placeholder links/named anchors (without href).\r\n// It would be more straightforward to just use a[href] in previous block, but that\r\n// causes specificity issues in many other styles that are too complex to fix.\r\n// See https://github.com/twbs/bootstrap/issues/19402\r\n\r\na:not([href]):not([class]) {\r\n &,\r\n &:hover {\r\n color: inherit;\r\n text-decoration: none;\r\n }\r\n}\r\n\r\n// Code\r\n\r\npre,\r\ncode,\r\nkbd,\r\nsamp {\r\n font-family: $font-family-code;\r\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\r\n}\r\n\r\n// 1. Remove browser default top margin\r\n// 2. Reset browser default of `1em` to use `rem`s\r\n// 3. Don't allow content to break outside\r\n\r\npre {\r\n display: block;\r\n margin-top: 0; // 1\r\n margin-bottom: 1rem; // 2\r\n overflow: auto; // 3\r\n @include font-size($code-font-size);\r\n color: $pre-color;\r\n\r\n // Account for some code outputs that place code tags in pre tags\r\n code {\r\n @include font-size(inherit);\r\n color: inherit;\r\n word-break: normal;\r\n }\r\n}\r\n\r\ncode {\r\n @include font-size($code-font-size);\r\n color: var(--#{$prefix}code-color);\r\n word-wrap: break-word;\r\n\r\n // Streamline the style when inside anchors to avoid broken underline and more\r\n a > & {\r\n color: inherit;\r\n }\r\n}\r\n\r\nkbd {\r\n padding: $kbd-padding-y $kbd-padding-x;\r\n @include font-size($kbd-font-size);\r\n color: $kbd-color;\r\n background-color: $kbd-bg;\r\n @include border-radius($border-radius-sm);\r\n\r\n kbd {\r\n padding: 0;\r\n @include font-size(1em);\r\n font-weight: $nested-kbd-font-weight;\r\n }\r\n}\r\n\r\n// Figures\r\n//\r\n// Apply a consistent margin strategy (matches our type styles).\r\n\r\nfigure {\r\n margin: 0 0 1rem;\r\n}\r\n\r\n// Images and content\r\n\r\nimg,\r\nsvg {\r\n vertical-align: middle;\r\n}\r\n\r\n// Tables\r\n//\r\n// Prevent double borders\r\n\r\ntable {\r\n caption-side: bottom;\r\n border-collapse: collapse;\r\n}\r\n\r\ncaption {\r\n padding-top: $table-cell-padding-y;\r\n padding-bottom: $table-cell-padding-y;\r\n color: $table-caption-color;\r\n text-align: left;\r\n}\r\n\r\n// 1. Removes font-weight bold by inheriting\r\n// 2. Matches default `` alignment by inheriting `text-align`.\r\n// 3. Fix alignment for Safari\r\n\r\nth {\r\n font-weight: $table-th-font-weight; // 1\r\n text-align: inherit; // 2\r\n text-align: -webkit-match-parent; // 3\r\n}\r\n\r\nthead,\r\ntbody,\r\ntfoot,\r\ntr,\r\ntd,\r\nth {\r\n border-color: inherit;\r\n border-style: solid;\r\n border-width: 0;\r\n}\r\n\r\n// Forms\r\n//\r\n// 1. Allow labels to use `margin` for spacing.\r\n\r\nlabel {\r\n display: inline-block; // 1\r\n}\r\n\r\n// Remove the default `border-radius` that macOS Chrome adds.\r\n// See https://github.com/twbs/bootstrap/issues/24093\r\n\r\nbutton {\r\n // stylelint-disable-next-line property-disallowed-list\r\n border-radius: 0;\r\n}\r\n\r\n// Explicitly remove focus outline in Chromium when it shouldn't be\r\n// visible (e.g. as result of mouse click or touch tap). It already\r\n// should be doing this automatically, but seems to currently be\r\n// confused and applies its very visible two-tone outline anyway.\r\n\r\nbutton:focus:not(:focus-visible) {\r\n outline: 0;\r\n}\r\n\r\n// 1. Remove the margin in Firefox and Safari\r\n\r\ninput,\r\nbutton,\r\nselect,\r\noptgroup,\r\ntextarea {\r\n margin: 0; // 1\r\n font-family: inherit;\r\n @include font-size(inherit);\r\n line-height: inherit;\r\n}\r\n\r\n// Remove the inheritance of text transform in Firefox\r\nbutton,\r\nselect {\r\n text-transform: none;\r\n}\r\n// Set the cursor for non-` - Brand - -

- - - -
- -
- -
- -
- - - - - - - -
- - -
-
- -

Default buttons

-

- Default - Primary - Success - Info - Warning - Danger - Link -

-

Flat buttons

-

- Default - Primary - Success - Info - Warning - Danger - Link -

- -

Raised buttons

-

- Default - Primary - Success - Info - Warning - Danger -

- -

Disabled buttons

-

- Default - Primary - Success - Info - Warning - Danger - Link -

- -

Button groups

- - -

Button sizes

-

- Large button - Default button - Small button - Mini button -

- -

Floating action buttons

-

- - - - - - - -

- -
-
- -

- Block level button -

- - -
-
- Left - Middle - Right -
-
- -
-
-
- 1 - 2 - 3 - 4 -
- -
- 5 - 6 - 7 -
- - -
-
- -
- -
- -
-
-
- - -
-
-
- -
-
- - - -
-
-
-

Heading 1

-

Heading 2

-

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
-

Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

-
-
-
-
-

Example body text

-

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.

-

This line of text is meant to be treated as fine print.

-

The following snippet of text is rendered as bold text.

-

The following snippet of text is rendered as italicized text.

-

An abbreviation of the word attribute is attr.

-
- -
-
-
-

Emphasis classes

-

Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

-

Nullam id dolor id nibh ultricies vehicula ut id elit.

-

Etiam porta sem malesuada magna mollis euismod.

-

Donec ullamcorper nulla non metus auctor fringilla.

-

Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

-

Maecenas sed diam eget risus varius blandit sit amet non magna.

-
- -
-
- - - -
-
-

Blockquotes

-
-
-
-
-
-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

- Someone famous in Source Title -
-
-
-
-
-
-

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.

- Someone famous in Source Title -
-
-
-
-
- - -
- -
-
- -
-
- -
- -

action

-
mdi-action-3d-rotation
-
mdi-action-accessibility
-
mdi-action-account-balance
-
mdi-action-account-balance-wallet
-
mdi-action-account-box
-
mdi-action-account-child
-
mdi-action-account-circle
-
mdi-action-add-shopping-cart
-
mdi-action-alarm
-
mdi-action-alarm-add
-
mdi-action-alarm-off
-
mdi-action-alarm-on
-
mdi-action-android
-
mdi-action-announcement
-
mdi-action-aspect-ratio
-
mdi-action-assessment
-
mdi-action-assignment
-
mdi-action-assignment-ind
-
mdi-action-assignment-late
-
mdi-action-assignment-return
-
mdi-action-assignment-returned
-
mdi-action-assignment-turned-in
-
mdi-action-autorenew
-
mdi-action-backup
-
mdi-action-book
-
mdi-action-bookmark
-
mdi-action-bookmark-outline
-
mdi-action-bug-report
-
mdi-action-cached
-
mdi-action-class
-
mdi-action-credit-card
-
mdi-action-dashboard
-
mdi-action-delete
-
mdi-action-description
-
mdi-action-dns
-
mdi-action-done
-
mdi-action-done-all
-
mdi-action-event
-
mdi-action-exit-to-app
-
mdi-action-explore
-
mdi-action-extension
-
mdi-action-face-unlock
-
mdi-action-favorite
-
mdi-action-favorite-outline
-
mdi-action-find-in-page
-
mdi-action-find-replace
-
mdi-action-flip-to-back
-
mdi-action-flip-to-front
-
mdi-action-get-app
-
mdi-action-grade
-
mdi-action-group-work
-
mdi-action-help
-
mdi-action-highlight-remove
-
mdi-action-history
-
mdi-action-home
-
mdi-action-https
-
mdi-action-info
-
mdi-action-info-outline
-
mdi-action-input
-
mdi-action-invert-colors
-
mdi-action-label
-
mdi-action-label-outline
-
mdi-action-language
-
mdi-action-launch
-
mdi-action-list
-
mdi-action-lock
-
mdi-action-lock-open
-
mdi-action-lock-outline
-
mdi-action-loyalty
-
mdi-action-markunread-mailbox
-
mdi-action-note-add
-
mdi-action-open-in-browser
-
mdi-action-open-in-new
-
mdi-action-open-with
-
mdi-action-pageview
-
mdi-action-payment
-
mdi-action-perm-camera-mic
-
mdi-action-perm-contact-cal
-
mdi-action-perm-data-setting
-
mdi-action-perm-device-info
-
mdi-action-perm-identity
-
mdi-action-perm-media
-
mdi-action-perm-phone-msg
-
mdi-action-perm-scan-wifi
-
mdi-action-picture-in-picture
-
mdi-action-polymer
-
mdi-action-print
-
mdi-action-query-builder
-
mdi-action-question-answer
-
mdi-action-receipt
-
mdi-action-redeem
-
mdi-action-report-problem
-
mdi-action-restore
-
mdi-action-room
-
mdi-action-schedule
-
mdi-action-search
-
mdi-action-settings
-
mdi-action-settings-applications
-
mdi-action-settings-backup-restore
-
mdi-action-settings-bluetooth
-
mdi-action-settings-cell
-
mdi-action-settings-display
-
mdi-action-settings-ethernet
-
mdi-action-settings-input-antenna
-
mdi-action-settings-input-component
-
mdi-action-settings-input-composite
-
mdi-action-settings-input-hdmi
-
mdi-action-settings-input-svideo
-
mdi-action-settings-overscan
-
mdi-action-settings-phone
-
mdi-action-settings-power
-
mdi-action-settings-remote
-
mdi-action-settings-voice
-
mdi-action-shop
-
mdi-action-shop-two
-
mdi-action-shopping-basket
-
mdi-action-shopping-cart
-
mdi-action-speaker-notes
-
mdi-action-spellcheck
-
mdi-action-star-rate
-
mdi-action-stars
-
mdi-action-store
-
mdi-action-subject
-
mdi-action-swap-horiz
-
mdi-action-swap-vert
-
mdi-action-swap-vert-circle
-
mdi-action-system-update-tv
-
mdi-action-tab
-
mdi-action-tab-unselected
-
mdi-action-theaters
-
mdi-action-thumb-down
-
mdi-action-thumb-up
-
mdi-action-thumbs-up-down
-
mdi-action-toc
-
mdi-action-today
-
mdi-action-track-changes
-
mdi-action-translate
-
mdi-action-trending-down
-
mdi-action-trending-neutral
-
mdi-action-trending-up
-
mdi-action-turned-in
-
mdi-action-turned-in-not
-
mdi-action-verified-user
-
mdi-action-view-agenda
-
mdi-action-view-array
-
mdi-action-view-carousel
-
mdi-action-view-column
-
mdi-action-view-day
-
mdi-action-view-headline
-
mdi-action-view-list
-
mdi-action-view-module
-
mdi-action-view-quilt
-
mdi-action-view-stream
-
mdi-action-view-week
-
mdi-action-visibility
-
mdi-action-visibility-off
-
mdi-action-wallet-giftcard
-
mdi-action-wallet-membership
-
mdi-action-wallet-travel
-
mdi-action-work
- -

alert

- -
mdi-alert-error
-
mdi-alert-warning
- - -

av

- -
mdi-av-album
-
mdi-av-timer
-
mdi-av-closed-caption
-
mdi-av-equalizer
-
mdi-av-explicit
-
mdi-av-fast-forward
-
mdi-av-fast-rewind
-
mdi-av-games
-
mdi-av-hearing
-
mdi-av-high-quality
-
mdi-av-loop
-
mdi-av-mic
-
mdi-av-mic-none
-
mdi-av-mic-off
-
mdi-av-movie
-
mdi-av-my-library-add
-
mdi-av-my-library-books
-
mdi-av-my-library-music
-
mdi-av-new-releases
-
mdi-av-not-interested
-
mdi-av-pause
-
mdi-av-pause-circle-fill
-
mdi-av-pause-circle-outline
-
mdi-av-play-arrow
-
mdi-av-play-circle-fill
-
mdi-av-play-circle-outline
-
mdi-av-play-shopping-bag
-
mdi-av-playlist-add
-
mdi-av-queue
-
mdi-av-queue-music
-
mdi-av-radio
-
mdi-av-recent-actors
-
mdi-av-repeat
-
mdi-av-repeat-one
-
mdi-av-replay
-
mdi-av-shuffle
-
mdi-av-skip-next
-
mdi-av-skip-previous
-
mdi-av-snooze
-
mdi-av-stop
-
mdi-av-subtitles
-
mdi-av-surround-sound
-
mdi-av-video-collection
-
mdi-av-videocam
-
mdi-av-videocam-off
-
mdi-av-volume-down
-
mdi-av-volume-mute
-
mdi-av-volume-off
-
mdi-av-volume-up
-
mdi-av-web
- - -

communication

- -
mdi-communication-business
-
mdi-communication-call
-
mdi-communication-call-end
-
mdi-communication-call-made
-
mdi-communication-call-merge
-
mdi-communication-call-missed
-
mdi-communication-call-received
-
mdi-communication-call-split
-
mdi-communication-chat
-
mdi-communication-clear-all
-
mdi-communication-comment
-
mdi-communication-contacts
-
mdi-communication-dialer-sip
-
mdi-communication-dialpad
-
mdi-communication-dnd-on
-
mdi-communication-email
-
mdi-communication-forum
-
mdi-communication-import-export
-
mdi-communication-invert-colors-off
-
mdi-communication-invert-colors-on
-
mdi-communication-live-help
-
mdi-communication-location-off
-
mdi-communication-location-on
-
mdi-communication-message
-
mdi-communication-messenger
-
mdi-communication-no-sim
-
mdi-communication-phone
-
mdi-communication-portable-wifi-off
-
mdi-communication-quick-contacts-dialer
-
mdi-communication-quick-contacts-mail
-
mdi-communication-ring-volume
-
mdi-communication-stay-current-landscape
-
mdi-communication-stay-current-portrait
-
mdi-communication-stay-primary-landscape
-
mdi-communication-stay-primary-portrait
-
mdi-communication-swap-calls
-
mdi-communication-textsms
-
mdi-communication-voicemail
-
mdi-communication-vpn-key
- - -

content

- -
mdi-content-add
-
mdi-content-add-box
-
mdi-content-add-circle
-
mdi-content-add-circle-outline
-
mdi-content-archive
-
mdi-content-backspace
-
mdi-content-block
-
mdi-content-clear
-
mdi-content-content-copy
-
mdi-content-content-cut
-
mdi-content-content-paste
-
mdi-content-create
-
mdi-content-drafts
-
mdi-content-filter-list
-
mdi-content-flag
-
mdi-content-forward
-
mdi-content-gesture
-
mdi-content-inbox
-
mdi-content-link
-
mdi-content-mail
-
mdi-content-markunread
-
mdi-content-redo
-
mdi-content-remove
-
mdi-content-remove-circle
-
mdi-content-remove-circle-outline
-
mdi-content-reply
-
mdi-content-reply-all
-
mdi-content-report
-
mdi-content-save
-
mdi-content-select-all
-
mdi-content-send
-
mdi-content-sort
-
mdi-content-text-format
-
mdi-content-undo
- - -

device

- -
mdi-device-access-alarm
-
mdi-device-access-alarms
-
mdi-device-access-time
-
mdi-device-add-alarm
-
mdi-device-airplanemode-off
-
mdi-device-airplanemode-on
-
mdi-device-battery-20
-
mdi-device-battery-30
-
mdi-device-battery-50
-
mdi-device-battery-60
-
mdi-device-battery-80
-
mdi-device-battery-90
-
mdi-device-battery-alert
-
mdi-device-battery-charging-20
-
mdi-device-battery-charging-30
-
mdi-device-battery-charging-50
-
mdi-device-battery-charging-60
-
mdi-device-battery-charging-80
-
mdi-device-battery-charging-90
-
mdi-device-battery-charging-full
-
mdi-device-battery-full
-
mdi-device-battery-std
-
mdi-device-battery-unknown
-
mdi-device-bluetooth
-
mdi-device-bluetooth-connected
-
mdi-device-bluetooth-disabled
-
mdi-device-bluetooth-searching
-
mdi-device-brightness-auto
-
mdi-device-brightness-high
-
mdi-device-brightness-low
-
mdi-device-brightness-medium
-
mdi-device-data-usage
-
mdi-device-developer-mode
-
mdi-device-devices
-
mdi-device-dvr
-
mdi-device-gps-fixed
-
mdi-device-gps-not-fixed
-
mdi-device-gps-off
-
mdi-device-location-disabled
-
mdi-device-location-searching
-
mdi-device-multitrack-audio
-
mdi-device-network-cell
-
mdi-device-network-wifi
-
mdi-device-nfc
-
mdi-device-now-wallpaper
-
mdi-device-now-widgets
-
mdi-device-screen-lock-landscape
-
mdi-device-screen-lock-portrait
-
mdi-device-screen-lock-rotation
-
mdi-device-screen-rotation
-
mdi-device-sd-storage
-
mdi-device-settings-system-daydream
-
mdi-device-signal-cellular-0-bar
-
mdi-device-signal-cellular-1-bar
-
mdi-device-signal-cellular-2-bar
-
mdi-device-signal-cellular-3-bar
-
mdi-device-signal-cellular-4-bar
-
mdi-device-signal-cellular-connected-no-internet-0-bar
-
mdi-device-signal-cellular-connected-no-internet-1-bar
-
mdi-device-signal-cellular-connected-no-internet-2-bar
-
mdi-device-signal-cellular-connected-no-internet-3-bar
-
mdi-device-signal-cellular-connected-no-internet-4-bar
-
mdi-device-signal-cellular-no-sim
-
mdi-device-signal-cellular-null
-
mdi-device-signal-cellular-off
-
mdi-device-signal-wifi-0-bar
-
mdi-device-signal-wifi-1-bar
-
mdi-device-signal-wifi-2-bar
-
mdi-device-signal-wifi-3-bar
-
mdi-device-signal-wifi-4-bar
-
mdi-device-signal-wifi-off
-
mdi-device-storage
-
mdi-device-usb
-
mdi-device-wifi-lock
-
mdi-device-wifi-tethering
- -

editor

- -
mdi-editor-attach-file
-
mdi-editor-attach-money
-
mdi-editor-border-all
-
mdi-editor-border-bottom
-
mdi-editor-border-clear
-
mdi-editor-border-color
-
mdi-editor-border-horizontal
-
mdi-editor-border-inner
-
mdi-editor-border-left
-
mdi-editor-border-outer
-
mdi-editor-border-right
-
mdi-editor-border-style
-
mdi-editor-border-top
-
mdi-editor-border-vertical
-
mdi-editor-format-align-center
-
mdi-editor-format-align-justify
-
mdi-editor-format-align-left
-
mdi-editor-format-align-right
-
mdi-editor-format-bold
-
mdi-editor-format-clear
-
mdi-editor-format-color-fill
-
mdi-editor-format-color-reset
-
mdi-editor-format-color-text
-
mdi-editor-format-indent-decrease
-
mdi-editor-format-indent-increase
-
mdi-editor-format-italic
-
mdi-editor-format-line-spacing
-
mdi-editor-format-list-bulleted
-
mdi-editor-format-list-numbered
-
mdi-editor-format-paint
-
mdi-editor-format-quote
-
mdi-editor-format-size
-
mdi-editor-format-strikethrough
-
mdi-editor-format-textdirection-l-to-r
-
mdi-editor-format-textdirection-r-to-l
-
mdi-editor-format-underline
-
mdi-editor-functions
-
mdi-editor-insert-chart
-
mdi-editor-insert-comment
-
mdi-editor-insert-drive-file
-
mdi-editor-insert-emoticon
-
mdi-editor-insert-invitation
-
mdi-editor-insert-link
-
mdi-editor-insert-photo
-
mdi-editor-merge-type
-
mdi-editor-mode-comment
-
mdi-editor-mode-edit
-
mdi-editor-publish
-
mdi-editor-vertical-align-bottom
-
mdi-editor-vertical-align-center
-
mdi-editor-vertical-align-top
-
mdi-editor-wrap-text
- - -

file

- -
mdi-file-attachment
-
mdi-file-cloud
-
mdi-file-cloud-circle
-
mdi-file-cloud-done
-
mdi-file-cloud-download
-
mdi-file-cloud-off
-
mdi-file-cloud-queue
-
mdi-file-cloud-upload
-
mdi-file-file-download
-
mdi-file-file-upload
-
mdi-file-folder
-
mdi-file-folder-open
-
mdi-file-folder-shared
- - -

hardware

- -
mdi-hardware-cast
-
mdi-hardware-cast-connected
-
mdi-hardware-computer
-
mdi-hardware-desktop-mac
-
mdi-hardware-desktop-windows
-
mdi-hardware-dock
-
mdi-hardware-gamepad
-
mdi-hardware-headset
-
mdi-hardware-headset-mic
-
mdi-hardware-keyboard
-
mdi-hardware-keyboard-alt
-
mdi-hardware-keyboard-arrow-down
-
mdi-hardware-keyboard-arrow-left
-
mdi-hardware-keyboard-arrow-right
-
mdi-hardware-keyboard-arrow-up
-
mdi-hardware-keyboard-backspace
-
mdi-hardware-keyboard-capslock
-
mdi-hardware-keyboard-control
-
mdi-hardware-keyboard-hide
-
mdi-hardware-keyboard-return
-
mdi-hardware-keyboard-tab
-
mdi-hardware-keyboard-voice
-
mdi-hardware-laptop
-
mdi-hardware-laptop-chromebook
-
mdi-hardware-laptop-mac
-
mdi-hardware-laptop-windows
-
mdi-hardware-memory
-
mdi-hardware-mouse
-
mdi-hardware-phone-android
-
mdi-hardware-phone-iphone
-
mdi-hardware-phonelink
-
mdi-hardware-phonelink-off
-
mdi-hardware-security
-
mdi-hardware-sim-card
-
mdi-hardware-smartphone
-
mdi-hardware-speaker
-
mdi-hardware-tablet
-
mdi-hardware-tablet-android
-
mdi-hardware-tablet-mac
-
mdi-hardware-tv
-
mdi-hardware-watch
- - -

image

- -
mdi-image-add-to-photos
-
mdi-image-adjust
-
mdi-image-assistant-photo
-
mdi-image-audiotrack
-
mdi-image-blur-circular
-
mdi-image-blur-linear
-
mdi-image-blur-off
-
mdi-image-blur-on
-
mdi-image-brightness-1
-
mdi-image-brightness-2
-
mdi-image-brightness-3
-
mdi-image-brightness-4
-
mdi-image-brightness-5
-
mdi-image-brightness-6
-
mdi-image-brightness-7
-
mdi-image-brush
-
mdi-image-camera
-
mdi-image-camera-alt
-
mdi-image-camera-front
-
mdi-image-camera-rear
-
mdi-image-camera-roll
-
mdi-image-center-focus-strong
-
mdi-image-center-focus-weak
-
mdi-image-collections
-
mdi-image-color-lens
-
mdi-image-colorize
-
mdi-image-compare
-
mdi-image-control-point
-
mdi-image-control-point-duplicate
-
mdi-image-crop-16-9
-
mdi-image-crop
-
mdi-image-crop-3-2
-
mdi-image-crop-5-4
-
mdi-image-crop-7-5
-
mdi-image-crop-din
-
mdi-image-crop-free
-
mdi-image-crop-landscape
-
mdi-image-crop-original
-
mdi-image-crop-portrait
-
mdi-image-crop-square
-
mdi-image-dehaze
-
mdi-image-details
-
mdi-image-edit
-
mdi-image-exposure
-
mdi-image-exposure-minus-1
-
mdi-image-exposure-minus-2
-
mdi-image-exposure-plus-1
-
mdi-image-exposure-plus-2
-
mdi-image-exposure-zero
-
mdi-image-filter-1
-
mdi-image-filter
-
mdi-image-filter-2
-
mdi-image-filter-3
-
mdi-image-filter-4
-
mdi-image-filter-5
-
mdi-image-filter-6
-
mdi-image-filter-7
-
mdi-image-filter-8
-
mdi-image-filter-9
-
mdi-image-filter-9-plus
-
mdi-image-filter-b-and-w
-
mdi-image-filter-center-focus
-
mdi-image-filter-drama
-
mdi-image-filter-frames
-
mdi-image-filter-hdr
-
mdi-image-filter-none
-
mdi-image-filter-tilt-shift
-
mdi-image-filter-vintage
-
mdi-image-flare
-
mdi-image-flash-auto
-
mdi-image-flash-off
-
mdi-image-flash-on
-
mdi-image-flip
-
mdi-image-gradient
-
mdi-image-grain
-
mdi-image-grid-off
-
mdi-image-grid-on
-
mdi-image-hdr-off
-
mdi-image-hdr-on
-
mdi-image-hdr-strong
-
mdi-image-hdr-weak
-
mdi-image-healing
-
mdi-image-image
-
mdi-image-image-aspect-ratio
-
mdi-image-iso
-
mdi-image-landscape
-
mdi-image-leak-add
-
mdi-image-leak-remove
-
mdi-image-lens
-
mdi-image-looks
-
mdi-image-looks-3
-
mdi-image-looks-4
-
mdi-image-looks-5
-
mdi-image-looks-6
-
mdi-image-looks-one
-
mdi-image-looks-two
-
mdi-image-loupe
-
mdi-image-movie-creation
-
mdi-image-nature
-
mdi-image-nature-people
-
mdi-image-navigate-before
-
mdi-image-navigate-next
-
mdi-image-palette
-
mdi-image-panorama
-
mdi-image-panorama-fisheye
-
mdi-image-panorama-horizontal
-
mdi-image-panorama-vertical
-
mdi-image-panorama-wide-angle
-
mdi-image-photo
-
mdi-image-photo-album
-
mdi-image-photo-camera
-
mdi-image-photo-library
-
mdi-image-portrait
-
mdi-image-remove-red-eye
-
mdi-image-rotate-left
-
mdi-image-rotate-right
-
mdi-image-slideshow
-
mdi-image-straighten
-
mdi-image-style
-
mdi-image-switch-camera
-
mdi-image-switch-video
-
mdi-image-tag-faces
-
mdi-image-texture
-
mdi-image-timelapse
-
mdi-image-timer-10
-
mdi-image-timer
-
mdi-image-timer-3
-
mdi-image-timer-auto
-
mdi-image-timer-off
-
mdi-image-tonality
-
mdi-image-transform
-
mdi-image-tune
-
mdi-image-wb-auto
-
mdi-image-wb-cloudy
-
mdi-image-wb-incandescent
-
mdi-image-wb-irradescent
-
mdi-image-wb-sunny
- - -

maps

- -
mdi-maps-beenhere
-
mdi-maps-directions
-
mdi-maps-directions-bike
-
mdi-maps-directions-bus
-
mdi-maps-directions-car
-
mdi-maps-directions-ferry
-
mdi-maps-directions-subway
-
mdi-maps-directions-train
-
mdi-maps-directions-transit
-
mdi-maps-directions-walk
-
mdi-maps-flight
-
mdi-maps-hotel
-
mdi-maps-layers
-
mdi-maps-layers-clear
-
mdi-maps-local-airport
-
mdi-maps-local-atm
-
mdi-maps-local-attraction
-
mdi-maps-local-bar
-
mdi-maps-local-cafe
-
mdi-maps-local-car-wash
-
mdi-maps-local-convenience-store
-
mdi-maps-local-drink
-
mdi-maps-local-florist
-
mdi-maps-local-gas-station
-
mdi-maps-local-grocery-store
-
mdi-maps-local-hospital
-
mdi-maps-local-hotel
-
mdi-maps-local-laundry-service
-
mdi-maps-local-library
-
mdi-maps-local-mall
-
mdi-maps-local-movies
-
mdi-maps-local-offer
-
mdi-maps-local-parking
-
mdi-maps-local-pharmacy
-
mdi-maps-local-phone
-
mdi-maps-local-pizza
-
mdi-maps-local-play
-
mdi-maps-local-post-office
-
mdi-maps-local-print-shop
-
mdi-maps-local-restaurant
-
mdi-maps-local-see
-
mdi-maps-local-shipping
-
mdi-maps-local-taxi
-
mdi-maps-location-history
-
mdi-maps-map
-
mdi-maps-my-location
-
mdi-maps-navigation
-
mdi-maps-pin-drop
-
mdi-maps-place
-
mdi-maps-rate-review
-
mdi-maps-restaurant-menu
-
mdi-maps-satellite
-
mdi-maps-store-mall-directory
-
mdi-maps-terrain
-
mdi-maps-traffic
- - -

navigation

- -
mdi-navigation-apps
-
mdi-navigation-arrow-back
-
mdi-navigation-arrow-drop-down
-
mdi-navigation-arrow-drop-down-circle
-
mdi-navigation-arrow-drop-up
-
mdi-navigation-arrow-forward
-
mdi-navigation-cancel
-
mdi-navigation-check
-
mdi-navigation-chevron-left
-
mdi-navigation-chevron-right
-
mdi-navigation-close
-
mdi-navigation-expand-less
-
mdi-navigation-expand-more
-
mdi-navigation-fullscreen
-
mdi-navigation-fullscreen-exit
-
mdi-navigation-menu
-
mdi-navigation-more-horiz
-
mdi-navigation-more-vert
-
mdi-navigation-refresh
-
mdi-navigation-unfold-less
-
mdi-navigation-unfold-more
- - -

notification

- -
mdi-notification-adb
-
mdi-notification-bluetooth-audio
-
mdi-notification-disc-full
-
mdi-notification-dnd-forwardslash
-
mdi-notification-do-not-disturb
-
mdi-notification-drive-eta
-
mdi-notification-event-available
-
mdi-notification-event-busy
-
mdi-notification-event-note
-
mdi-notification-folder-special
-
mdi-notification-mms
-
mdi-notification-more
-
mdi-notification-network-locked
-
mdi-notification-phone-bluetooth-speaker
-
mdi-notification-phone-forwarded
-
mdi-notification-phone-in-talk
-
mdi-notification-phone-locked
-
mdi-notification-phone-missed
-
mdi-notification-phone-paused
-
mdi-notification-play-download
-
mdi-notification-play-install
-
mdi-notification-sd-card
-
mdi-notification-sim-card-alert
-
mdi-notification-sms
-
mdi-notification-sms-failed
-
mdi-notification-sync
-
mdi-notification-sync-disabled
-
mdi-notification-sync-problem
-
mdi-notification-system-update
-
mdi-notification-tap-and-play
-
mdi-notification-time-to-leave
-
mdi-notification-vibration
-
mdi-notification-voice-chat
-
mdi-notification-vpn-lock
- - -

social

- -
mdi-social-cake
-
mdi-social-domain
-
mdi-social-group
-
mdi-social-group-add
-
mdi-social-location-city
-
mdi-social-mood
-
mdi-social-notifications
-
mdi-social-notifications-none
-
mdi-social-notifications-off
-
mdi-social-notifications-on
-
mdi-social-notifications-paused
-
mdi-social-pages
-
mdi-social-party-mode
-
mdi-social-people
-
mdi-social-people-outline
-
mdi-social-person
-
mdi-social-person-add
-
mdi-social-person-outline
-
mdi-social-plus-one
-
mdi-social-poll
-
mdi-social-public
-
mdi-social-school
-
mdi-social-share
-
mdi-social-whatshot
- - -

toggle

- -
mdi-toggle-check-box
-
mdi-toggle-check-box-outline-blank
-
mdi-toggle-radio-button-off
-
mdi-toggle-radio-button-on
- -
-
- - - -
- -
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#Column headingColumn headingColumn heading
1Column contentColumn contentColumn content
2Column contentColumn contentColumn content
3Column contentColumn contentColumn content
4Column contentColumn contentColumn content
5Column contentColumn contentColumn content
6Column contentColumn contentColumn content
7Column contentColumn contentColumn content
-
-
-
-
- - -
-
-
- -
-
- -
-
-
-
-
- Legend -
- -
- -
-
-
- -
- -
- -
-
-
-
- -
- - -
-
-
- -
- - A longer block of help text that breaks onto a new line and may extend beyond one line. -
-
-
- -
-
- -
-
- -
-
-
-
- -
- -
- -
-
-
-
- - -
-
-
-
-
-
-
- -
-
- -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- -
- $ - - - - -
-
-
- -
-
-
- - -
- -
-
- -
-
- -
-
- -
- -
-
-

Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.

-
-
-

Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit.

-
- - -
-
-
- -
- -
- - - - - -
- -
-
- - -
-
-

Pagination

-
- - - - - -
-
-
-

Pager

-
- - - -
-
-
- -
-
-
- - -
- -
-
- -
-
- -
-
-

Alerts

-
-
- -

Warning!

-

Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

-
-
-
-
-
-
-
-
- - Oh snap! Change a few things up and try submitting again. -
-
-
-
-
-
- - Well done! You successfully read this important alert message. -
-
-
-
-
-
- - Heads up! This alert needs your attention, but it's not super important. -
-
-
-
-
-
-

Labels

-
- Default - Primary - Success - Warning - Danger - Info -
-
-
-

Badges

- -
-
-
- - -
- -
-
- - -

Basic

-
-
-
-
-
- -

Contextual alternatives

-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -

Striped

-
-
-
-
- -
-
-
- -
-
-
- -
-
-
-
- -

Animated

-
-
-
-
-
- -

Stacked

-
-
-
-
-
-
-
-
-
-
- - - -
-
-
- -
-
-
-
-
-

Read more about noUiSlider here.

-
-
-
- - -
- -
-
- -
-
-

Jumbotron

-

This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.

-

Learn more

-
-
-
-
- - -
-
-

List groups

-
-
-
-
-
-
-
-
- -
-
-
15m
-

Tile with a label

-

Donec id elit non mi porta gravida at eget metus.

-
-
-
-
-
- -
-
-
10m
-

Tile with a label

-

Maecenas sed diam eget risus varius blandit.

-
-
-
-
-
- -
-
-
8m
-

Tile with a label

-

Maecenas sed diam eget risus varius blandit.

-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-

Tile with an icon

-

Donec id elit non mi porta gravida at eget metus.

-
-
-
-
-
- -
-
-
-

Tile with an icon

-

Maecenas sed diam eget risus varius blandit.

-
-
-
-
-
- -
-
-
-

Tile with an icon

-

Maecenas sed diam eget risus varius blandit.

-
-
-
-
-
-
-
-
-
-
-
- icon -
-
-

Tile with avatar

-

Donec id elit non mi porta gravida at eget metus

-
-
-
-
-
- icon -
-
-

Tile with another avatar

-

Maecenas sed diam eget risus varius blandit.

-
-
-
-
-
- -
-
-

Tile with a checkbox in it

-

Donec id elit non mi risus varius blandit.

-
-
-
-
-
-
-
- - -
-
-

Panels

-
-
-
-
-
-
-
- Basic panel -
-
- -
-
Panel heading
-
- Panel content -
-
- -
-
- Panel content -
- -
-
-
-
-
-
-
-

Panel primary

-
-
- Panel content -
-
- -
-
-

Panel success

-
-
- Panel content -
-
- -
-
-

Panel warning

-
-
- Panel content -
-
-
-
-
-
-
-
-

Panel danger

-
-
- Panel content -
-
- -
-
-

Panel info

-
-
- Panel content -
-
-
-
-
- -
-
-

Wells

-
-
-
-
-
-
- Look, I'm in a well! -
-
-
-
-
-
- Look, I'm in a small well! -
-
-
-
-
-
- Look, I'm in a large well! -
-
-
-
-
- - -
- -
-
- -
-
-
-
-

Modals

-
- -
-
-
-

Popovers

-
- - - - - - - -
-

Tooltips

-
- - - - - - - -
-
-
-
-
-

Snackbars and toasts (with SnackbarJS)

-

SnackbarJS is the ad-hoc developed plugin to create snackbars and toasts, read more about it on the official page of the project.

-
- - - -
-
-
-
- - + + + + + + Material Design for Bootstrap + + + + + + + + + + + +
+
+
+ +
Thank you for using our product. We're glad you're with us.
+

MDB Team

+ Start MDB tutorial
-
- - - - - - - - - - - - +
+
+ + + + + + + diff --git a/js/mdb.es.min.js b/js/mdb.es.min.js new file mode 100644 index 000000000..80df72aec --- /dev/null +++ b/js/mdb.es.min.js @@ -0,0 +1,7810 @@ +var __defProp = Object.defineProperty; +var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; +var __publicField = (obj, key, value) => { + __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); + return value; +}; +const mapData = (() => { + const storeData = {}; + let id = 1; + return { + set(element2, key, data) { + if (typeof element2[key] === "undefined") { + element2[key] = { + key, + id + }; + id++; + } + storeData[element2[key].id] = data; + }, + get(element2, key) { + if (!element2 || typeof element2[key] === "undefined") { + return null; + } + const keyProperties = element2[key]; + if (keyProperties.key === key) { + return storeData[keyProperties.id]; + } + return null; + }, + delete(element2, key) { + if (typeof element2[key] === "undefined") { + return; + } + const keyProperties = element2[key]; + if (keyProperties.key === key) { + delete storeData[keyProperties.id]; + delete element2[key]; + } + } + }; +})(); +const Data$1 = { + setData(instance, key, data) { + mapData.set(instance, key, data); + }, + getData(instance, key) { + return mapData.get(instance, key); + }, + removeData(instance, key) { + mapData.delete(instance, key); + } +}; +const toType$1 = (obj) => { + if (obj === null || obj === void 0) { + return `${obj}`; + } + return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); +}; +const getSelector$1 = (element2) => { + let selector = element2.getAttribute("data-mdb-target"); + if (!selector || selector === "#") { + const hrefAttr = element2.getAttribute("href"); + selector = hrefAttr && hrefAttr !== "#" ? hrefAttr.trim() : null; + } + return selector; +}; +const getSelectorFromElement = (element2) => { + const selector = getSelector$1(element2); + if (selector) { + return document.querySelector(selector) ? selector : null; + } + return null; +}; +const getElementFromSelector = (element2) => { + const selector = getSelector$1(element2); + return selector ? document.querySelector(selector) : null; +}; +const isElement$2 = (obj) => { + if (!obj || typeof obj !== "object") { + return false; + } + if (typeof obj.jquery !== "undefined") { + obj = obj[0]; + } + return typeof obj.nodeType !== "undefined"; +}; +const getElement$1 = (obj) => { + if (isElement$2(obj)) { + return obj.jquery ? obj[0] : obj; + } + if (typeof obj === "string" && obj.length > 0) { + return document.querySelector(obj); + } + return null; +}; +const typeCheckConfig = (componentName, config, configTypes) => { + Object.keys(configTypes).forEach((property) => { + const expectedTypes = configTypes[property]; + const value = config[property]; + const valueType = value && isElement$2(value) ? "element" : toType$1(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new Error( + `${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".` + ); + } + }); +}; +const isVisible$1 = (element2) => { + if (!element2) { + return false; + } + if (element2.style && element2.parentNode && element2.parentNode.style) { + const elementStyle = getComputedStyle(element2); + const parentNodeStyle = getComputedStyle(element2.parentNode); + return elementStyle.display !== "none" && parentNodeStyle.display !== "none" && elementStyle.visibility !== "hidden"; + } + return false; +}; +const isDisabled$1 = (element2) => { + if (!element2 || element2.nodeType !== Node.ELEMENT_NODE) { + return true; + } + if (element2.classList.contains("disabled")) { + return true; + } + if (typeof element2.disabled !== "undefined") { + return element2.disabled; + } + return element2.hasAttribute("disabled") && element2.getAttribute("disabled") !== "false"; +}; +const getjQuery$1 = () => { + const { jQuery } = window; + if (jQuery && !document.body.hasAttribute("data-mdb-no-jquery")) { + return jQuery; + } + return null; +}; +const onDOMContentLoaded = (callback) => { + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", callback); + } else { + callback(); + } +}; +document.documentElement.dir === "rtl"; +const element = (tag) => { + return document.createElement(tag); +}; +const defineJQueryPlugin = (plugin) => { + onDOMContentLoaded(() => { + const $2 = getjQuery$1(); + if ($2) { + const name = plugin.NAME; + const JQUERY_NO_CONFLICT = $2.fn[name]; + $2.fn[name] = plugin.jQueryInterface; + $2.fn[name].Constructor = plugin; + $2.fn[name].noConflict = () => { + $2.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); +}; +const $ = getjQuery$1(); +const namespaceRegex$1 = /[^.]*(?=\..*)\.|.*/; +const stripNameRegex$1 = /\..*/; +const stripUidRegex$1 = /::\d+$/; +const eventRegistry$1 = {}; +let uidEvent$1 = 1; +const customEvents$1 = { + mouseenter: "mouseover", + mouseleave: "mouseout" +}; +const nativeEvents$1 = [ + "click", + "dblclick", + "mouseup", + "mousedown", + "contextmenu", + "mousewheel", + "DOMMouseScroll", + "mouseover", + "mouseout", + "mousemove", + "selectstart", + "selectend", + "keydown", + "keypress", + "keyup", + "orientationchange", + "touchstart", + "touchmove", + "touchend", + "touchcancel", + "pointerdown", + "pointermove", + "pointerup", + "pointerleave", + "pointercancel", + "gesturestart", + "gesturechange", + "gestureend", + "focus", + "blur", + "change", + "reset", + "select", + "submit", + "focusin", + "focusout", + "load", + "unload", + "beforeunload", + "resize", + "move", + "DOMContentLoaded", + "readystatechange", + "error", + "abort", + "scroll" +]; +function getUidEvent(element2, uid) { + return uid && `${uid}::${uidEvent$1++}` || element2.uidEvent || uidEvent$1++; +} +function getEvent(element2) { + const uid = getUidEvent(element2); + element2.uidEvent = uid; + eventRegistry$1[uid] = eventRegistry$1[uid] || {}; + return eventRegistry$1[uid]; +} +function bootstrapHandler$1(element2, fn2) { + return function handler(event) { + event.delegateTarget = element2; + if (handler.oneOff) { + EventHandler$1.off(element2, event.type, fn2); + } + return fn2.apply(element2, [event]); + }; +} +function bootstrapDelegationHandler$1(element2, selector, fn2) { + return function handler(event) { + const domElements = element2.querySelectorAll(selector); + for (let { target } = event; target && target !== this; target = target.parentNode) { + for (let i = domElements.length; i--; "") { + if (domElements[i] === target) { + event.delegateTarget = target; + if (handler.oneOff) { + EventHandler$1.off(element2, event.type, fn2); + } + return fn2.apply(target, [event]); + } + } + } + return null; + }; +} +function findHandler$1(events, handler, delegationSelector = null) { + const uidEventList = Object.keys(events); + for (let i = 0, len = uidEventList.length; i < len; i++) { + const event = events[uidEventList[i]]; + if (event.originalHandler === handler && event.delegationSelector === delegationSelector) { + return event; + } + } + return null; +} +function normalizeParams(originalTypeEvent, handler, delegationFn) { + const delegation = typeof handler === "string"; + const originalHandler = delegation ? delegationFn : handler; + let typeEvent = originalTypeEvent.replace(stripNameRegex$1, ""); + const custom = customEvents$1[typeEvent]; + if (custom) { + typeEvent = custom; + } + const isNative = nativeEvents$1.indexOf(typeEvent) > -1; + if (!isNative) { + typeEvent = originalTypeEvent; + } + return [delegation, originalHandler, typeEvent]; +} +function addHandler$1(element2, originalTypeEvent, handler, delegationFn, oneOff) { + if (typeof originalTypeEvent !== "string" || !element2) { + return; + } + if (!handler) { + handler = delegationFn; + delegationFn = null; + } + const [delegation, originalHandler, typeEvent] = normalizeParams( + originalTypeEvent, + handler, + delegationFn + ); + const events = getEvent(element2); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFn = findHandler$1(handlers, originalHandler, delegation ? handler : null); + if (previousFn) { + previousFn.oneOff = previousFn.oneOff && oneOff; + return; + } + const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex$1, "")); + const fn2 = delegation ? bootstrapDelegationHandler$1(element2, handler, delegationFn) : bootstrapHandler$1(element2, handler); + fn2.delegationSelector = delegation ? handler : null; + fn2.originalHandler = originalHandler; + fn2.oneOff = oneOff; + fn2.uidEvent = uid; + handlers[uid] = fn2; + element2.addEventListener(typeEvent, fn2, delegation); +} +function removeHandler$1(element2, events, typeEvent, handler, delegationSelector) { + const fn2 = findHandler$1(events[typeEvent], handler, delegationSelector); + if (!fn2) { + return; + } + element2.removeEventListener(typeEvent, fn2, Boolean(delegationSelector)); + delete events[typeEvent][fn2.uidEvent]; +} +function removeNamespacedHandlers$1(element2, events, typeEvent, namespace) { + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach((handlerKey) => { + if (handlerKey.indexOf(namespace) > -1) { + const event = storeElementEvent[handlerKey]; + removeHandler$1(element2, events, typeEvent, event.originalHandler, event.delegationSelector); + } + }); +} +const EventHandler$1 = { + on(element2, event, handler, delegationFn) { + addHandler$1(element2, event, handler, delegationFn, false); + }, + one(element2, event, handler, delegationFn) { + addHandler$1(element2, event, handler, delegationFn, true); + }, + extend(element2, events, componentName) { + events.forEach((event) => { + EventHandler$1.on(element2, `${event.name}.bs.${componentName}`, (e) => { + const eventParameters = {}; + if (event.parametersToCopy) { + event.parametersToCopy.forEach((param) => { + eventParameters[param] = e[param]; + }); + } + const mdbEvent = EventHandler$1.trigger( + element2, + `${event.name}.mdb.${componentName}`, + eventParameters + ); + if (mdbEvent.defaultPrevented) { + e.preventDefault(); + } + }); + }); + }, + off(element2, originalTypeEvent, handler, delegationFn) { + if (typeof originalTypeEvent !== "string" || !element2) { + return; + } + const [delegation, originalHandler, typeEvent] = normalizeParams( + originalTypeEvent, + handler, + delegationFn + ); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getEvent(element2); + const isNamespace = originalTypeEvent.charAt(0) === "."; + if (typeof originalHandler !== "undefined") { + if (!events || !events[typeEvent]) { + return; + } + removeHandler$1(element2, events, typeEvent, originalHandler, delegation ? handler : null); + return; + } + if (isNamespace) { + Object.keys(events).forEach((elementEvent) => { + removeNamespacedHandlers$1(element2, events, elementEvent, originalTypeEvent.slice(1)); + }); + } + const storeElementEvent = events[typeEvent] || {}; + Object.keys(storeElementEvent).forEach((keyHandlers) => { + const handlerKey = keyHandlers.replace(stripUidRegex$1, ""); + if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) { + const event = storeElementEvent[keyHandlers]; + removeHandler$1(element2, events, typeEvent, event.originalHandler, event.delegationSelector); + } + }); + }, + trigger(element2, event, args) { + if (typeof event !== "string" || !element2) { + return null; + } + const typeEvent = event.replace(stripNameRegex$1, ""); + const inNamespace = event !== typeEvent; + const isNative = nativeEvents$1.indexOf(typeEvent) > -1; + let jQueryEvent; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + let evt = null; + if (inNamespace && $) { + jQueryEvent = $.Event(event, args); + $(element2).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + if (isNative) { + evt = document.createEvent("HTMLEvents"); + evt.initEvent(typeEvent, bubbles, true); + } else { + evt = new CustomEvent(event, { + bubbles, + cancelable: true + }); + } + if (typeof args !== "undefined") { + Object.keys(args).forEach((key) => { + Object.defineProperty(evt, key, { + get() { + return args[key]; + } + }); + }); + } + if (defaultPrevented) { + evt.preventDefault(); + } + if (nativeDispatch) { + element2.dispatchEvent(evt); + } + if (evt.defaultPrevented && typeof jQueryEvent !== "undefined") { + jQueryEvent.preventDefault(); + } + return evt; + } +}; +function normalizeData$1(val) { + if (val === "true") { + return true; + } + if (val === "false") { + return false; + } + if (val === Number(val).toString()) { + return Number(val); + } + if (val === "" || val === "null") { + return null; + } + return val; +} +function normalizeDataKey$1(key) { + return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`); +} +const Manipulator$1 = { + setDataAttribute(element2, key, value) { + element2.setAttribute(`data-mdb-${normalizeDataKey$1(key)}`, value); + }, + removeDataAttribute(element2, key) { + element2.removeAttribute(`data-mdb-${normalizeDataKey$1(key)}`); + }, + getDataAttributes(element2) { + if (!element2) { + return {}; + } + const attributes = { + ...element2.dataset + }; + Object.keys(attributes).filter((key) => key.startsWith("mdb")).forEach((key) => { + let pureKey = key.replace(/^mdb/, ""); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData$1(attributes[key]); + }); + return attributes; + }, + getDataAttribute(element2, key) { + return normalizeData$1(element2.getAttribute(`data-mdb-${normalizeDataKey$1(key)}`)); + }, + offset(element2) { + const rect = element2.getBoundingClientRect(); + return { + top: rect.top + document.body.scrollTop, + left: rect.left + document.body.scrollLeft + }; + }, + position(element2) { + return { + top: element2.offsetTop, + left: element2.offsetLeft + }; + }, + style(element2, style) { + Object.assign(element2.style, style); + }, + toggleClass(element2, className) { + if (!element2) { + return; + } + if (element2.classList.contains(className)) { + element2.classList.remove(className); + } else { + element2.classList.add(className); + } + }, + addClass(element2, className) { + if (element2.classList.contains(className)) + return; + element2.classList.add(className); + }, + addStyle(element2, style) { + Object.keys(style).forEach((property) => { + element2.style[property] = style[property]; + }); + }, + removeClass(element2, className) { + if (!element2.classList.contains(className)) + return; + element2.classList.remove(className); + }, + hasClass(element2, className) { + return element2.classList.contains(className); + } +}; +const NODE_TEXT = 3; +const SelectorEngine$1 = { + closest(element2, selector) { + return element2.closest(selector); + }, + matches(element2, selector) { + return element2.matches(selector); + }, + find(selector, element2 = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element2, selector)); + }, + findOne(selector, element2 = document.documentElement) { + return Element.prototype.querySelector.call(element2, selector); + }, + children(element2, selector) { + const children = [].concat(...element2.children); + return children.filter((child) => child.matches(selector)); + }, + parents(element2, selector) { + const parents = []; + let ancestor = element2.parentNode; + while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) { + if (this.matches(ancestor, selector)) { + parents.push(ancestor); + } + ancestor = ancestor.parentNode; + } + return parents; + }, + prev(element2, selector) { + let previous = element2.previousElementSibling; + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + previous = previous.previousElementSibling; + } + return []; + }, + next(element2, selector) { + let next = element2.nextElementSibling; + while (next) { + if (this.matches(next, selector)) { + return [next]; + } + next = next.nextElementSibling; + } + return []; + } +}; +const elementMap = /* @__PURE__ */ new Map(); +const Data = { + set(element2, key, instance) { + if (!elementMap.has(element2)) { + elementMap.set(element2, /* @__PURE__ */ new Map()); + } + const instanceMap = elementMap.get(element2); + if (!instanceMap.has(key) && instanceMap.size !== 0) { + console.error( + `Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.` + ); + return; + } + instanceMap.set(key, instance); + }, + get(element2, key) { + if (elementMap.has(element2)) { + return elementMap.get(element2).get(key) || null; + } + return null; + }, + remove(element2, key) { + if (!elementMap.has(element2)) { + return; + } + const instanceMap = elementMap.get(element2); + instanceMap.delete(key); + if (instanceMap.size === 0) { + elementMap.delete(element2); + } + } +}; +const MAX_UID = 1e6; +const MILLISECONDS_MULTIPLIER = 1e3; +const TRANSITION_END = "transitionend"; +const parseSelector = (selector) => { + if (selector && window.CSS && window.CSS.escape) { + selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); + } + return selector; +}; +const toType = (object) => { + if (object === null || object === void 0) { + return `${object}`; + } + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); +}; +const getUID = (prefix) => { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + return prefix; +}; +const getTransitionDurationFromElement = (element2) => { + if (!element2) { + return 0; + } + let { transitionDuration, transitionDelay } = window.getComputedStyle(element2); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } + transitionDuration = transitionDuration.split(",")[0]; + transitionDelay = transitionDelay.split(",")[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; +}; +const triggerTransitionEnd = (element2) => { + element2.dispatchEvent(new Event(TRANSITION_END)); +}; +const isElement$1 = (object) => { + if (!object || typeof object !== "object") { + return false; + } + if (typeof object.jquery !== "undefined") { + object = object[0]; + } + return typeof object.nodeType !== "undefined"; +}; +const getElement = (object) => { + if (isElement$1(object)) { + return object.jquery ? object[0] : object; + } + if (typeof object === "string" && object.length > 0) { + return document.querySelector(parseSelector(object)); + } + return null; +}; +const isVisible = (element2) => { + if (!isElement$1(element2) || element2.getClientRects().length === 0) { + return false; + } + const elementIsVisible = getComputedStyle(element2).getPropertyValue("visibility") === "visible"; + const closedDetails = element2.closest("details:not([open])"); + if (!closedDetails) { + return elementIsVisible; + } + if (closedDetails !== element2) { + const summary = element2.closest("summary"); + if (summary && summary.parentNode !== closedDetails) { + return false; + } + if (summary === null) { + return false; + } + } + return elementIsVisible; +}; +const isDisabled = (element2) => { + if (!element2 || element2.nodeType !== Node.ELEMENT_NODE) { + return true; + } + if (element2.classList.contains("disabled")) { + return true; + } + if (typeof element2.disabled !== "undefined") { + return element2.disabled; + } + return element2.hasAttribute("disabled") && element2.getAttribute("disabled") !== "false"; +}; +const findShadowRoot = (element2) => { + if (!document.documentElement.attachShadow) { + return null; + } + if (typeof element2.getRootNode === "function") { + const root = element2.getRootNode(); + return root instanceof ShadowRoot ? root : null; + } + if (element2 instanceof ShadowRoot) { + return element2; + } + if (!element2.parentNode) { + return null; + } + return findShadowRoot(element2.parentNode); +}; +const noop = () => { +}; +const reflow = (element2) => { + element2.offsetHeight; +}; +const getjQuery = () => { + if (window.jQuery && !document.body.hasAttribute("data-mdb-no-jquery")) { + return window.jQuery; + } + return null; +}; +const isRTL = () => document.documentElement.dir === "rtl"; +const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { + return typeof possibleCallback === "function" ? possibleCallback(...args) : defaultValue; +}; +const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { + if (!waitForTransition) { + execute(callback); + return; + } + const durationPadding = 5; + const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; + let called = false; + const handler = ({ target }) => { + if (target !== transitionElement) { + return; + } + called = true; + transitionElement.removeEventListener(TRANSITION_END, handler); + execute(callback); + }; + transitionElement.addEventListener(TRANSITION_END, handler); + setTimeout(() => { + if (!called) { + triggerTransitionEnd(transitionElement); + } + }, emulatedDuration); +}; +const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; + let index = list.indexOf(activeElement); + if (index === -1) { + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; + } + index += shouldGetNext ? 1 : -1; + if (isCycleAllowed) { + index = (index + listLength) % listLength; + } + return list[Math.max(0, Math.min(index, listLength - 1))]; +}; +const namespaceRegex = /[^.]*(?=\..*)\.|.*/; +const stripNameRegex = /\..*/; +const stripUidRegex = /::\d+$/; +const eventRegistry = {}; +let uidEvent = 1; +const customEvents = { + mouseenter: "mouseover", + mouseleave: "mouseout" +}; +const nativeEvents = /* @__PURE__ */ new Set([ + "click", + "dblclick", + "mouseup", + "mousedown", + "contextmenu", + "mousewheel", + "DOMMouseScroll", + "mouseover", + "mouseout", + "mousemove", + "selectstart", + "selectend", + "keydown", + "keypress", + "keyup", + "orientationchange", + "touchstart", + "touchmove", + "touchend", + "touchcancel", + "pointerdown", + "pointermove", + "pointerup", + "pointerleave", + "pointercancel", + "gesturestart", + "gesturechange", + "gestureend", + "focus", + "blur", + "change", + "reset", + "select", + "submit", + "focusin", + "focusout", + "load", + "unload", + "beforeunload", + "resize", + "move", + "DOMContentLoaded", + "readystatechange", + "error", + "abort", + "scroll" +]); +function makeEventUid(element2, uid) { + return uid && `${uid}::${uidEvent++}` || element2.uidEvent || uidEvent++; +} +function getElementEvents(element2) { + const uid = makeEventUid(element2); + element2.uidEvent = uid; + eventRegistry[uid] = eventRegistry[uid] || {}; + return eventRegistry[uid]; +} +function bootstrapHandler(element2, fn2) { + return function handler(event) { + hydrateObj(event, { delegateTarget: element2 }); + if (handler.oneOff) { + EventHandler.off(element2, event.type, fn2); + } + return fn2.apply(element2, [event]); + }; +} +function bootstrapDelegationHandler(element2, selector, fn2) { + return function handler(event) { + const domElements = element2.querySelectorAll(selector); + for (let { target } = event; target && target !== this; target = target.parentNode) { + for (const domElement of domElements) { + if (domElement !== target) { + continue; + } + hydrateObj(event, { delegateTarget: target }); + if (handler.oneOff) { + EventHandler.off(element2, event.type, selector, fn2); + } + return fn2.apply(target, [event]); + } + } + }; +} +function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find( + (event) => event.callable === callable && event.delegationSelector === delegationSelector + ); +} +function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === "string"; + const callable = isDelegated ? delegationFunction : handler || delegationFunction; + let typeEvent = getTypeEvent(originalTypeEvent); + if (!nativeEvents.has(typeEvent)) { + typeEvent = originalTypeEvent; + } + return [isDelegated, callable, typeEvent]; +} +function addHandler(element2, originalTypeEvent, handler, delegationFunction, oneOff) { + if (typeof originalTypeEvent !== "string" || !element2) { + return; + } + let [isDelegated, callable, typeEvent] = normalizeParameters( + originalTypeEvent, + handler, + delegationFunction + ); + if (originalTypeEvent in customEvents) { + const wrapFunction = (fn3) => { + return function(event) { + if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { + return fn3.call(this, event); + } + }; + }; + callable = wrapFunction(callable); + } + const events = getElementEvents(element2); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; + return; + } + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, "")); + const fn2 = isDelegated ? bootstrapDelegationHandler(element2, handler, callable) : bootstrapHandler(element2, callable); + fn2.delegationSelector = isDelegated ? handler : null; + fn2.callable = callable; + fn2.oneOff = oneOff; + fn2.uidEvent = uid; + handlers[uid] = fn2; + element2.addEventListener(typeEvent, fn2, isDelegated); +} +function removeHandler(element2, events, typeEvent, handler, delegationSelector) { + const fn2 = findHandler(events[typeEvent], handler, delegationSelector); + if (!fn2) { + return; + } + element2.removeEventListener(typeEvent, fn2, Boolean(delegationSelector)); + delete events[typeEvent][fn2.uidEvent]; +} +function removeNamespacedHandlers(element2, events, typeEvent, namespace) { + const storeElementEvent = events[typeEvent] || {}; + for (const [handlerKey, event] of Object.entries(storeElementEvent)) { + if (handlerKey.includes(namespace)) { + removeHandler(element2, events, typeEvent, event.callable, event.delegationSelector); + } + } +} +function getTypeEvent(event) { + event = event.replace(stripNameRegex, ""); + return customEvents[event] || event; +} +const EventHandler = { + on(element2, event, handler, delegationFunction) { + addHandler(element2, event, handler, delegationFunction, false); + }, + one(element2, event, handler, delegationFunction) { + addHandler(element2, event, handler, delegationFunction, true); + }, + off(element2, originalTypeEvent, handler, delegationFunction) { + if (typeof originalTypeEvent !== "string" || !element2) { + return; + } + const [isDelegated, callable, typeEvent] = normalizeParameters( + originalTypeEvent, + handler, + delegationFunction + ); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getElementEvents(element2); + const storeElementEvent = events[typeEvent] || {}; + const isNamespace = originalTypeEvent.startsWith("."); + if (typeof callable !== "undefined") { + if (!Object.keys(storeElementEvent).length) { + return; + } + removeHandler(element2, events, typeEvent, callable, isDelegated ? handler : null); + return; + } + if (isNamespace) { + for (const elementEvent of Object.keys(events)) { + removeNamespacedHandlers(element2, events, elementEvent, originalTypeEvent.slice(1)); + } + } + for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { + const handlerKey = keyHandlers.replace(stripUidRegex, ""); + if (!inNamespace || originalTypeEvent.includes(handlerKey)) { + removeHandler(element2, events, typeEvent, event.callable, event.delegationSelector); + } + } + }, + trigger(element2, event, args) { + if (typeof event !== "string" || !element2) { + return null; + } + const $2 = getjQuery(); + const typeEvent = getTypeEvent(event); + const inNamespace = event !== typeEvent; + let jQueryEvent = null; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + if (inNamespace && $2) { + jQueryEvent = $2.Event(event, args); + $2(element2).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args); + if (defaultPrevented) { + evt.preventDefault(); + } + if (nativeDispatch) { + element2.dispatchEvent(evt); + } + if (evt.defaultPrevented && jQueryEvent) { + jQueryEvent.preventDefault(); + } + return evt; + } +}; +function hydrateObj(obj, meta = {}) { + for (const [key, value] of Object.entries(meta)) { + try { + obj[key] = value; + } catch { + Object.defineProperty(obj, key, { + configurable: true, + get() { + return value; + } + }); + } + } + return obj; +} +function normalizeData(value) { + if (value === "true") { + return true; + } + if (value === "false") { + return false; + } + if (value === Number(value).toString()) { + return Number(value); + } + if (value === "" || value === "null") { + return null; + } + if (typeof value !== "string") { + return value; + } + try { + return JSON.parse(decodeURIComponent(value)); + } catch { + return value; + } +} +function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`); +} +const Manipulator = { + setDataAttribute(element2, key, value) { + element2.setAttribute(`data-mdb-${normalizeDataKey(key)}`, value); + }, + removeDataAttribute(element2, key) { + element2.removeAttribute(`data-mdb-${normalizeDataKey(key)}`); + }, + getDataAttributes(element2) { + if (!element2) { + return {}; + } + const attributes = {}; + const mdbKeys = Object.keys(element2.dataset).filter( + (key) => key.startsWith("mdb") && !key.startsWith("mdbConfig") + ); + for (const key of mdbKeys) { + let pureKey = key.replace(/^mdb/, ""); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element2.dataset[key]); + } + return attributes; + }, + getDataAttribute(element2, key) { + return normalizeData(element2.getAttribute(`data-mdb-${normalizeDataKey(key)}`)); + } +}; +class Config { + // Getters + static get Default() { + return {}; + } + static get DefaultType() { + return {}; + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + return config; + } + _mergeConfigObj(config, element2) { + const jsonConfig = isElement$1(element2) ? Manipulator.getDataAttribute(element2, "config") : {}; + return { + ...this.constructor.Default, + ...typeof jsonConfig === "object" ? jsonConfig : {}, + ...isElement$1(element2) ? Manipulator.getDataAttributes(element2) : {}, + ...typeof config === "object" ? config : {} + }; + } + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const [property, expectedTypes] of Object.entries(configTypes)) { + const value = config[property]; + const valueType = isElement$1(value) ? "element" : toType(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError( + `${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".` + ); + } + } + } +} +const VERSION = "5.3.3"; +let BaseComponent$1 = class BaseComponent extends Config { + constructor(element2, config) { + super(); + element2 = getElement(element2); + if (!element2) { + return; + } + this._element = element2; + this._config = this._getConfig(config); + Data.set(this._element, this.constructor.DATA_KEY, this); + } + // Public + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); + EventHandler.off(this._element, this.constructor.EVENT_KEY); + for (const propertyName of Object.getOwnPropertyNames(this)) { + this[propertyName] = null; + } + } + _queueCallback(callback, element2, isAnimated = true) { + executeAfterTransition(callback, element2, isAnimated); + } + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + // Static + static getInstance(element2) { + return Data.get(getElement(element2), this.DATA_KEY); + } + static getOrCreateInstance(element2, config = {}) { + return this.getInstance(element2) || new this(element2, typeof config === "object" ? config : null); + } + static get VERSION() { + return VERSION; + } + static get DATA_KEY() { + return `bs.${this.NAME}`; + } + static get EVENT_KEY() { + return `.${this.DATA_KEY}`; + } + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } +}; +const NAME$t = "button"; +const CLASS_NAME_ACTIVE$5 = "active"; +let Button$1 = class Button extends BaseComponent$1 { + // Getters + static get NAME() { + return NAME$t; + } + // Public + toggle() { + this._element.setAttribute("aria-pressed", this._element.classList.toggle(CLASS_NAME_ACTIVE$5)); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Button.getOrCreateInstance(this); + if (config === "toggle") { + data[config](); + } + }); + } +}; +const mapComponentsData = (() => { + const componentsData = []; + return { + set(componentName) { + componentsData.push(componentName); + }, + get(componentName) { + return componentsData.includes(componentName); + } + }; +})(); +const InitializedComponents = { + set(componentName) { + mapComponentsData.set(componentName); + }, + get(componentName) { + return mapComponentsData.get(componentName); + } +}; +const isInitialized = (componentName) => { + return InitializedComponents.get(componentName); +}; +const bindCallbackEventsIfNeeded = (component) => { + if (!isInitialized(component.NAME)) { + const manualInit = true; + initComponent(component, manualInit); + } +}; +const initComponent = (component, manualInit = false) => { + if (!component || InitializedComponents.get(component.NAME)) { + return; + } + if (!manualInit) { + InitializedComponents.set(component.NAME); + } + const thisComponent = _defaultInitSelectors[component.NAME] || null; + const isToggler = (thisComponent == null ? void 0 : thisComponent.isToggler) || false; + defineJQueryPlugin(component); + if (thisComponent == null ? void 0 : thisComponent.advanced) { + thisComponent.advanced(component, thisComponent == null ? void 0 : thisComponent.selector); + return; + } + if (isToggler) { + thisComponent.callback(component, thisComponent == null ? void 0 : thisComponent.selector); + return; + } + if (manualInit) { + return; + } + SelectorEngine$1.find(thisComponent == null ? void 0 : thisComponent.selector).forEach((element2) => { + let instance = component.getInstance(element2); + if (!instance) { + instance = new component(element2); + if (thisComponent == null ? void 0 : thisComponent.onInit) { + instance[thisComponent.onInit](); + } + } + }); +}; +let _defaultInitSelectors; +class InitMDB { + constructor(defaultInitSelectors2) { + __publicField(this, "init", (components) => { + components.forEach((component) => initComponent(component)); + }); + __publicField(this, "initMDB", (components, checkOtherImports = false) => { + const componentList = Object.keys(_defaultInitSelectors).map((element2) => { + const requireAutoInit = Boolean( + document.querySelector(_defaultInitSelectors[element2].selector) + ); + if (requireAutoInit) { + const component = components[_defaultInitSelectors[element2].name]; + if (!component && !InitializedComponents.get(element2) && checkOtherImports) { + console.warn( + `Please import ${_defaultInitSelectors[element2].name} from "MDB" package and add it to a object parameter inside "initMDB" function` + ); + } + return component; + } + return null; + }); + this.init(componentList); + }); + _defaultInitSelectors = defaultInitSelectors2; + } +} +const NAME$s = "button"; +const DATA_KEY$g = `mdb.${NAME$s}`; +const EVENT_KEY$e = `.${DATA_KEY$g}`; +const EVENT_CLICK$2 = `click${EVENT_KEY$e}`; +const EVENT_TRANSITIONEND = "transitionend"; +const EVENT_MOUSEENTER$2 = "mouseenter"; +const EVENT_MOUSELEAVE$2 = "mouseleave"; +const EVENT_HIDE$9 = `hide${EVENT_KEY$e}`; +const EVENT_HIDDEN$9 = `hidden${EVENT_KEY$e}`; +const EVENT_SHOW$9 = `show${EVENT_KEY$e}`; +const EVENT_SHOWN$9 = `shown${EVENT_KEY$e}`; +const CLASS_NAME_ACTIVE$4 = "active"; +const CLASS_NAME_SHOWN = "shown"; +const CLASS_NAME_FIXED_ACTION_BTN = "fixed-action-btn"; +const SELECTOR_ACTION_BUTTON = ".fixed-action-btn:not(.smooth-scroll) > .btn-floating"; +const SELECTOR_LIST_ELEMENT = "ul .btn"; +const SELECTOR_LIST$1 = "ul"; +class Button2 extends Button$1 { + constructor(element2) { + super(element2); + this._fn = {}; + if (this._element) { + Data$1.setData(this._element, DATA_KEY$g, this); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + } + // Static + static get NAME() { + return NAME$s; + } + static jQueryInterface(config, options) { + return this.each(function() { + let data = Data$1.getData(this, DATA_KEY$g); + const _config = typeof config === "object" && config; + if (!data && /dispose/.test(config)) { + return; + } + if (!data) { + data = new Button2(this, _config); + } + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](options); + } + }); + } + // Getters + get _actionButton() { + return SelectorEngine$1.findOne(SELECTOR_ACTION_BUTTON, this._element); + } + get _buttonListElements() { + return SelectorEngine$1.find(SELECTOR_LIST_ELEMENT, this._element); + } + get _buttonList() { + return SelectorEngine$1.findOne(SELECTOR_LIST$1, this._element); + } + get _isTouchDevice() { + return "ontouchstart" in document.documentElement; + } + // Public + show() { + if (Manipulator$1.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) { + EventHandler$1.off(this._buttonList, EVENT_TRANSITIONEND); + EventHandler$1.trigger(this._element, EVENT_SHOW$9); + this._bindListOpenTransitionEnd(); + Manipulator$1.addStyle(this._element, { height: `${this._fullContainerHeight}px` }); + this._toggleVisibility(true); + } + } + hide() { + if (Manipulator$1.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) { + EventHandler$1.off(this._buttonList, EVENT_TRANSITIONEND); + EventHandler$1.trigger(this._element, EVENT_HIDE$9); + this._bindListHideTransitionEnd(); + this._toggleVisibility(false); + } + } + dispose() { + if (Manipulator$1.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) { + EventHandler$1.off(this._actionButton, EVENT_CLICK$2); + this._actionButton.removeEventListener(EVENT_MOUSEENTER$2, this._fn.mouseenter); + this._element.removeEventListener(EVENT_MOUSELEAVE$2, this._fn.mouseleave); + } + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Private + _init() { + if (Manipulator$1.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) { + this._saveInitialHeights(); + this._setInitialStyles(); + this._bindInitialEvents(); + } + } + _bindMouseEnter() { + this._actionButton.addEventListener( + EVENT_MOUSEENTER$2, + // prettier-ignore + this._fn.mouseenter = () => { + if (!this._isTouchDevice) { + this.show(); + } + } + // prettier-ignore + ); + } + _bindMouseLeave() { + this._element.addEventListener( + EVENT_MOUSELEAVE$2, + // prettier-ignore + this._fn.mouseleave = () => { + this.hide(); + } + // prettier-ignore + ); + } + _bindClick() { + EventHandler$1.on(this._actionButton, EVENT_CLICK$2, () => { + if (Manipulator$1.hasClass(this._element, CLASS_NAME_ACTIVE$4)) { + this.hide(); + } else { + this.show(); + } + }); + } + _bindListHideTransitionEnd() { + EventHandler$1.on(this._buttonList, EVENT_TRANSITIONEND, (event) => { + if (event.propertyName === "transform") { + EventHandler$1.off(this._buttonList, EVENT_TRANSITIONEND); + this._element.style.height = `${this._initialContainerHeight}px`; + EventHandler$1.trigger(this._element, EVENT_HIDDEN$9); + } + }); + } + _bindListOpenTransitionEnd() { + EventHandler$1.on(this._buttonList, EVENT_TRANSITIONEND, (event) => { + if (event.propertyName === "transform") { + EventHandler$1.off(this._buttonList, EVENT_TRANSITIONEND); + EventHandler$1.trigger(this._element, EVENT_SHOWN$9); + } + }); + } + _toggleVisibility(isVisible2) { + const action = isVisible2 ? "addClass" : "removeClass"; + const listTranslate = isVisible2 ? "translate(0)" : `translateY(${this._fullContainerHeight}px)`; + Manipulator$1.addStyle(this._buttonList, { transform: listTranslate }); + if (this._buttonListElements) { + this._buttonListElements.forEach((el) => Manipulator$1[action](el, CLASS_NAME_SHOWN)); + } + Manipulator$1[action](this._element, CLASS_NAME_ACTIVE$4); + } + _getHeight(element2) { + const computed = window.getComputedStyle(element2); + const height = parseFloat(computed.getPropertyValue("height")); + return height; + } + _saveInitialHeights() { + this._initialContainerHeight = this._getHeight(this._element); + this._initialListHeight = this._getHeight(this._buttonList); + this._fullContainerHeight = this._initialContainerHeight + this._initialListHeight; + } + _bindInitialEvents() { + this._bindClick(); + this._bindMouseEnter(); + this._bindMouseLeave(); + } + _setInitialStyles() { + this._buttonList.style.marginBottom = `${this._initialContainerHeight}px`; + this._buttonList.style.transform = `translateY(${this._fullContainerHeight}px)`; + this._element.style.height = `${this._initialContainerHeight}px`; + } +} +const getSelector = (element2) => { + let selector = element2.getAttribute("data-mdb-target"); + if (!selector || selector === "#") { + let hrefAttribute = element2.getAttribute("href"); + if (!hrefAttribute || !hrefAttribute.includes("#") && !hrefAttribute.startsWith(".")) { + return null; + } + if (hrefAttribute.includes("#") && !hrefAttribute.startsWith("#")) { + hrefAttribute = `#${hrefAttribute.split("#")[1]}`; + } + selector = hrefAttribute && hrefAttribute !== "#" ? hrefAttribute.trim() : null; + } + return selector ? selector.split(",").map((sel) => parseSelector(sel)).join(",") : null; +}; +const SelectorEngine = { + find(selector, element2 = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element2, selector)); + }, + findOne(selector, element2 = document.documentElement) { + return Element.prototype.querySelector.call(element2, selector); + }, + children(element2, selector) { + return [].concat(...element2.children).filter((child) => child.matches(selector)); + }, + parents(element2, selector) { + const parents = []; + let ancestor = element2.parentNode.closest(selector); + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); + } + return parents; + }, + prev(element2, selector) { + let previous = element2.previousElementSibling; + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + previous = previous.previousElementSibling; + } + return []; + }, + // TODO: this is now unused; remove later along with prev() + next(element2, selector) { + let next = element2.nextElementSibling; + while (next) { + if (next.matches(selector)) { + return [next]; + } + next = next.nextElementSibling; + } + return []; + }, + focusableChildren(element2) { + const focusables = [ + "a", + "button", + "input", + "textarea", + "select", + "details", + "[tabindex]", + '[contenteditable="true"]' + ].map((selector) => `${selector}:not([tabindex^="-"])`).join(","); + return this.find(focusables, element2).filter((el) => !isDisabled(el) && isVisible(el)); + }, + getSelectorFromElement(element2) { + const selector = getSelector(element2); + if (selector) { + return SelectorEngine.findOne(selector) ? selector : null; + } + return null; + }, + getElementFromSelector(element2) { + const selector = getSelector(element2); + return selector ? SelectorEngine.findOne(selector) : null; + }, + getMultipleElementsFromSelector(element2) { + const selector = getSelector(element2); + return selector ? SelectorEngine.find(selector) : []; + } +}; +const NAME$r = "backdrop"; +const CLASS_NAME_FADE$6 = "fade"; +const CLASS_NAME_SHOW$9 = "show"; +const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$r}`; +const Default$e = { + className: "modal-backdrop", + clickCallback: null, + isAnimated: false, + isVisible: true, + // if false, we use the backdrop helper without adding any element to the dom + rootElement: "body" + // give the choice to place backdrop under different elements +}; +const DefaultType$e = { + className: "string", + clickCallback: "(function|null)", + isAnimated: "boolean", + isVisible: "boolean", + rootElement: "(element|string)" +}; +class Backdrop extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isAppended = false; + this._element = null; + } + // Getters + static get Default() { + return Default$e; + } + static get DefaultType() { + return DefaultType$e; + } + static get NAME() { + return NAME$r; + } + // Public + show(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + this._append(); + const element2 = this._getElement(); + if (this._config.isAnimated) { + reflow(element2); + } + element2.classList.add(CLASS_NAME_SHOW$9); + this._emulateAnimation(() => { + execute(callback); + }); + } + hide(callback) { + if (!this._config.isVisible) { + execute(callback); + return; + } + this._getElement().classList.remove(CLASS_NAME_SHOW$9); + this._emulateAnimation(() => { + this.dispose(); + execute(callback); + }); + } + dispose() { + if (!this._isAppended) { + return; + } + EventHandler.off(this._element, EVENT_MOUSEDOWN); + this._element.remove(); + this._isAppended = false; + } + // Private + _getElement() { + if (!this._element) { + const backdrop = document.createElement("div"); + backdrop.className = this._config.className; + if (this._config.isAnimated) { + backdrop.classList.add(CLASS_NAME_FADE$6); + } + this._element = backdrop; + } + return this._element; + } + _configAfterMerge(config) { + config.rootElement = getElement(config.rootElement); + return config; + } + _append() { + if (this._isAppended) { + return; + } + const element2 = this._getElement(); + this._config.rootElement.append(element2); + EventHandler.on(element2, EVENT_MOUSEDOWN, () => { + execute(this._config.clickCallback); + }); + this._isAppended = true; + } + _emulateAnimation(callback) { + executeAfterTransition(callback, this._getElement(), this._config.isAnimated); + } +} +const enableDismissTrigger = (component, method = "hide") => { + const clickEvent = `click.dismiss${component.EVENT_KEY}`; + const name = component.NAME; + EventHandler.on(document, clickEvent, `[data-mdb-dismiss="${name}"]`, function(event) { + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); + const instance = component.getOrCreateInstance(target); + instance[method](); + }); +}; +const NAME$q = "focustrap"; +const DATA_KEY$f = "bs.focustrap"; +const EVENT_KEY$d = `.${DATA_KEY$f}`; +const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$d}`; +const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$d}`; +const TAB_KEY$1 = "Tab"; +const TAB_NAV_FORWARD = "forward"; +const TAB_NAV_BACKWARD = "backward"; +const Default$d = { + autofocus: true, + trapElement: null + // The element to trap focus inside of +}; +const DefaultType$d = { + autofocus: "boolean", + trapElement: "element" +}; +class FocusTrap extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + this._isActive = false; + this._lastTabNavDirection = null; + } + // Getters + static get Default() { + return Default$d; + } + static get DefaultType() { + return DefaultType$d; + } + static get NAME() { + return NAME$q; + } + // Public + activate() { + if (this._isActive) { + return; + } + if (this._config.autofocus) { + this._config.trapElement.focus(); + } + EventHandler.off(document, EVENT_KEY$d); + EventHandler.on(document, EVENT_FOCUSIN$2, (event) => this._handleFocusin(event)); + EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event)); + this._isActive = true; + } + deactivate() { + if (!this._isActive) { + return; + } + this._isActive = false; + EventHandler.off(document, EVENT_KEY$d); + } + // Private + _handleFocusin(event) { + const { trapElement } = this._config; + if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { + return; + } + const elements = SelectorEngine.focusableChildren(trapElement); + if (elements.length === 0) { + trapElement.focus(); + } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { + elements[elements.length - 1].focus(); + } else { + elements[0].focus(); + } + } + _handleKeydown(event) { + if (event.key !== TAB_KEY$1) { + return; + } + this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; + } +} +const SELECTOR_FIXED_CONTENT = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"; +const SELECTOR_STICKY_CONTENT = ".sticky-top"; +const PROPERTY_PADDING = "padding-right"; +const PROPERTY_MARGIN = "margin-right"; +class ScrollBarHelper { + constructor() { + this._element = document.body; + } + // Public + getWidth() { + const documentWidth = document.documentElement.clientWidth; + return Math.abs(window.innerWidth - documentWidth); + } + hide() { + const width = this.getWidth(); + this._disableOverFlow(); + this._setElementAttributes( + this._element, + PROPERTY_PADDING, + (calculatedValue) => calculatedValue + width + ); + this._setElementAttributes( + SELECTOR_FIXED_CONTENT, + PROPERTY_PADDING, + (calculatedValue) => calculatedValue + width + ); + this._setElementAttributes( + SELECTOR_STICKY_CONTENT, + PROPERTY_MARGIN, + (calculatedValue) => calculatedValue - width + ); + } + reset() { + this._resetElementAttributes(this._element, "overflow"); + this._resetElementAttributes(this._element, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); + this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); + } + isOverflowing() { + return this.getWidth() > 0; + } + // Private + _disableOverFlow() { + this._saveInitialAttribute(this._element, "overflow"); + this._element.style.overflow = "hidden"; + } + _setElementAttributes(selector, styleProperty, callback) { + const scrollbarWidth = this.getWidth(); + const manipulationCallBack = (element2) => { + if (element2 !== this._element && window.innerWidth > element2.clientWidth + scrollbarWidth) { + return; + } + this._saveInitialAttribute(element2, styleProperty); + const calculatedValue = window.getComputedStyle(element2).getPropertyValue(styleProperty); + element2.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); + }; + this._applyManipulationCallback(selector, manipulationCallBack); + } + _saveInitialAttribute(element2, styleProperty) { + const actualValue = element2.style.getPropertyValue(styleProperty); + if (actualValue) { + Manipulator.setDataAttribute(element2, styleProperty, actualValue); + } + } + _resetElementAttributes(selector, styleProperty) { + const manipulationCallBack = (element2) => { + const value = Manipulator.getDataAttribute(element2, styleProperty); + if (value === null) { + element2.style.removeProperty(styleProperty); + return; + } + Manipulator.removeDataAttribute(element2, styleProperty); + element2.style.setProperty(styleProperty, value); + }; + this._applyManipulationCallback(selector, manipulationCallBack); + } + _applyManipulationCallback(selector, callBack) { + if (isElement$1(selector)) { + callBack(selector); + return; + } + for (const sel of SelectorEngine.find(selector, this._element)) { + callBack(sel); + } + } +} +const NAME$p = "offcanvas"; +const DATA_KEY$e = "bs.offcanvas"; +const EVENT_KEY$c = `.${DATA_KEY$e}`; +const ESCAPE_KEY$2 = "Escape"; +const CLASS_NAME_SHOW$8 = "show"; +const CLASS_NAME_SHOWING$1 = "showing"; +const CLASS_NAME_HIDING = "hiding"; +const CLASS_NAME_BACKDROP = "offcanvas-backdrop"; +const EVENT_SHOW$8 = `show${EVENT_KEY$c}`; +const EVENT_SHOWN$8 = `shown${EVENT_KEY$c}`; +const EVENT_HIDE$8 = `hide${EVENT_KEY$c}`; +const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$c}`; +const EVENT_HIDDEN$8 = `hidden${EVENT_KEY$c}`; +const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$c}`; +const Default$c = { + backdrop: true, + keyboard: true, + scroll: false +}; +const DefaultType$c = { + backdrop: "(boolean|string)", + keyboard: "boolean", + scroll: "boolean" +}; +class Offcanvas extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + this._isShown = false; + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._addEventListeners(); + } + // Getters + static get Default() { + return Default$c; + } + static get DefaultType() { + return DefaultType$c; + } + static get NAME() { + return NAME$p; + } + // Public + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + show(relatedTarget) { + if (this._isShown) { + return; + } + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$8, { relatedTarget }); + if (showEvent.defaultPrevented) { + return; + } + this._isShown = true; + this._backdrop.show(); + if (!this._config.scroll) { + new ScrollBarHelper().hide(); + } + this._element.setAttribute("aria-modal", true); + this._element.setAttribute("role", "dialog"); + this._element.classList.add(CLASS_NAME_SHOWING$1); + const completeCallBack = () => { + if (!this._config.scroll || this._config.backdrop) { + this._focustrap.activate(); + } + this._element.classList.add(CLASS_NAME_SHOW$8); + this._element.classList.remove(CLASS_NAME_SHOWING$1); + EventHandler.trigger(this._element, EVENT_SHOWN$8, { relatedTarget }); + }; + this._queueCallback(completeCallBack, this._element, true); + } + hide() { + if (!this._isShown) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$8); + if (hideEvent.defaultPrevented) { + return; + } + this._focustrap.deactivate(); + this._element.blur(); + this._isShown = false; + this._element.classList.add(CLASS_NAME_HIDING); + this._backdrop.hide(); + const completeCallback = () => { + this._element.classList.remove(CLASS_NAME_SHOW$8, CLASS_NAME_HIDING); + this._element.removeAttribute("aria-modal"); + this._element.removeAttribute("role"); + if (!this._config.scroll) { + new ScrollBarHelper().reset(); + } + EventHandler.trigger(this._element, EVENT_HIDDEN$8); + }; + this._queueCallback(completeCallback, this._element, true); + } + dispose() { + this._backdrop.dispose(); + this._focustrap.deactivate(); + super.dispose(); + } + // Private + _initializeBackDrop() { + const clickCallback = () => { + if (this._config.backdrop === "static") { + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); + return; + } + this.hide(); + }; + const isVisible2 = Boolean(this._config.backdrop); + return new Backdrop({ + className: CLASS_NAME_BACKDROP, + isVisible: isVisible2, + isAnimated: true, + rootElement: this._element.parentNode, + clickCallback: isVisible2 ? clickCallback : null + }); + } + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, (event) => { + if (event.key !== ESCAPE_KEY$2) { + return; + } + if (this._config.keyboard) { + this.hide(); + return; + } + EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); + }); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Offcanvas.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); + } +} +const NAME$o = "alert"; +const DATA_KEY$d = "bs.alert"; +const EVENT_KEY$b = `.${DATA_KEY$d}`; +const EVENT_CLOSE = `close${EVENT_KEY$b}`; +const EVENT_CLOSED = `closed${EVENT_KEY$b}`; +const CLASS_NAME_FADE$5 = "fade"; +const CLASS_NAME_SHOW$7 = "show"; +let Alert$1 = class Alert extends BaseComponent$1 { + // Getters + static get NAME() { + return NAME$o; + } + // Public + close() { + const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); + if (closeEvent.defaultPrevented) { + return; + } + this._element.classList.remove(CLASS_NAME_SHOW$7); + const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); + this._queueCallback(() => this._destroyElement(), this._element, isAnimated); + } + // Private + _destroyElement() { + this._element.remove(); + EventHandler.trigger(this._element, EVENT_CLOSED); + this.dispose(); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Alert.getOrCreateInstance(this); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); + } +}; +const NAME$n = "alert"; +const EVENT_CLOSE_BS = "close.bs.alert"; +const EVENT_CLOSED_BS = "closed.bs.alert"; +const EXTENDED_EVENTS$6 = [{ name: "close" }, { name: "closed" }]; +class Alert2 extends Alert$1 { + constructor(element2, data = {}) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_CLOSE_BS); + EventHandler$1.off(this._element, EVENT_CLOSED_BS); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$n; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS$6, NAME$n); + } +} +const NAME$m = "swipe"; +const EVENT_KEY$a = ".bs.swipe"; +const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$a}`; +const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$a}`; +const EVENT_TOUCHEND = `touchend${EVENT_KEY$a}`; +const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$a}`; +const EVENT_POINTERUP = `pointerup${EVENT_KEY$a}`; +const POINTER_TYPE_TOUCH = "touch"; +const POINTER_TYPE_PEN = "pen"; +const CLASS_NAME_POINTER_EVENT = "pointer-event"; +const SWIPE_THRESHOLD = 40; +const Default$b = { + endCallback: null, + leftCallback: null, + rightCallback: null +}; +const DefaultType$b = { + endCallback: "(function|null)", + leftCallback: "(function|null)", + rightCallback: "(function|null)" +}; +class Swipe extends Config { + constructor(element2, config) { + super(); + this._element = element2; + if (!element2 || !Swipe.isSupported()) { + return; + } + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + this._initEvents(); + } + // Getters + static get Default() { + return Default$b; + } + static get DefaultType() { + return DefaultType$b; + } + static get NAME() { + return NAME$m; + } + // Public + dispose() { + EventHandler.off(this._element, EVENT_KEY$a); + } + // Private + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + this._handleSwipe(); + execute(this._config.endCallback); + } + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + if (!direction) { + return; + } + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event)); + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event)); + } + } + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } + // Static + static isSupported() { + return "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0; + } +} +const NAME$l = "carousel"; +const DATA_KEY$c = "bs.carousel"; +const EVENT_KEY$9 = `.${DATA_KEY$c}`; +const ARROW_LEFT_KEY$1 = "ArrowLeft"; +const ARROW_RIGHT_KEY$1 = "ArrowRight"; +const TOUCHEVENT_COMPAT_WAIT = 500; +const ORDER_NEXT = "next"; +const ORDER_PREV = "prev"; +const DIRECTION_LEFT = "left"; +const DIRECTION_RIGHT = "right"; +const EVENT_SLIDE = `slide${EVENT_KEY$9}`; +const EVENT_SLID = `slid${EVENT_KEY$9}`; +const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$9}`; +const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$9}`; +const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$9}`; +const EVENT_DRAG_START = `dragstart${EVENT_KEY$9}`; +const CLASS_NAME_CAROUSEL = "carousel"; +const CLASS_NAME_ACTIVE$3 = "active"; +const CLASS_NAME_SLIDE = "slide"; +const CLASS_NAME_END = "carousel-item-end"; +const CLASS_NAME_START = "carousel-item-start"; +const CLASS_NAME_NEXT = "carousel-item-next"; +const CLASS_NAME_PREV = "carousel-item-prev"; +const SELECTOR_ACTIVE$1 = ".active"; +const SELECTOR_ITEM = ".carousel-item"; +const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE$1 + SELECTOR_ITEM; +const SELECTOR_ITEM_IMG = ".carousel-item img"; +const SELECTOR_INDICATORS = ".carousel-indicators"; +const KEY_TO_DIRECTION = { + [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, + [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT +}; +const Default$a = { + interval: 5e3, + keyboard: true, + pause: "hover", + ride: false, + touch: true, + wrap: true +}; +const DefaultType$a = { + interval: "(number|boolean)", + // TODO:v6 remove boolean support + keyboard: "boolean", + pause: "(string|boolean)", + ride: "(boolean|string)", + touch: "boolean", + wrap: "boolean" +}; +let Carousel$1 = class Carousel extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + this._interval = null; + this._activeElement = null; + this._isSliding = false; + this.touchTimeout = null; + this._swipeHelper = null; + this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); + this._addEventListeners(); + if (this._config.ride === CLASS_NAME_CAROUSEL) { + this.cycle(); + } + } + // Getters + static get Default() { + return Default$a; + } + static get DefaultType() { + return DefaultType$a; + } + static get NAME() { + return NAME$l; + } + // Public + next() { + this._slide(ORDER_NEXT); + } + nextWhenVisible() { + if (!document.hidden && isVisible(this._element)) { + this.next(); + } + } + prev() { + this._slide(ORDER_PREV); + } + pause() { + if (this._isSliding) { + triggerTransitionEnd(this._element); + } + this._clearInterval(); + } + cycle() { + this._clearInterval(); + this._updateInterval(); + this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); + } + _maybeEnableCycle() { + if (!this._config.ride) { + return; + } + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); + return; + } + this.cycle(); + } + to(index) { + const items = this._getItems(); + if (index > items.length - 1 || index < 0) { + return; + } + if (this._isSliding) { + EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); + return; + } + const activeIndex = this._getItemIndex(this._getActive()); + if (activeIndex === index) { + return; + } + const order2 = index > activeIndex ? ORDER_NEXT : ORDER_PREV; + this._slide(order2, items[index]); + } + dispose() { + if (this._swipeHelper) { + this._swipeHelper.dispose(); + } + super.dispose(); + } + // Private + _configAfterMerge(config) { + config.defaultInterval = config.interval; + return config; + } + _addEventListeners() { + if (this._config.keyboard) { + EventHandler.on(this._element, EVENT_KEYDOWN$1, (event) => this._keydown(event)); + } + if (this._config.pause === "hover") { + EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); + EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); + } + if (this._config.touch && Swipe.isSupported()) { + this._addTouchEventListeners(); + } + } + _addTouchEventListeners() { + for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { + EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault()); + } + const endCallBack = () => { + if (this._config.pause !== "hover") { + return; + } + this.pause(); + if (this.touchTimeout) { + clearTimeout(this.touchTimeout); + } + this.touchTimeout = setTimeout( + () => this._maybeEnableCycle(), + TOUCHEVENT_COMPAT_WAIT + this._config.interval + ); + }; + const swipeConfig = { + leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), + rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), + endCallback: endCallBack + }; + this._swipeHelper = new Swipe(this._element, swipeConfig); + } + _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + const direction = KEY_TO_DIRECTION[event.key]; + if (direction) { + event.preventDefault(); + this._slide(this._directionToOrder(direction)); + } + } + _getItemIndex(element2) { + return this._getItems().indexOf(element2); + } + _setActiveIndicatorElement(index) { + if (!this._indicatorsElement) { + return; + } + const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement); + activeIndicator.classList.remove(CLASS_NAME_ACTIVE$3); + activeIndicator.removeAttribute("aria-current"); + const newActiveIndicator = SelectorEngine.findOne( + `[data-mdb-slide-to="${index}"]`, + this._indicatorsElement + ); + if (newActiveIndicator) { + newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$3); + newActiveIndicator.setAttribute("aria-current", "true"); + } + } + _updateInterval() { + const element2 = this._activeElement || this._getActive(); + if (!element2) { + return; + } + const elementInterval = Number.parseInt(element2.getAttribute("data-mdb-interval"), 10); + this._config.interval = elementInterval || this._config.defaultInterval; + } + _slide(order2, element2 = null) { + if (this._isSliding) { + return; + } + const activeElement = this._getActive(); + const isNext = order2 === ORDER_NEXT; + const nextElement = element2 || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); + if (nextElement === activeElement) { + return; + } + const nextElementIndex = this._getItemIndex(nextElement); + const triggerEvent = (eventName) => { + return EventHandler.trigger(this._element, eventName, { + relatedTarget: nextElement, + direction: this._orderToDirection(order2), + from: this._getItemIndex(activeElement), + to: nextElementIndex + }); + }; + const slideEvent = triggerEvent(EVENT_SLIDE); + if (slideEvent.defaultPrevented) { + return; + } + if (!activeElement || !nextElement) { + return; + } + const isCycling = Boolean(this._interval); + this.pause(); + this._isSliding = true; + this._setActiveIndicatorElement(nextElementIndex); + this._activeElement = nextElement; + const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; + const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; + nextElement.classList.add(orderClassName); + reflow(nextElement); + activeElement.classList.add(directionalClassName); + nextElement.classList.add(directionalClassName); + const completeCallBack = () => { + nextElement.classList.remove(directionalClassName, orderClassName); + nextElement.classList.add(CLASS_NAME_ACTIVE$3); + activeElement.classList.remove(CLASS_NAME_ACTIVE$3, orderClassName, directionalClassName); + this._isSliding = false; + triggerEvent(EVENT_SLID); + }; + this._queueCallback(completeCallBack, activeElement, this._isAnimated()); + if (isCycling) { + this.cycle(); + } + } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_SLIDE); + } + _getActive() { + return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); + } + _getItems() { + return SelectorEngine.find(SELECTOR_ITEM, this._element); + } + _clearInterval() { + if (this._interval) { + clearInterval(this._interval); + this._interval = null; + } + } + _directionToOrder(direction) { + if (isRTL()) { + return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; + } + return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; + } + _orderToDirection(order2) { + if (isRTL()) { + return order2 === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return order2 === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Carousel.getOrCreateInstance(this, config); + if (typeof config === "number") { + data.to(config); + return; + } + if (typeof config === "string") { + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } + }); + } +}; +const NAME$k = "carousel"; +const EVENT_SLIDE_BS = "slide.bs.carousel"; +const EVENT_SLID_BS = "slid.bs.carousel"; +const EXTENDED_EVENTS$5 = [ + { name: "slide", parametersToCopy: ["relatedTarget", "direction", "from", "to"] }, + { name: "slid", parametersToCopy: ["relatedTarget", "direction", "from", "to"] } +]; +class Carousel2 extends Carousel$1 { + constructor(element2, data) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SLIDE_BS); + EventHandler$1.off(this._element, EVENT_SLID_BS); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$k; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS$5, NAME$k); + } +} +const NAME$j = "modal"; +const DATA_KEY$b = "bs.modal"; +const EVENT_KEY$8 = `.${DATA_KEY$b}`; +const ESCAPE_KEY$1 = "Escape"; +const EVENT_HIDE$7 = `hide${EVENT_KEY$8}`; +const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$8}`; +const EVENT_HIDDEN$7 = `hidden${EVENT_KEY$8}`; +const EVENT_SHOW$7 = `show${EVENT_KEY$8}`; +const EVENT_SHOWN$7 = `shown${EVENT_KEY$8}`; +const EVENT_RESIZE = `resize${EVENT_KEY$8}`; +const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$8}`; +const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$8}`; +const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$8}`; +const CLASS_NAME_OPEN = "modal-open"; +const CLASS_NAME_FADE$4 = "fade"; +const CLASS_NAME_SHOW$6 = "show"; +const CLASS_NAME_STATIC = "modal-static"; +const SELECTOR_DIALOG = ".modal-dialog"; +const SELECTOR_MODAL_BODY = ".modal-body"; +const Default$9 = { + backdrop: true, + focus: true, + keyboard: true +}; +const DefaultType$9 = { + backdrop: "(boolean|string)", + focus: "boolean", + keyboard: "boolean" +}; +let Modal$1 = class Modal extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); + this._backdrop = this._initializeBackDrop(); + this._focustrap = this._initializeFocusTrap(); + this._isShown = false; + this._isTransitioning = false; + this._scrollBar = new ScrollBarHelper(); + this._addEventListeners(); + } + // Getters + static get Default() { + return Default$9; + } + static get DefaultType() { + return DefaultType$9; + } + static get NAME() { + return NAME$j; + } + // Public + toggle(relatedTarget) { + return this._isShown ? this.hide() : this.show(relatedTarget); + } + show(relatedTarget) { + if (this._isShown || this._isTransitioning) { + return; + } + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$7, { + relatedTarget + }); + if (showEvent.defaultPrevented) { + return; + } + this._isShown = true; + this._isTransitioning = true; + this._scrollBar.hide(); + document.body.classList.add(CLASS_NAME_OPEN); + this._adjustDialog(); + this._backdrop.show(() => this._showElement(relatedTarget)); + } + hide() { + if (!this._isShown || this._isTransitioning) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$7); + if (hideEvent.defaultPrevented) { + return; + } + this._isShown = false; + this._isTransitioning = true; + this._focustrap.deactivate(); + this._element.classList.remove(CLASS_NAME_SHOW$6); + this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); + } + dispose() { + EventHandler.off(window, EVENT_KEY$8); + EventHandler.off(this._dialog, EVENT_KEY$8); + this._backdrop.dispose(); + this._focustrap.deactivate(); + super.dispose(); + } + handleUpdate() { + this._adjustDialog(); + } + // Private + _initializeBackDrop() { + return new Backdrop({ + isVisible: Boolean(this._config.backdrop) && Boolean(!this._config.modalNonInvasive), + // 'static' option will be translated to true, and booleans will keep their value, + isAnimated: this._isAnimated() + }); + } + _initializeFocusTrap() { + return new FocusTrap({ + trapElement: this._element + }); + } + _showElement(relatedTarget) { + if (!document.body.contains(this._element)) { + document.body.append(this._element); + } + this._element.style.display = "block"; + this._element.removeAttribute("aria-hidden"); + this._element.setAttribute("aria-modal", true); + this._element.setAttribute("role", "dialog"); + this._element.scrollTop = 0; + const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); + if (modalBody) { + modalBody.scrollTop = 0; + } + reflow(this._element); + this._element.classList.add(CLASS_NAME_SHOW$6); + const transitionComplete = () => { + if (this._config.focus) { + this._focustrap.activate(); + } + this._isTransitioning = false; + EventHandler.trigger(this._element, EVENT_SHOWN$7, { + relatedTarget + }); + }; + this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); + } + _addEventListeners() { + EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => { + if (event.key !== ESCAPE_KEY$1) { + return; + } + if (this._config.keyboard) { + this.hide(); + return; + } + this._triggerBackdropTransition(); + }); + EventHandler.on(window, EVENT_RESIZE, () => { + if (this._isShown && !this._isTransitioning) { + this._adjustDialog(); + } + }); + EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => { + EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => { + if (this._element !== event.target || this._element !== event2.target) { + return; + } + if (this._config.backdrop === "static") { + this._triggerBackdropTransition(); + return; + } + if (this._config.backdrop) { + this.hide(); + } + }); + }); + } + _hideModal() { + this._element.style.display = "none"; + this._element.setAttribute("aria-hidden", true); + this._element.removeAttribute("aria-modal"); + this._element.removeAttribute("role"); + this._isTransitioning = false; + this._backdrop.hide(() => { + document.body.classList.remove(CLASS_NAME_OPEN); + this._resetAdjustments(); + this._scrollBar.reset(); + EventHandler.trigger(this._element, EVENT_HIDDEN$7); + }); + } + _isAnimated() { + return this._element.classList.contains(CLASS_NAME_FADE$4); + } + _triggerBackdropTransition() { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); + if (hideEvent.defaultPrevented) { + return; + } + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const initialOverflowY = this._element.style.overflowY; + if (initialOverflowY === "hidden" || this._element.classList.contains(CLASS_NAME_STATIC)) { + return; + } + if (!isModalOverflowing) { + this._element.style.overflowY = "hidden"; + } + this._element.classList.add(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.classList.remove(CLASS_NAME_STATIC); + this._queueCallback(() => { + this._element.style.overflowY = initialOverflowY; + }, this._dialog); + }, this._dialog); + this._element.focus(); + } + /** + * The following methods are used to handle overflowing modals + */ + _adjustDialog() { + const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; + const scrollbarWidth = this._scrollBar.getWidth(); + const isBodyOverflowing = scrollbarWidth > 0; + if (isBodyOverflowing && !isModalOverflowing) { + const property = isRTL() ? "paddingLeft" : "paddingRight"; + this._element.style[property] = `${scrollbarWidth}px`; + } + if (!isBodyOverflowing && isModalOverflowing) { + const property = isRTL() ? "paddingRight" : "paddingLeft"; + this._element.style[property] = `${scrollbarWidth}px`; + } + } + _resetAdjustments() { + this._element.style.paddingLeft = ""; + this._element.style.paddingRight = ""; + } + // Static + static jQueryInterface(config, relatedTarget) { + return this.each(function() { + const data = Modal.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](relatedTarget); + }); + } +}; +const NAME$i = "modal"; +const EVENT_HIDE_BS$5 = "hide.bs.modal"; +const EVENT_HIDE_PREVENTED_BS = "hidePrevented.bs.modal"; +const EVENT_HIDDEN_BS$5 = "hidden.bs.modal"; +const EVENT_SHOW_BS$5 = "show.bs.modal"; +const EVENT_SHOWN_BS$5 = "shown.bs.modal"; +const EXTENDED_EVENTS$4 = [ + { name: "show", parametersToCopy: ["relatedTarget"] }, + { name: "shown", parametersToCopy: ["relatedTarget"] }, + { name: "hide" }, + { name: "hidePrevented" }, + { name: "hidden" } +]; +class Modal2 extends Modal$1 { + constructor(element2, data) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SHOW_BS$5); + EventHandler$1.off(this._element, EVENT_SHOWN_BS$5); + EventHandler$1.off(this._element, EVENT_HIDE_BS$5); + EventHandler$1.off(this._element, EVENT_HIDDEN_BS$5); + EventHandler$1.off(this._element, EVENT_HIDE_PREVENTED_BS); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$i; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS$4, NAME$i); + } +} +var top = "top"; +var bottom = "bottom"; +var right = "right"; +var left = "left"; +var auto = "auto"; +var basePlacements = [top, bottom, right, left]; +var start = "start"; +var end = "end"; +var clippingParents = "clippingParents"; +var viewport = "viewport"; +var popper = "popper"; +var reference = "reference"; +var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) { + return acc.concat([placement + "-" + start, placement + "-" + end]); +}, []); +var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) { + return acc.concat([placement, placement + "-" + start, placement + "-" + end]); +}, []); +var beforeRead = "beforeRead"; +var read = "read"; +var afterRead = "afterRead"; +var beforeMain = "beforeMain"; +var main = "main"; +var afterMain = "afterMain"; +var beforeWrite = "beforeWrite"; +var write = "write"; +var afterWrite = "afterWrite"; +var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; +function getNodeName(element2) { + return element2 ? (element2.nodeName || "").toLowerCase() : null; +} +function getWindow(node) { + if (node == null) { + return window; + } + if (node.toString() !== "[object Window]") { + var ownerDocument = node.ownerDocument; + return ownerDocument ? ownerDocument.defaultView || window : window; + } + return node; +} +function isElement(node) { + var OwnElement = getWindow(node).Element; + return node instanceof OwnElement || node instanceof Element; +} +function isHTMLElement(node) { + var OwnElement = getWindow(node).HTMLElement; + return node instanceof OwnElement || node instanceof HTMLElement; +} +function isShadowRoot(node) { + if (typeof ShadowRoot === "undefined") { + return false; + } + var OwnElement = getWindow(node).ShadowRoot; + return node instanceof OwnElement || node instanceof ShadowRoot; +} +function applyStyles(_ref) { + var state = _ref.state; + Object.keys(state.elements).forEach(function(name) { + var style = state.styles[name] || {}; + var attributes = state.attributes[name] || {}; + var element2 = state.elements[name]; + if (!isHTMLElement(element2) || !getNodeName(element2)) { + return; + } + Object.assign(element2.style, style); + Object.keys(attributes).forEach(function(name2) { + var value = attributes[name2]; + if (value === false) { + element2.removeAttribute(name2); + } else { + element2.setAttribute(name2, value === true ? "" : value); + } + }); + }); +} +function effect$2(_ref2) { + var state = _ref2.state; + var initialStyles = { + popper: { + position: state.options.strategy, + left: "0", + top: "0", + margin: "0" + }, + arrow: { + position: "absolute" + }, + reference: {} + }; + Object.assign(state.elements.popper.style, initialStyles.popper); + state.styles = initialStyles; + if (state.elements.arrow) { + Object.assign(state.elements.arrow.style, initialStyles.arrow); + } + return function() { + Object.keys(state.elements).forEach(function(name) { + var element2 = state.elements[name]; + var attributes = state.attributes[name] || {}; + var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); + var style = styleProperties.reduce(function(style2, property) { + style2[property] = ""; + return style2; + }, {}); + if (!isHTMLElement(element2) || !getNodeName(element2)) { + return; + } + Object.assign(element2.style, style); + Object.keys(attributes).forEach(function(attribute) { + element2.removeAttribute(attribute); + }); + }); + }; +} +const applyStyles$1 = { + name: "applyStyles", + enabled: true, + phase: "write", + fn: applyStyles, + effect: effect$2, + requires: ["computeStyles"] +}; +function getBasePlacement(placement) { + return placement.split("-")[0]; +} +var max = Math.max; +var min = Math.min; +var round = Math.round; +function getUAString() { + var uaData = navigator.userAgentData; + if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) { + return uaData.brands.map(function(item) { + return item.brand + "/" + item.version; + }).join(" "); + } + return navigator.userAgent; +} +function isLayoutViewport() { + return !/^((?!chrome|android).)*safari/i.test(getUAString()); +} +function getBoundingClientRect(element2, includeScale, isFixedStrategy) { + if (includeScale === void 0) { + includeScale = false; + } + if (isFixedStrategy === void 0) { + isFixedStrategy = false; + } + var clientRect = element2.getBoundingClientRect(); + var scaleX = 1; + var scaleY = 1; + if (includeScale && isHTMLElement(element2)) { + scaleX = element2.offsetWidth > 0 ? round(clientRect.width) / element2.offsetWidth || 1 : 1; + scaleY = element2.offsetHeight > 0 ? round(clientRect.height) / element2.offsetHeight || 1 : 1; + } + var _ref = isElement(element2) ? getWindow(element2) : window, visualViewport = _ref.visualViewport; + var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; + var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; + var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; + var width = clientRect.width / scaleX; + var height = clientRect.height / scaleY; + return { + width, + height, + top: y, + right: x + width, + bottom: y + height, + left: x, + x, + y + }; +} +function getLayoutRect(element2) { + var clientRect = getBoundingClientRect(element2); + var width = element2.offsetWidth; + var height = element2.offsetHeight; + if (Math.abs(clientRect.width - width) <= 1) { + width = clientRect.width; + } + if (Math.abs(clientRect.height - height) <= 1) { + height = clientRect.height; + } + return { + x: element2.offsetLeft, + y: element2.offsetTop, + width, + height + }; +} +function contains(parent, child) { + var rootNode = child.getRootNode && child.getRootNode(); + if (parent.contains(child)) { + return true; + } else if (rootNode && isShadowRoot(rootNode)) { + var next = child; + do { + if (next && parent.isSameNode(next)) { + return true; + } + next = next.parentNode || next.host; + } while (next); + } + return false; +} +function getComputedStyle$1(element2) { + return getWindow(element2).getComputedStyle(element2); +} +function isTableElement(element2) { + return ["table", "td", "th"].indexOf(getNodeName(element2)) >= 0; +} +function getDocumentElement(element2) { + return ((isElement(element2) ? element2.ownerDocument : ( + // $FlowFixMe[prop-missing] + element2.document + )) || window.document).documentElement; +} +function getParentNode(element2) { + if (getNodeName(element2) === "html") { + return element2; + } + return ( + // this is a quicker (but less type safe) way to save quite some bytes from the bundle + // $FlowFixMe[incompatible-return] + // $FlowFixMe[prop-missing] + element2.assignedSlot || // step into the shadow DOM of the parent of a slotted node + element2.parentNode || // DOM Element detected + (isShadowRoot(element2) ? element2.host : null) || // ShadowRoot detected + // $FlowFixMe[incompatible-call]: HTMLElement is a Node + getDocumentElement(element2) + ); +} +function getTrueOffsetParent(element2) { + if (!isHTMLElement(element2) || // https://github.com/popperjs/popper-core/issues/837 + getComputedStyle$1(element2).position === "fixed") { + return null; + } + return element2.offsetParent; +} +function getContainingBlock(element2) { + var isFirefox = /firefox/i.test(getUAString()); + var isIE = /Trident/i.test(getUAString()); + if (isIE && isHTMLElement(element2)) { + var elementCss = getComputedStyle$1(element2); + if (elementCss.position === "fixed") { + return null; + } + } + var currentNode = getParentNode(element2); + if (isShadowRoot(currentNode)) { + currentNode = currentNode.host; + } + while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) { + var css = getComputedStyle$1(currentNode); + if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") { + return currentNode; + } else { + currentNode = currentNode.parentNode; + } + } + return null; +} +function getOffsetParent(element2) { + var window2 = getWindow(element2); + var offsetParent = getTrueOffsetParent(element2); + while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === "static") { + offsetParent = getTrueOffsetParent(offsetParent); + } + if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle$1(offsetParent).position === "static")) { + return window2; + } + return offsetParent || getContainingBlock(element2) || window2; +} +function getMainAxisFromPlacement(placement) { + return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y"; +} +function within(min$1, value, max$1) { + return max(min$1, min(value, max$1)); +} +function withinMaxClamp(min2, value, max2) { + var v = within(min2, value, max2); + return v > max2 ? max2 : v; +} +function getFreshSideObject() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; +} +function mergePaddingObject(paddingObject) { + return Object.assign({}, getFreshSideObject(), paddingObject); +} +function expandToHashMap(value, keys) { + return keys.reduce(function(hashMap, key) { + hashMap[key] = value; + return hashMap; + }, {}); +} +var toPaddingObject = function toPaddingObject2(padding, state) { + padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, { + placement: state.placement + })) : padding; + return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); +}; +function arrow(_ref) { + var _state$modifiersData$; + var state = _ref.state, name = _ref.name, options = _ref.options; + var arrowElement = state.elements.arrow; + var popperOffsets2 = state.modifiersData.popperOffsets; + var basePlacement = getBasePlacement(state.placement); + var axis = getMainAxisFromPlacement(basePlacement); + var isVertical = [left, right].indexOf(basePlacement) >= 0; + var len = isVertical ? "height" : "width"; + if (!arrowElement || !popperOffsets2) { + return; + } + var paddingObject = toPaddingObject(options.padding, state); + var arrowRect = getLayoutRect(arrowElement); + var minProp = axis === "y" ? top : left; + var maxProp = axis === "y" ? bottom : right; + var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len]; + var startDiff = popperOffsets2[axis] - state.rects.reference[axis]; + var arrowOffsetParent = getOffsetParent(arrowElement); + var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; + var centerToReference = endDiff / 2 - startDiff / 2; + var min2 = paddingObject[minProp]; + var max2 = clientSize - arrowRect[len] - paddingObject[maxProp]; + var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; + var offset2 = within(min2, center, max2); + var axisProp = axis; + state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$); +} +function effect$1(_ref2) { + var state = _ref2.state, options = _ref2.options; + var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element; + if (arrowElement == null) { + return; + } + if (typeof arrowElement === "string") { + arrowElement = state.elements.popper.querySelector(arrowElement); + if (!arrowElement) { + return; + } + } + if (!contains(state.elements.popper, arrowElement)) { + return; + } + state.elements.arrow = arrowElement; +} +const arrow$1 = { + name: "arrow", + enabled: true, + phase: "main", + fn: arrow, + effect: effect$1, + requires: ["popperOffsets"], + requiresIfExists: ["preventOverflow"] +}; +function getVariation(placement) { + return placement.split("-")[1]; +} +var unsetSides = { + top: "auto", + right: "auto", + bottom: "auto", + left: "auto" +}; +function roundOffsetsByDPR(_ref, win) { + var x = _ref.x, y = _ref.y; + var dpr = win.devicePixelRatio || 1; + return { + x: round(x * dpr) / dpr || 0, + y: round(y * dpr) / dpr || 0 + }; +} +function mapToStyles(_ref2) { + var _Object$assign2; + var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed; + var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y; + var _ref3 = typeof roundOffsets === "function" ? roundOffsets({ + x, + y + }) : { + x, + y + }; + x = _ref3.x; + y = _ref3.y; + var hasX = offsets.hasOwnProperty("x"); + var hasY = offsets.hasOwnProperty("y"); + var sideX = left; + var sideY = top; + var win = window; + if (adaptive) { + var offsetParent = getOffsetParent(popper2); + var heightProp = "clientHeight"; + var widthProp = "clientWidth"; + if (offsetParent === getWindow(popper2)) { + offsetParent = getDocumentElement(popper2); + if (getComputedStyle$1(offsetParent).position !== "static" && position === "absolute") { + heightProp = "scrollHeight"; + widthProp = "scrollWidth"; + } + } + offsetParent = offsetParent; + if (placement === top || (placement === left || placement === right) && variation === end) { + sideY = bottom; + var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : ( + // $FlowFixMe[prop-missing] + offsetParent[heightProp] + ); + y -= offsetY - popperRect.height; + y *= gpuAcceleration ? 1 : -1; + } + if (placement === left || (placement === top || placement === bottom) && variation === end) { + sideX = right; + var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : ( + // $FlowFixMe[prop-missing] + offsetParent[widthProp] + ); + x -= offsetX - popperRect.width; + x *= gpuAcceleration ? 1 : -1; + } + } + var commonStyles = Object.assign({ + position + }, adaptive && unsetSides); + var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ + x, + y + }, getWindow(popper2)) : { + x, + y + }; + x = _ref4.x; + y = _ref4.y; + if (gpuAcceleration) { + var _Object$assign; + return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); + } + return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2)); +} +function computeStyles(_ref5) { + var state = _ref5.state, options = _ref5.options; + var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets; + var commonStyles = { + placement: getBasePlacement(state.placement), + variation: getVariation(state.placement), + popper: state.elements.popper, + popperRect: state.rects.popper, + gpuAcceleration, + isFixed: state.options.strategy === "fixed" + }; + if (state.modifiersData.popperOffsets != null) { + state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.popperOffsets, + position: state.options.strategy, + adaptive, + roundOffsets + }))); + } + if (state.modifiersData.arrow != null) { + state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { + offsets: state.modifiersData.arrow, + position: "absolute", + adaptive: false, + roundOffsets + }))); + } + state.attributes.popper = Object.assign({}, state.attributes.popper, { + "data-popper-placement": state.placement + }); +} +const computeStyles$1 = { + name: "computeStyles", + enabled: true, + phase: "beforeWrite", + fn: computeStyles, + data: {} +}; +var passive = { + passive: true +}; +function effect(_ref) { + var state = _ref.state, instance = _ref.instance, options = _ref.options; + var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize; + var window2 = getWindow(state.elements.popper); + var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); + if (scroll) { + scrollParents.forEach(function(scrollParent) { + scrollParent.addEventListener("scroll", instance.update, passive); + }); + } + if (resize) { + window2.addEventListener("resize", instance.update, passive); + } + return function() { + if (scroll) { + scrollParents.forEach(function(scrollParent) { + scrollParent.removeEventListener("scroll", instance.update, passive); + }); + } + if (resize) { + window2.removeEventListener("resize", instance.update, passive); + } + }; +} +const eventListeners = { + name: "eventListeners", + enabled: true, + phase: "write", + fn: function fn() { + }, + effect, + data: {} +}; +var hash$1 = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" +}; +function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, function(matched) { + return hash$1[matched]; + }); +} +var hash = { + start: "end", + end: "start" +}; +function getOppositeVariationPlacement(placement) { + return placement.replace(/start|end/g, function(matched) { + return hash[matched]; + }); +} +function getWindowScroll(node) { + var win = getWindow(node); + var scrollLeft = win.pageXOffset; + var scrollTop = win.pageYOffset; + return { + scrollLeft, + scrollTop + }; +} +function getWindowScrollBarX(element2) { + return getBoundingClientRect(getDocumentElement(element2)).left + getWindowScroll(element2).scrollLeft; +} +function getViewportRect(element2, strategy) { + var win = getWindow(element2); + var html = getDocumentElement(element2); + var visualViewport = win.visualViewport; + var width = html.clientWidth; + var height = html.clientHeight; + var x = 0; + var y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + var layoutViewport = isLayoutViewport(); + if (layoutViewport || !layoutViewport && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + return { + width, + height, + x: x + getWindowScrollBarX(element2), + y + }; +} +function getDocumentRect(element2) { + var _element$ownerDocumen; + var html = getDocumentElement(element2); + var winScroll = getWindowScroll(element2); + var body = (_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; + var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); + var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); + var x = -winScroll.scrollLeft + getWindowScrollBarX(element2); + var y = -winScroll.scrollTop; + if (getComputedStyle$1(body || html).direction === "rtl") { + x += max(html.clientWidth, body ? body.clientWidth : 0) - width; + } + return { + width, + height, + x, + y + }; +} +function isScrollParent(element2) { + var _getComputedStyle = getComputedStyle$1(element2), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY; + return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); +} +function getScrollParent(node) { + if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) { + return node.ownerDocument.body; + } + if (isHTMLElement(node) && isScrollParent(node)) { + return node; + } + return getScrollParent(getParentNode(node)); +} +function listScrollParents(element2, list) { + var _element$ownerDocumen; + if (list === void 0) { + list = []; + } + var scrollParent = getScrollParent(element2); + var isBody = scrollParent === ((_element$ownerDocumen = element2.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); + var win = getWindow(scrollParent); + var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; + var updatedList = list.concat(target); + return isBody ? updatedList : ( + // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here + updatedList.concat(listScrollParents(getParentNode(target))) + ); +} +function rectToClientRect(rect) { + return Object.assign({}, rect, { + left: rect.x, + top: rect.y, + right: rect.x + rect.width, + bottom: rect.y + rect.height + }); +} +function getInnerBoundingClientRect(element2, strategy) { + var rect = getBoundingClientRect(element2, false, strategy === "fixed"); + rect.top = rect.top + element2.clientTop; + rect.left = rect.left + element2.clientLeft; + rect.bottom = rect.top + element2.clientHeight; + rect.right = rect.left + element2.clientWidth; + rect.width = element2.clientWidth; + rect.height = element2.clientHeight; + rect.x = rect.left; + rect.y = rect.top; + return rect; +} +function getClientRectFromMixedType(element2, clippingParent, strategy) { + return clippingParent === viewport ? rectToClientRect(getViewportRect(element2, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element2))); +} +function getClippingParents(element2) { + var clippingParents2 = listScrollParents(getParentNode(element2)); + var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle$1(element2).position) >= 0; + var clipperElement = canEscapeClipping && isHTMLElement(element2) ? getOffsetParent(element2) : element2; + if (!isElement(clipperElement)) { + return []; + } + return clippingParents2.filter(function(clippingParent) { + return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body"; + }); +} +function getClippingRect(element2, boundary, rootBoundary, strategy) { + var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element2) : [].concat(boundary); + var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]); + var firstClippingParent = clippingParents2[0]; + var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) { + var rect = getClientRectFromMixedType(element2, clippingParent, strategy); + accRect.top = max(rect.top, accRect.top); + accRect.right = min(rect.right, accRect.right); + accRect.bottom = min(rect.bottom, accRect.bottom); + accRect.left = max(rect.left, accRect.left); + return accRect; + }, getClientRectFromMixedType(element2, firstClippingParent, strategy)); + clippingRect.width = clippingRect.right - clippingRect.left; + clippingRect.height = clippingRect.bottom - clippingRect.top; + clippingRect.x = clippingRect.left; + clippingRect.y = clippingRect.top; + return clippingRect; +} +function computeOffsets(_ref) { + var reference2 = _ref.reference, element2 = _ref.element, placement = _ref.placement; + var basePlacement = placement ? getBasePlacement(placement) : null; + var variation = placement ? getVariation(placement) : null; + var commonX = reference2.x + reference2.width / 2 - element2.width / 2; + var commonY = reference2.y + reference2.height / 2 - element2.height / 2; + var offsets; + switch (basePlacement) { + case top: + offsets = { + x: commonX, + y: reference2.y - element2.height + }; + break; + case bottom: + offsets = { + x: commonX, + y: reference2.y + reference2.height + }; + break; + case right: + offsets = { + x: reference2.x + reference2.width, + y: commonY + }; + break; + case left: + offsets = { + x: reference2.x - element2.width, + y: commonY + }; + break; + default: + offsets = { + x: reference2.x, + y: reference2.y + }; + } + var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; + if (mainAxis != null) { + var len = mainAxis === "y" ? "height" : "width"; + switch (variation) { + case start: + offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element2[len] / 2); + break; + case end: + offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element2[len] / 2); + break; + } + } + return offsets; +} +function detectOverflow(state, options) { + if (options === void 0) { + options = {}; + } + var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding; + var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements)); + var altContext = elementContext === popper ? reference : popper; + var popperRect = state.rects.popper; + var element2 = state.elements[altBoundary ? altContext : elementContext]; + var clippingClientRect = getClippingRect(isElement(element2) ? element2 : element2.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); + var referenceClientRect = getBoundingClientRect(state.elements.reference); + var popperOffsets2 = computeOffsets({ + reference: referenceClientRect, + element: popperRect, + strategy: "absolute", + placement + }); + var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2)); + var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; + var overflowOffsets = { + top: clippingClientRect.top - elementClientRect.top + paddingObject.top, + bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, + left: clippingClientRect.left - elementClientRect.left + paddingObject.left, + right: elementClientRect.right - clippingClientRect.right + paddingObject.right + }; + var offsetData = state.modifiersData.offset; + if (elementContext === popper && offsetData) { + var offset2 = offsetData[placement]; + Object.keys(overflowOffsets).forEach(function(key) { + var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; + var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x"; + overflowOffsets[key] += offset2[axis] * multiply; + }); + } + return overflowOffsets; +} +function computeAutoPlacement(state, options) { + if (options === void 0) { + options = {}; + } + var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; + var variation = getVariation(placement); + var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) { + return getVariation(placement2) === variation; + }) : basePlacements; + var allowedPlacements = placements$1.filter(function(placement2) { + return allowedAutoPlacements.indexOf(placement2) >= 0; + }); + if (allowedPlacements.length === 0) { + allowedPlacements = placements$1; + } + var overflows = allowedPlacements.reduce(function(acc, placement2) { + acc[placement2] = detectOverflow(state, { + placement: placement2, + boundary, + rootBoundary, + padding + })[getBasePlacement(placement2)]; + return acc; + }, {}); + return Object.keys(overflows).sort(function(a, b) { + return overflows[a] - overflows[b]; + }); +} +function getExpandedFallbackPlacements(placement) { + if (getBasePlacement(placement) === auto) { + return []; + } + var oppositePlacement = getOppositePlacement(placement); + return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; +} +function flip(_ref) { + var state = _ref.state, options = _ref.options, name = _ref.name; + if (state.modifiersData[name]._skip) { + return; + } + var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements; + var preferredPlacement = state.options.placement; + var basePlacement = getBasePlacement(preferredPlacement); + var isBasePlacement = basePlacement === preferredPlacement; + var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); + var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) { + return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, { + placement: placement2, + boundary, + rootBoundary, + padding, + flipVariations, + allowedAutoPlacements + }) : placement2); + }, []); + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var checksMap = /* @__PURE__ */ new Map(); + var makeFallbackChecks = true; + var firstFittingPlacement = placements2[0]; + for (var i = 0; i < placements2.length; i++) { + var placement = placements2[i]; + var _basePlacement = getBasePlacement(placement); + var isStartVariation = getVariation(placement) === start; + var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; + var len = isVertical ? "width" : "height"; + var overflow = detectOverflow(state, { + placement, + boundary, + rootBoundary, + altBoundary, + padding + }); + var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; + if (referenceRect[len] > popperRect[len]) { + mainVariationSide = getOppositePlacement(mainVariationSide); + } + var altVariationSide = getOppositePlacement(mainVariationSide); + var checks = []; + if (checkMainAxis) { + checks.push(overflow[_basePlacement] <= 0); + } + if (checkAltAxis) { + checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); + } + if (checks.every(function(check) { + return check; + })) { + firstFittingPlacement = placement; + makeFallbackChecks = false; + break; + } + checksMap.set(placement, checks); + } + if (makeFallbackChecks) { + var numberOfChecks = flipVariations ? 3 : 1; + var _loop = function _loop2(_i2) { + var fittingPlacement = placements2.find(function(placement2) { + var checks2 = checksMap.get(placement2); + if (checks2) { + return checks2.slice(0, _i2).every(function(check) { + return check; + }); + } + }); + if (fittingPlacement) { + firstFittingPlacement = fittingPlacement; + return "break"; + } + }; + for (var _i = numberOfChecks; _i > 0; _i--) { + var _ret = _loop(_i); + if (_ret === "break") + break; + } + } + if (state.placement !== firstFittingPlacement) { + state.modifiersData[name]._skip = true; + state.placement = firstFittingPlacement; + state.reset = true; + } +} +const flip$1 = { + name: "flip", + enabled: true, + phase: "main", + fn: flip, + requiresIfExists: ["offset"], + data: { + _skip: false + } +}; +function getSideOffsets(overflow, rect, preventedOffsets) { + if (preventedOffsets === void 0) { + preventedOffsets = { + x: 0, + y: 0 + }; + } + return { + top: overflow.top - rect.height - preventedOffsets.y, + right: overflow.right - rect.width + preventedOffsets.x, + bottom: overflow.bottom - rect.height + preventedOffsets.y, + left: overflow.left - rect.width - preventedOffsets.x + }; +} +function isAnySideFullyClipped(overflow) { + return [top, right, bottom, left].some(function(side) { + return overflow[side] >= 0; + }); +} +function hide(_ref) { + var state = _ref.state, name = _ref.name; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var preventedOffsets = state.modifiersData.preventOverflow; + var referenceOverflow = detectOverflow(state, { + elementContext: "reference" + }); + var popperAltOverflow = detectOverflow(state, { + altBoundary: true + }); + var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); + var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); + var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); + var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); + state.modifiersData[name] = { + referenceClippingOffsets, + popperEscapeOffsets, + isReferenceHidden, + hasPopperEscaped + }; + state.attributes.popper = Object.assign({}, state.attributes.popper, { + "data-popper-reference-hidden": isReferenceHidden, + "data-popper-escaped": hasPopperEscaped + }); +} +const hide$1 = { + name: "hide", + enabled: true, + phase: "main", + requiresIfExists: ["preventOverflow"], + fn: hide +}; +function distanceAndSkiddingToXY(placement, rects, offset2) { + var basePlacement = getBasePlacement(placement); + var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; + var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, { + placement + })) : offset2, skidding = _ref[0], distance = _ref[1]; + skidding = skidding || 0; + distance = (distance || 0) * invertDistance; + return [left, right].indexOf(basePlacement) >= 0 ? { + x: distance, + y: skidding + } : { + x: skidding, + y: distance + }; +} +function offset(_ref2) { + var state = _ref2.state, options = _ref2.options, name = _ref2.name; + var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset; + var data = placements.reduce(function(acc, placement) { + acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2); + return acc; + }, {}); + var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y; + if (state.modifiersData.popperOffsets != null) { + state.modifiersData.popperOffsets.x += x; + state.modifiersData.popperOffsets.y += y; + } + state.modifiersData[name] = data; +} +const offset$1 = { + name: "offset", + enabled: true, + phase: "main", + requires: ["popperOffsets"], + fn: offset +}; +function popperOffsets(_ref) { + var state = _ref.state, name = _ref.name; + state.modifiersData[name] = computeOffsets({ + reference: state.rects.reference, + element: state.rects.popper, + strategy: "absolute", + placement: state.placement + }); +} +const popperOffsets$1 = { + name: "popperOffsets", + enabled: true, + phase: "read", + fn: popperOffsets, + data: {} +}; +function getAltAxis(axis) { + return axis === "x" ? "y" : "x"; +} +function preventOverflow(_ref) { + var state = _ref.state, options = _ref.options, name = _ref.name; + var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; + var overflow = detectOverflow(state, { + boundary, + rootBoundary, + padding, + altBoundary + }); + var basePlacement = getBasePlacement(state.placement); + var variation = getVariation(state.placement); + var isBasePlacement = !variation; + var mainAxis = getMainAxisFromPlacement(basePlacement); + var altAxis = getAltAxis(mainAxis); + var popperOffsets2 = state.modifiersData.popperOffsets; + var referenceRect = state.rects.reference; + var popperRect = state.rects.popper; + var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, { + placement: state.placement + })) : tetherOffset; + var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? { + mainAxis: tetherOffsetValue, + altAxis: tetherOffsetValue + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, tetherOffsetValue); + var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; + var data = { + x: 0, + y: 0 + }; + if (!popperOffsets2) { + return; + } + if (checkMainAxis) { + var _offsetModifierState$; + var mainSide = mainAxis === "y" ? top : left; + var altSide = mainAxis === "y" ? bottom : right; + var len = mainAxis === "y" ? "height" : "width"; + var offset2 = popperOffsets2[mainAxis]; + var min$1 = offset2 + overflow[mainSide]; + var max$1 = offset2 - overflow[altSide]; + var additive = tether ? -popperRect[len] / 2 : 0; + var minLen = variation === start ? referenceRect[len] : popperRect[len]; + var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; + var arrowElement = state.elements.arrow; + var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { + width: 0, + height: 0 + }; + var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject(); + var arrowPaddingMin = arrowPaddingObject[mainSide]; + var arrowPaddingMax = arrowPaddingObject[altSide]; + var arrowLen = within(0, referenceRect[len], arrowRect[len]); + var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; + var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; + var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); + var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; + var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; + var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset; + var tetherMax = offset2 + maxOffset - offsetModifierValue; + var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset2, tether ? max(max$1, tetherMax) : max$1); + popperOffsets2[mainAxis] = preventedOffset; + data[mainAxis] = preventedOffset - offset2; + } + if (checkAltAxis) { + var _offsetModifierState$2; + var _mainSide = mainAxis === "x" ? top : left; + var _altSide = mainAxis === "x" ? bottom : right; + var _offset = popperOffsets2[altAxis]; + var _len = altAxis === "y" ? "height" : "width"; + var _min = _offset + overflow[_mainSide]; + var _max = _offset - overflow[_altSide]; + var isOriginSide = [top, left].indexOf(basePlacement) !== -1; + var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; + var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; + var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; + var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); + popperOffsets2[altAxis] = _preventedOffset; + data[altAxis] = _preventedOffset - _offset; + } + state.modifiersData[name] = data; +} +const preventOverflow$1 = { + name: "preventOverflow", + enabled: true, + phase: "main", + fn: preventOverflow, + requiresIfExists: ["offset"] +}; +function getHTMLElementScroll(element2) { + return { + scrollLeft: element2.scrollLeft, + scrollTop: element2.scrollTop + }; +} +function getNodeScroll(node) { + if (node === getWindow(node) || !isHTMLElement(node)) { + return getWindowScroll(node); + } else { + return getHTMLElementScroll(node); + } +} +function isElementScaled(element2) { + var rect = element2.getBoundingClientRect(); + var scaleX = round(rect.width) / element2.offsetWidth || 1; + var scaleY = round(rect.height) / element2.offsetHeight || 1; + return scaleX !== 1 || scaleY !== 1; +} +function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { + if (isFixed === void 0) { + isFixed = false; + } + var isOffsetParentAnElement = isHTMLElement(offsetParent); + var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); + var documentElement = getDocumentElement(offsetParent); + var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); + var scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + var offsets = { + x: 0, + y: 0 + }; + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || // https://github.com/popperjs/popper-core/issues/1078 + isScrollParent(documentElement)) { + scroll = getNodeScroll(offsetParent); + } + if (isHTMLElement(offsetParent)) { + offsets = getBoundingClientRect(offsetParent, true); + offsets.x += offsetParent.clientLeft; + offsets.y += offsetParent.clientTop; + } else if (documentElement) { + offsets.x = getWindowScrollBarX(documentElement); + } + } + return { + x: rect.left + scroll.scrollLeft - offsets.x, + y: rect.top + scroll.scrollTop - offsets.y, + width: rect.width, + height: rect.height + }; +} +function order(modifiers) { + var map = /* @__PURE__ */ new Map(); + var visited = /* @__PURE__ */ new Set(); + var result = []; + modifiers.forEach(function(modifier) { + map.set(modifier.name, modifier); + }); + function sort(modifier) { + visited.add(modifier.name); + var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); + requires.forEach(function(dep) { + if (!visited.has(dep)) { + var depModifier = map.get(dep); + if (depModifier) { + sort(depModifier); + } + } + }); + result.push(modifier); + } + modifiers.forEach(function(modifier) { + if (!visited.has(modifier.name)) { + sort(modifier); + } + }); + return result; +} +function orderModifiers(modifiers) { + var orderedModifiers = order(modifiers); + return modifierPhases.reduce(function(acc, phase) { + return acc.concat(orderedModifiers.filter(function(modifier) { + return modifier.phase === phase; + })); + }, []); +} +function debounce(fn2) { + var pending; + return function() { + if (!pending) { + pending = new Promise(function(resolve) { + Promise.resolve().then(function() { + pending = void 0; + resolve(fn2()); + }); + }); + } + return pending; + }; +} +function mergeByName(modifiers) { + var merged = modifiers.reduce(function(merged2, current) { + var existing = merged2[current.name]; + merged2[current.name] = existing ? Object.assign({}, existing, current, { + options: Object.assign({}, existing.options, current.options), + data: Object.assign({}, existing.data, current.data) + }) : current; + return merged2; + }, {}); + return Object.keys(merged).map(function(key) { + return merged[key]; + }); +} +var DEFAULT_OPTIONS = { + placement: "bottom", + modifiers: [], + strategy: "absolute" +}; +function areValidElements() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + return !args.some(function(element2) { + return !(element2 && typeof element2.getBoundingClientRect === "function"); + }); +} +function popperGenerator(generatorOptions) { + if (generatorOptions === void 0) { + generatorOptions = {}; + } + var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; + return function createPopper2(reference2, popper2, options) { + if (options === void 0) { + options = defaultOptions; + } + var state = { + placement: "bottom", + orderedModifiers: [], + options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), + modifiersData: {}, + elements: { + reference: reference2, + popper: popper2 + }, + attributes: {}, + styles: {} + }; + var effectCleanupFns = []; + var isDestroyed = false; + var instance = { + state, + setOptions: function setOptions(setOptionsAction) { + var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction; + cleanupModifierEffects(); + state.options = Object.assign({}, defaultOptions, state.options, options2); + state.scrollParents = { + reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [], + popper: listScrollParents(popper2) + }; + var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers))); + state.orderedModifiers = orderedModifiers.filter(function(m) { + return m.enabled; + }); + runModifierEffects(); + return instance.update(); + }, + // Sync update – it will always be executed, even if not necessary. This + // is useful for low frequency updates where sync behavior simplifies the + // logic. + // For high frequency updates (e.g. `resize` and `scroll` events), always + // prefer the async Popper#update method + forceUpdate: function forceUpdate() { + if (isDestroyed) { + return; + } + var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper; + if (!areValidElements(reference3, popper3)) { + return; + } + state.rects = { + reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"), + popper: getLayoutRect(popper3) + }; + state.reset = false; + state.placement = state.options.placement; + state.orderedModifiers.forEach(function(modifier) { + return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); + }); + for (var index = 0; index < state.orderedModifiers.length; index++) { + if (state.reset === true) { + state.reset = false; + index = -1; + continue; + } + var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name; + if (typeof fn2 === "function") { + state = fn2({ + state, + options: _options, + name, + instance + }) || state; + } + } + }, + // Async and optimistically optimized update – it will not be executed if + // not necessary (debounced to run at most once-per-tick) + update: debounce(function() { + return new Promise(function(resolve) { + instance.forceUpdate(); + resolve(state); + }); + }), + destroy: function destroy() { + cleanupModifierEffects(); + isDestroyed = true; + } + }; + if (!areValidElements(reference2, popper2)) { + return instance; + } + instance.setOptions(options).then(function(state2) { + if (!isDestroyed && options.onFirstUpdate) { + options.onFirstUpdate(state2); + } + }); + function runModifierEffects() { + state.orderedModifiers.forEach(function(_ref) { + var name = _ref.name, _ref$options = _ref.options, options2 = _ref$options === void 0 ? {} : _ref$options, effect2 = _ref.effect; + if (typeof effect2 === "function") { + var cleanupFn = effect2({ + state, + name, + instance, + options: options2 + }); + var noopFn = function noopFn2() { + }; + effectCleanupFns.push(cleanupFn || noopFn); + } + }); + } + function cleanupModifierEffects() { + effectCleanupFns.forEach(function(fn2) { + return fn2(); + }); + effectCleanupFns = []; + } + return instance; + }; +} +var createPopper$2 = /* @__PURE__ */ popperGenerator(); +var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; +var createPopper$1 = /* @__PURE__ */ popperGenerator({ + defaultModifiers: defaultModifiers$1 +}); +var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; +var createPopper = /* @__PURE__ */ popperGenerator({ + defaultModifiers +}); +const Popper = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ + __proto__: null, + afterMain, + afterRead, + afterWrite, + applyStyles: applyStyles$1, + arrow: arrow$1, + auto, + basePlacements, + beforeMain, + beforeRead, + beforeWrite, + bottom, + clippingParents, + computeStyles: computeStyles$1, + createPopper, + createPopperBase: createPopper$2, + createPopperLite: createPopper$1, + detectOverflow, + end, + eventListeners, + flip: flip$1, + hide: hide$1, + left, + main, + modifierPhases, + offset: offset$1, + placements, + popper, + popperGenerator, + popperOffsets: popperOffsets$1, + preventOverflow: preventOverflow$1, + read, + reference, + right, + start, + top, + variationPlacements, + viewport, + write +}, Symbol.toStringTag, { value: "Module" })); +const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; +const DefaultAllowlist = { + // Global attributes allowed on any supplied element below. + "*": ["class", "dir", "id", "lang", "role", ARIA_ATTRIBUTE_PATTERN], + a: ["target", "href", "title", "rel"], + area: [], + b: [], + br: [], + col: [], + code: [], + dd: [], + div: [], + dl: [], + dt: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ["src", "srcset", "alt", "title", "width", "height"], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] +}; +const uriAttributes = /* @__PURE__ */ new Set([ + "background", + "cite", + "href", + "itemtype", + "longdesc", + "poster", + "src", + "xlink:href" +]); +const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i; +const allowedAttribute = (attribute, allowedAttributeList) => { + const attributeName = attribute.nodeName.toLowerCase(); + if (allowedAttributeList.includes(attributeName)) { + if (uriAttributes.has(attributeName)) { + return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)); + } + return true; + } + return allowedAttributeList.filter((attributeRegex) => attributeRegex instanceof RegExp).some((regex) => regex.test(attributeName)); +}; +function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { + if (!unsafeHtml.length) { + return unsafeHtml; + } + if (sanitizeFunction && typeof sanitizeFunction === "function") { + return sanitizeFunction(unsafeHtml); + } + const domParser = new window.DOMParser(); + const createdDocument = domParser.parseFromString(unsafeHtml, "text/html"); + const elements = [].concat(...createdDocument.body.querySelectorAll("*")); + for (const element2 of elements) { + const elementName = element2.nodeName.toLowerCase(); + if (!Object.keys(allowList).includes(elementName)) { + element2.remove(); + continue; + } + const attributeList = [].concat(...element2.attributes); + const allowedAttributes = [].concat(allowList["*"] || [], allowList[elementName] || []); + for (const attribute of attributeList) { + if (!allowedAttribute(attribute, allowedAttributes)) { + element2.removeAttribute(attribute.nodeName); + } + } + } + return createdDocument.body.innerHTML; +} +const NAME$h = "TemplateFactory"; +const Default$8 = { + allowList: DefaultAllowlist, + content: {}, + // { selector : text , selector2 : text2 , } + extraClass: "", + html: false, + sanitize: true, + sanitizeFn: null, + template: "
" +}; +const DefaultType$8 = { + allowList: "object", + content: "object", + extraClass: "(string|function)", + html: "boolean", + sanitize: "boolean", + sanitizeFn: "(null|function)", + template: "string" +}; +const DefaultContentType = { + entry: "(string|element|function|null)", + selector: "(string|element)" +}; +class TemplateFactory extends Config { + constructor(config) { + super(); + this._config = this._getConfig(config); + } + // Getters + static get Default() { + return Default$8; + } + static get DefaultType() { + return DefaultType$8; + } + static get NAME() { + return NAME$h; + } + // Public + getContent() { + return Object.values(this._config.content).map((config) => this._resolvePossibleFunction(config)).filter(Boolean); + } + hasContent() { + return this.getContent().length > 0; + } + changeContent(content) { + this._checkContent(content); + this._config.content = { ...this._config.content, ...content }; + return this; + } + toHtml() { + const templateWrapper = document.createElement("div"); + templateWrapper.innerHTML = this._maybeSanitize(this._config.template); + for (const [selector, text] of Object.entries(this._config.content)) { + this._setContent(templateWrapper, text, selector); + } + const template = templateWrapper.children[0]; + const extraClass = this._resolvePossibleFunction(this._config.extraClass); + if (extraClass) { + template.classList.add(...extraClass.split(" ")); + } + return template; + } + // Private + _typeCheckConfig(config) { + super._typeCheckConfig(config); + this._checkContent(config.content); + } + _checkContent(arg) { + for (const [selector, content] of Object.entries(arg)) { + super._typeCheckConfig({ selector, entry: content }, DefaultContentType); + } + } + _setContent(template, content, selector) { + const templateElement = SelectorEngine.findOne(selector, template); + if (!templateElement) { + return; + } + content = this._resolvePossibleFunction(content); + if (!content) { + templateElement.remove(); + return; + } + if (isElement$1(content)) { + this._putElementInTemplate(getElement(content), templateElement); + return; + } + if (this._config.html) { + templateElement.innerHTML = this._maybeSanitize(content); + return; + } + templateElement.textContent = content; + } + _maybeSanitize(arg) { + return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; + } + _resolvePossibleFunction(arg) { + return execute(arg, [this]); + } + _putElementInTemplate(element2, templateElement) { + if (this._config.html) { + templateElement.innerHTML = ""; + templateElement.append(element2); + return; + } + templateElement.textContent = element2.textContent; + } +} +const NAME$g = "tooltip"; +const DISALLOWED_ATTRIBUTES = /* @__PURE__ */ new Set(["sanitize", "allowList", "sanitizeFn"]); +const CLASS_NAME_FADE$3 = "fade"; +const CLASS_NAME_MODAL = "modal"; +const CLASS_NAME_SHOW$5 = "show"; +const SELECTOR_TOOLTIP_INNER = ".tooltip-inner"; +const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; +const EVENT_MODAL_HIDE = "hide.bs.modal"; +const TRIGGER_HOVER = "hover"; +const TRIGGER_FOCUS = "focus"; +const TRIGGER_CLICK = "click"; +const TRIGGER_MANUAL = "manual"; +const EVENT_HIDE$6 = "hide"; +const EVENT_HIDDEN$6 = "hidden"; +const EVENT_SHOW$6 = "show"; +const EVENT_SHOWN$6 = "shown"; +const EVENT_INSERTED = "inserted"; +const EVENT_CLICK$1 = "click"; +const EVENT_FOCUSIN$1 = "focusin"; +const EVENT_FOCUSOUT$1 = "focusout"; +const EVENT_MOUSEENTER = "mouseenter"; +const EVENT_MOUSELEAVE = "mouseleave"; +const AttachmentMap = { + AUTO: "auto", + TOP: "top", + RIGHT: isRTL() ? "left" : "right", + BOTTOM: "bottom", + LEFT: isRTL() ? "right" : "left" +}; +const Default$7 = { + allowList: DefaultAllowlist, + animation: true, + boundary: "clippingParents", + container: false, + customClass: "", + delay: 0, + fallbackPlacements: ["top", "right", "bottom", "left"], + html: false, + offset: [0, 6], + placement: "top", + popperConfig: null, + sanitize: true, + sanitizeFn: null, + selector: false, + template: '', + title: "", + trigger: "hover focus" +}; +const DefaultType$7 = { + allowList: "object", + animation: "boolean", + boundary: "(string|element)", + container: "(string|element|boolean)", + customClass: "(string|function)", + delay: "(number|object)", + fallbackPlacements: "array", + html: "boolean", + offset: "(array|string|function)", + placement: "(string|function)", + popperConfig: "(null|object|function)", + sanitize: "boolean", + sanitizeFn: "(null|function)", + selector: "(string|boolean)", + template: "string", + title: "(string|element|function)", + trigger: "string" +}; +let Tooltip$1 = class Tooltip extends BaseComponent$1 { + constructor(element2, config) { + if (typeof Popper === "undefined") { + throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)"); + } + super(element2, config); + this._isEnabled = true; + this._timeout = 0; + this._isHovered = null; + this._activeTrigger = {}; + this._popper = null; + this._templateFactory = null; + this._newContent = null; + this.tip = null; + this._setListeners(); + if (!this._config.selector) { + this._fixTitle(); + } + } + // Getters + static get Default() { + return Default$7; + } + static get DefaultType() { + return DefaultType$7; + } + static get NAME() { + return NAME$g; + } + // Public + enable() { + this._isEnabled = true; + } + disable() { + this._isEnabled = false; + } + toggleEnabled() { + this._isEnabled = !this._isEnabled; + } + toggle() { + if (!this._isEnabled) { + return; + } + this._activeTrigger.click = !this._activeTrigger.click; + if (this._isShown()) { + this._leave(); + return; + } + this._enter(); + } + dispose() { + clearTimeout(this._timeout); + EventHandler.off( + this._element.closest(SELECTOR_MODAL), + EVENT_MODAL_HIDE, + this._hideModalHandler + ); + if (this._element.getAttribute("data-mdb-original-title")) { + this._element.setAttribute("title", this._element.getAttribute("data-mdb-original-title")); + } + this._disposePopper(); + super.dispose(); + } + show() { + if (this._element.style.display === "none") { + throw new Error("Please use show on visible elements"); + } + if (!(this._isWithContent() && this._isEnabled)) { + return; + } + const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$6)); + const shadowRoot = findShadowRoot(this._element); + const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains( + this._element + ); + if (showEvent.defaultPrevented || !isInTheDom) { + return; + } + this._disposePopper(); + const tip = this._getTipElement(); + this._element.setAttribute("aria-describedby", tip.getAttribute("id")); + const { container } = this._config; + if (!this._element.ownerDocument.documentElement.contains(this.tip)) { + container.append(tip); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); + } + this._popper = this._createPopper(tip); + tip.classList.add(CLASS_NAME_SHOW$5); + if ("ontouchstart" in document.documentElement) { + for (const element2 of [].concat(...document.body.children)) { + EventHandler.on(element2, "mouseover", noop); + } + } + const complete = () => { + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$6)); + if (this._isHovered === false) { + this._leave(); + } + this._isHovered = false; + }; + this._queueCallback(complete, this.tip, this._isAnimated()); + } + hide() { + if (!this._isShown()) { + return; + } + const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$6)); + if (hideEvent.defaultPrevented) { + return; + } + const tip = this._getTipElement(); + tip.classList.remove(CLASS_NAME_SHOW$5); + if ("ontouchstart" in document.documentElement) { + for (const element2 of [].concat(...document.body.children)) { + EventHandler.off(element2, "mouseover", noop); + } + } + this._activeTrigger[TRIGGER_CLICK] = false; + this._activeTrigger[TRIGGER_FOCUS] = false; + this._activeTrigger[TRIGGER_HOVER] = false; + this._isHovered = null; + const complete = () => { + if (this._isWithActiveTrigger()) { + return; + } + if (!this._isHovered) { + this._disposePopper(); + } + this._element.removeAttribute("aria-describedby"); + EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$6)); + }; + this._queueCallback(complete, this.tip, this._isAnimated()); + } + update() { + if (this._popper) { + this._popper.update(); + } + } + // Protected + _isWithContent() { + return Boolean(this._getTitle()); + } + _getTipElement() { + if (!this.tip) { + this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); + } + return this.tip; + } + _createTipElement(content) { + const tip = this._getTemplateFactory(content).toHtml(); + if (!tip) { + return null; + } + tip.classList.remove(CLASS_NAME_FADE$3, CLASS_NAME_SHOW$5); + tip.classList.add(`bs-${this.constructor.NAME}-auto`); + const tipId = getUID(this.constructor.NAME).toString(); + tip.setAttribute("id", tipId); + if (this._isAnimated()) { + tip.classList.add(CLASS_NAME_FADE$3); + } + return tip; + } + setContent(content) { + this._newContent = content; + if (this._isShown()) { + this._disposePopper(); + this.show(); + } + } + _getTemplateFactory(content) { + if (this._templateFactory) { + this._templateFactory.changeContent(content); + } else { + this._templateFactory = new TemplateFactory({ + ...this._config, + // the `content` var has to be after `this._config` + // to override config.content in case of popover + content, + extraClass: this._resolvePossibleFunction(this._config.customClass) + }); + } + return this._templateFactory; + } + _getContentForTemplate() { + return { + [SELECTOR_TOOLTIP_INNER]: this._getTitle() + }; + } + _getTitle() { + return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute("data-mdb-original-title"); + } + // Private + _initializeOnDelegatedTarget(event) { + return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); + } + _isAnimated() { + return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$3); + } + _isShown() { + return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$5); + } + _createPopper(tip) { + const placement = execute(this._config.placement, [this, tip, this._element]); + const attachment = AttachmentMap[placement.toUpperCase()]; + return createPopper(this._element, tip, this._getPopperConfig(attachment)); + } + _getOffset() { + const { offset: offset2 } = this._config; + if (typeof offset2 === "string") { + return offset2.split(",").map((value) => Number.parseInt(value, 10)); + } + if (typeof offset2 === "function") { + return (popperData) => offset2(popperData, this._element); + } + return offset2; + } + _resolvePossibleFunction(arg) { + return execute(arg, [this._element]); + } + _getPopperConfig(attachment) { + const defaultBsPopperConfig = { + placement: attachment, + modifiers: [ + { + name: "flip", + options: { + fallbackPlacements: this._config.fallbackPlacements + } + }, + { + name: "offset", + options: { + offset: this._getOffset() + } + }, + { + name: "preventOverflow", + options: { + boundary: this._config.boundary + } + }, + { + name: "arrow", + options: { + element: `.${this.constructor.NAME}-arrow` + } + }, + { + name: "preSetPlacement", + enabled: true, + phase: "beforeMain", + fn: (data) => { + this._getTipElement().setAttribute("data-popper-placement", data.state.placement); + } + } + ] + }; + return { + ...defaultBsPopperConfig, + ...execute(this._config.popperConfig, [defaultBsPopperConfig]) + }; + } + _setListeners() { + const triggers = this._config.trigger.split(" "); + for (const trigger of triggers) { + if (trigger === "click") { + EventHandler.on( + this._element, + this.constructor.eventName(EVENT_CLICK$1), + this._config.selector, + (event) => { + const context = this._initializeOnDelegatedTarget(event); + context.toggle(); + } + ); + } else if (trigger !== TRIGGER_MANUAL) { + const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); + const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); + EventHandler.on(this._element, eventIn, this._config.selector, (event) => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === "focusin" ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; + context._enter(); + }); + EventHandler.on(this._element, eventOut, this._config.selector, (event) => { + const context = this._initializeOnDelegatedTarget(event); + context._activeTrigger[event.type === "focusout" ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); + context._leave(); + }); + } + } + this._hideModalHandler = () => { + if (this._element) { + this.hide(); + } + }; + EventHandler.on( + this._element.closest(SELECTOR_MODAL), + EVENT_MODAL_HIDE, + this._hideModalHandler + ); + } + _fixTitle() { + const title = this._element.getAttribute("title"); + if (!title) { + return; + } + if (!this._element.getAttribute("aria-label") && !this._element.textContent.trim()) { + this._element.setAttribute("aria-label", title); + } + this._element.setAttribute("data-mdb-original-title", title); + this._element.removeAttribute("title"); + } + _enter() { + if (this._isShown() || this._isHovered) { + this._isHovered = true; + return; + } + this._isHovered = true; + this._setTimeout(() => { + if (this._isHovered) { + this.show(); + } + }, this._config.delay.show); + } + _leave() { + if (this._isWithActiveTrigger()) { + return; + } + this._isHovered = false; + this._setTimeout(() => { + if (!this._isHovered) { + this.hide(); + } + }, this._config.delay.hide); + } + _setTimeout(handler, timeout) { + clearTimeout(this._timeout); + this._timeout = setTimeout(handler, timeout); + } + _isWithActiveTrigger() { + return Object.values(this._activeTrigger).includes(true); + } + _getConfig(config) { + const dataAttributes = Manipulator.getDataAttributes(this._element); + for (const dataAttribute of Object.keys(dataAttributes)) { + if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { + delete dataAttributes[dataAttribute]; + } + } + config = { + ...dataAttributes, + ...typeof config === "object" && config ? config : {} + }; + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + config.container = config.container === false ? document.body : getElement(config.container); + if (typeof config.delay === "number") { + config.delay = { + show: config.delay, + hide: config.delay + }; + } + if (typeof config.title === "number") { + config.title = config.title.toString(); + } + if (typeof config.content === "number") { + config.content = config.content.toString(); + } + return config; + } + _getDelegateConfig() { + const config = {}; + for (const [key, value] of Object.entries(this._config)) { + if (this.constructor.Default[key] !== value) { + config[key] = value; + } + } + config.selector = false; + config.trigger = "manual"; + return config; + } + _disposePopper() { + if (this._popper) { + this._popper.destroy(); + this._popper = null; + } + if (this.tip) { + this.tip.remove(); + this.tip = null; + } + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Tooltip.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +const NAME$f = "popover"; +const SELECTOR_TITLE = ".popover-header"; +const SELECTOR_CONTENT = ".popover-body"; +const Default$6 = { + ...Tooltip$1.Default, + content: "", + offset: [0, 8], + placement: "right", + template: '', + trigger: "click" +}; +const DefaultType$6 = { + ...Tooltip$1.DefaultType, + content: "(null|string|element|function)" +}; +let Popover$1 = class Popover extends Tooltip$1 { + // Getters + static get Default() { + return Default$6; + } + static get DefaultType() { + return DefaultType$6; + } + static get NAME() { + return NAME$f; + } + // Overrides + _isWithContent() { + return this._getTitle() || this._getContent(); + } + // Private + _getContentForTemplate() { + return { + [SELECTOR_TITLE]: this._getTitle(), + [SELECTOR_CONTENT]: this._getContent() + }; + } + _getContent() { + return this._resolvePossibleFunction(this._config.content); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Popover.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +const NAME$e = "popover"; +const EVENT_SHOW_BS$4 = "show.bs.popover"; +const EVENT_SHOWN_BS$4 = "shown.bs.popover"; +const EVENT_HIDE_BS$4 = "hide.bs.popover"; +const EVENT_HIDDEN_BS$4 = "hidden.bs.popover"; +const EVENT_INSERTED_BS$1 = "inserted.bs.popover"; +const EXTENDED_EVENTS$3 = [ + { name: "show" }, + { name: "shown" }, + { name: "hide" }, + { name: "hidden" }, + { name: "inserted" } +]; +class Popover2 extends Popover$1 { + constructor(element2, data) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this.element, EVENT_SHOW_BS$4); + EventHandler$1.off(this.element, EVENT_SHOWN_BS$4); + EventHandler$1.off(this.element, EVENT_HIDE_BS$4); + EventHandler$1.off(this.element, EVENT_HIDDEN_BS$4); + EventHandler$1.off(this.element, EVENT_INSERTED_BS$1); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$e; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS$3, NAME$e); + } +} +const NAME$d = "scrollspy"; +const DATA_KEY$a = "bs.scrollspy"; +const EVENT_KEY$7 = `.${DATA_KEY$a}`; +const EVENT_ACTIVATE$1 = `activate${EVENT_KEY$7}`; +const EVENT_CLICK = `click${EVENT_KEY$7}`; +const CLASS_NAME_DROPDOWN_ITEM = "dropdown-item"; +const CLASS_NAME_ACTIVE$2 = "active"; +const SELECTOR_TARGET_LINKS = "[href]"; +const SELECTOR_NAV_LIST_GROUP = ".nav, .list-group"; +const SELECTOR_NAV_LINKS = ".nav-link"; +const SELECTOR_NAV_ITEMS = ".nav-item"; +const SELECTOR_LIST_ITEMS = ".list-group-item"; +const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; +const SELECTOR_DROPDOWN = ".dropdown"; +const SELECTOR_DROPDOWN_TOGGLE$1 = ".dropdown-toggle"; +const Default$5 = { + offset: null, + // TODO: v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: "0px 0px -25%", + smoothScroll: false, + target: null, + threshold: [0.1, 0.5, 1] +}; +const DefaultType$5 = { + offset: "(number|null)", + // TODO v6 @deprecated, keep it for backwards compatibility reasons + rootMargin: "string", + smoothScroll: "boolean", + target: "element", + threshold: "array" +}; +let ScrollSpy$1 = class ScrollSpy extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + if (!this._config.target) { + return; + } + this._targetLinks = /* @__PURE__ */ new Map(); + this._observableSections = /* @__PURE__ */ new Map(); + this._rootElement = getComputedStyle(this._element).overflowY === "visible" ? null : this._element; + this._activeTarget = null; + this._observer = null; + this._previousScrollData = { + visibleEntryTop: 0, + parentScrollTop: 0 + }; + this.refresh(); + } + // Getters + static get Default() { + return Default$5; + } + static get DefaultType() { + return DefaultType$5; + } + static get NAME() { + return NAME$d; + } + // Public + refresh() { + this._initializeTargetsAndObservables(); + this._maybeEnableSmoothScroll(); + if (this._observer) { + this._observer.disconnect(); + } else { + this._observer = this._getNewObserver(); + } + for (const section of this._observableSections.values()) { + this._observer.observe(section); + } + } + dispose() { + if (this._observer) { + this._observer.disconnect(); + } + super.dispose(); + } + // Private + _configAfterMerge(config) { + config.target = getElement(config.target) || document.body; + config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; + if (typeof config.threshold === "string") { + config.threshold = config.threshold.split(",").map((value) => Number.parseFloat(value)); + } + return config; + } + _maybeEnableSmoothScroll() { + if (!this._config.smoothScroll) { + return; + } + EventHandler.off(this._config.target, EVENT_CLICK); + EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => { + const observableSection = this._observableSections.get(event.target.hash); + if (observableSection) { + event.preventDefault(); + const root = this._rootElement || window; + const height = observableSection.offsetTop - this._element.offsetTop; + if (root.scrollTo) { + root.scrollTo({ top: height, behavior: "smooth" }); + return; + } + root.scrollTop = height; + } + }); + } + _getNewObserver() { + const options = { + root: this._rootElement, + threshold: this._config.threshold, + rootMargin: this._config.rootMargin + }; + return new IntersectionObserver((entries) => this._observerCallback(entries), options); + } + // The logic of selection + _observerCallback(entries) { + const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`); + const activate = (entry) => { + this._previousScrollData.visibleEntryTop = entry.target.offsetTop; + this._process(targetElement(entry)); + }; + const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; + const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; + this._previousScrollData.parentScrollTop = parentScrollTop; + for (const entry of entries) { + if (!entry.isIntersecting) { + this._activeTarget = null; + this._clearActiveClass(targetElement(entry)); + continue; + } + const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; + if (userScrollsDown && entryIsLowerThanPrevious) { + activate(entry); + if (!parentScrollTop) { + return; + } + continue; + } + if (!userScrollsDown && !entryIsLowerThanPrevious) { + activate(entry); + } + } + } + _initializeTargetsAndObservables() { + this._targetLinks = /* @__PURE__ */ new Map(); + this._observableSections = /* @__PURE__ */ new Map(); + const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); + for (const anchor of targetLinks) { + if (!anchor.hash || isDisabled(anchor)) { + continue; + } + const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element); + if (isVisible(observableSection)) { + this._targetLinks.set(decodeURI(anchor.hash), anchor); + this._observableSections.set(anchor.hash, observableSection); + } + } + } + _process(target) { + if (this._activeTarget === target) { + return; + } + this._clearActiveClass(this._config.target); + this._activeTarget = target; + target.classList.add(CLASS_NAME_ACTIVE$2); + this._activateParents(target); + EventHandler.trigger(this._element, EVENT_ACTIVATE$1, { relatedTarget: target }); + } + _activateParents(target) { + if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { + SelectorEngine.findOne( + SELECTOR_DROPDOWN_TOGGLE$1, + target.closest(SELECTOR_DROPDOWN) + ).classList.add(CLASS_NAME_ACTIVE$2); + return; + } + for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { + for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { + item.classList.add(CLASS_NAME_ACTIVE$2); + } + } + } + _clearActiveClass(parent) { + parent.classList.remove(CLASS_NAME_ACTIVE$2); + const activeNodes = SelectorEngine.find( + `${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$2}`, + parent + ); + for (const node of activeNodes) { + node.classList.remove(CLASS_NAME_ACTIVE$2); + } + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = ScrollSpy.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +const NAME$c = "scrollspy"; +const DATA_KEY$9 = `mdb.${NAME$c}`; +const EVENT_KEY$6 = `.${DATA_KEY$9}`; +const EVENT_ACTIVATE_BS = "activate.bs.scrollspy"; +const EVENT_ACTIVATE = `activate${EVENT_KEY$6}`; +const CLASS_COLLAPSIBLE = "collapsible-scrollspy"; +const CLASS_ACTIVE = "active"; +const SELECTOR_LIST = "ul"; +const SELECTOR_ACTIVE = `.${CLASS_ACTIVE}`; +const SELECTOR_COLLAPSIBLE_SCROLLSPY = `.${CLASS_COLLAPSIBLE}`; +class ScrollSpy2 extends ScrollSpy$1 { + constructor(element2, data) { + super(element2, data); + this._collapsibles = []; + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._scrollElement, EVENT_ACTIVATE_BS); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$c; + } + // Private + _init() { + this._bindActivateEvent(); + this._getCollapsibles(); + if (this._collapsibles.length === 0) { + return; + } + this._showSubsection(); + this._hideSubsection(); + } + _getHeight(element2) { + return element2.offsetHeight; + } + _hide(target) { + const itemsToHide = SelectorEngine$1.findOne(SELECTOR_LIST, target.parentNode); + itemsToHide.style.overflow = "hidden"; + itemsToHide.style.height = `${0}px`; + } + _show(target, destinedHeight) { + target.style.height = destinedHeight; + } + _getCollapsibles() { + const collapsibleElements = SelectorEngine$1.find(SELECTOR_COLLAPSIBLE_SCROLLSPY); + if (!collapsibleElements) { + return; + } + collapsibleElements.forEach((collapsibleElement) => { + const listParent = collapsibleElement.parentNode; + const list = SelectorEngine$1.findOne(SELECTOR_LIST, listParent); + const listHeight = list.offsetHeight; + this._collapsibles.push({ + element: list, + relatedTarget: collapsibleElement.getAttribute("href"), + height: `${listHeight}px` + }); + }); + } + _showSubsection() { + const activeElements = SelectorEngine$1.find(SELECTOR_ACTIVE); + const actives = activeElements.filter((active) => { + return Manipulator$1.hasClass(active, CLASS_COLLAPSIBLE); + }); + actives.forEach((active) => { + const list = SelectorEngine$1.findOne(SELECTOR_LIST, active.parentNode); + const height = this._collapsibles.find((collapsible) => { + return collapsible.relatedTarget = active.getAttribute("href"); + }).height; + this._show(list, height); + }); + } + _hideSubsection() { + const unactives = SelectorEngine$1.find(SELECTOR_COLLAPSIBLE_SCROLLSPY).filter((collapsible) => { + return Manipulator$1.hasClass(collapsible, "active") === false; + }); + unactives.forEach((unactive) => { + this._hide(unactive); + }); + } + _bindActivateEvent() { + EventHandler$1.on(this._element, EVENT_ACTIVATE_BS, (e) => { + this._showSubsection(); + this._hideSubsection(); + EventHandler$1.trigger(this._element, EVENT_ACTIVATE, { + relatedTarget: e.relatedTarget + }); + }); + } +} +const NAME$b = "tab"; +const DATA_KEY$8 = "bs.tab"; +const EVENT_KEY$5 = `.${DATA_KEY$8}`; +const EVENT_HIDE$5 = `hide${EVENT_KEY$5}`; +const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$5}`; +const EVENT_SHOW$5 = `show${EVENT_KEY$5}`; +const EVENT_SHOWN$5 = `shown${EVENT_KEY$5}`; +const EVENT_KEYDOWN = `keydown${EVENT_KEY$5}`; +const ARROW_LEFT_KEY = "ArrowLeft"; +const ARROW_RIGHT_KEY = "ArrowRight"; +const ARROW_UP_KEY$1 = "ArrowUp"; +const ARROW_DOWN_KEY$1 = "ArrowDown"; +const HOME_KEY = "Home"; +const END_KEY = "End"; +const CLASS_NAME_ACTIVE$1 = "active"; +const CLASS_NAME_FADE$2 = "fade"; +const CLASS_NAME_SHOW$4 = "show"; +const CLASS_DROPDOWN = "dropdown"; +const SELECTOR_DROPDOWN_TOGGLE = ".dropdown-toggle"; +const SELECTOR_DROPDOWN_MENU = ".dropdown-menu"; +const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`; +const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; +const SELECTOR_OUTER = ".nav-item, .list-group-item"; +const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; +const SELECTOR_DATA_TOGGLE$2 = "[data-mdb-tab-initialized]"; +const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE$2}`; +let Tab$1 = class Tab extends BaseComponent$1 { + constructor(element2) { + super(element2); + this._parent = this._element.closest(SELECTOR_TAB_PANEL); + if (!this._parent) { + return; + } + this._setInitialAttributes(this._parent, this._getChildren()); + EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event)); + } + // Getters + static get NAME() { + return NAME$b; + } + // Public + show() { + const innerElem = this._element; + if (this._elemIsActive(innerElem)) { + return; + } + const active = this._getActiveElem(); + const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$5, { relatedTarget: innerElem }) : null; + const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$5, { relatedTarget: active }); + if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { + return; + } + this._deactivate(active, innerElem); + this._activate(innerElem, active); + } + // Private + _activate(element2, relatedElem) { + if (!element2) { + return; + } + element2.classList.add(CLASS_NAME_ACTIVE$1); + this._activate(SelectorEngine.getElementFromSelector(element2)); + const complete = () => { + if (element2.getAttribute("role") !== "tab") { + element2.classList.add(CLASS_NAME_SHOW$4); + return; + } + element2.removeAttribute("tabindex"); + element2.setAttribute("aria-selected", true); + this._toggleDropDown(element2, true); + EventHandler.trigger(element2, EVENT_SHOWN$5, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element2, element2.classList.contains(CLASS_NAME_FADE$2)); + } + _deactivate(element2, relatedElem) { + if (!element2) { + return; + } + element2.classList.remove(CLASS_NAME_ACTIVE$1); + element2.blur(); + this._deactivate(SelectorEngine.getElementFromSelector(element2)); + const complete = () => { + if (element2.getAttribute("role") !== "tab") { + element2.classList.remove(CLASS_NAME_SHOW$4); + return; + } + element2.setAttribute("aria-selected", false); + element2.setAttribute("tabindex", "-1"); + this._toggleDropDown(element2, false); + EventHandler.trigger(element2, EVENT_HIDDEN$5, { relatedTarget: relatedElem }); + }; + this._queueCallback(complete, element2, element2.classList.contains(CLASS_NAME_FADE$2)); + } + _keydown(event) { + if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY$1, ARROW_DOWN_KEY$1, HOME_KEY, END_KEY].includes( + event.key + )) { + return; + } + event.stopPropagation(); + event.preventDefault(); + const children = this._getChildren().filter((element2) => !isDisabled(element2)); + let nextActiveElement; + if ([HOME_KEY, END_KEY].includes(event.key)) { + nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]; + } else { + const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY$1].includes(event.key); + nextActiveElement = getNextActiveElement(children, event.target, isNext, true); + } + if (nextActiveElement) { + nextActiveElement.focus({ preventScroll: true }); + Tab.getOrCreateInstance(nextActiveElement).show(); + } + } + _getChildren() { + return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); + } + _getActiveElem() { + return this._getChildren().find((child) => this._elemIsActive(child)) || null; + } + _setInitialAttributes(parent, children) { + this._setAttributeIfNotExists(parent, "role", "tablist"); + for (const child of children) { + this._setInitialAttributesOnChild(child); + } + } + _setInitialAttributesOnChild(child) { + child = this._getInnerElement(child); + const isActive = this._elemIsActive(child); + const outerElem = this._getOuterElement(child); + child.setAttribute("aria-selected", isActive); + if (outerElem !== child) { + this._setAttributeIfNotExists(outerElem, "role", "presentation"); + } + if (!isActive) { + child.setAttribute("tabindex", "-1"); + } + this._setAttributeIfNotExists(child, "role", "tab"); + this._setInitialAttributesOnTargetPanel(child); + } + _setInitialAttributesOnTargetPanel(child) { + const target = SelectorEngine.getElementFromSelector(child); + if (!target) { + return; + } + this._setAttributeIfNotExists(target, "role", "tabpanel"); + if (child.id) { + this._setAttributeIfNotExists(target, "aria-labelledby", `${child.id}`); + } + } + _toggleDropDown(element2, open) { + const outerElem = this._getOuterElement(element2); + if (!outerElem.classList.contains(CLASS_DROPDOWN)) { + return; + } + const toggle = (selector, className) => { + const element3 = SelectorEngine.findOne(selector, outerElem); + if (element3) { + element3.classList.toggle(className, open); + } + }; + toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE$1); + toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$4); + outerElem.setAttribute("aria-expanded", open); + } + _setAttributeIfNotExists(element2, attribute, value) { + if (!element2.hasAttribute(attribute)) { + element2.setAttribute(attribute, value); + } + } + _elemIsActive(elem) { + return elem.classList.contains(CLASS_NAME_ACTIVE$1); + } + // Try to get the inner element (usually the .nav-link) + _getInnerElement(elem) { + return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); + } + // Try to get the outer element (usually the .nav-item) + _getOuterElement(elem) { + return elem.closest(SELECTOR_OUTER) || elem; + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Tab.getOrCreateInstance(this); + if (typeof config !== "string") { + return; + } + if (data[config] === void 0 || config.startsWith("_") || config === "constructor") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } +}; +const NAME$a = "tab"; +const DATA_KEY$7 = `mdb.${NAME$a}`; +const EVENT_KEY$4 = `.${DATA_KEY$7}`; +const EVENT_SHOW_BS$3 = "show.bs.tab"; +const EVENT_SHOWN_BS$3 = "shown.bs.tab"; +const EVENT_HIDE_BS$3 = "hide.bs.tab"; +const EVENT_HIDDEN_BS$3 = "hidden.bs.tab"; +const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; +const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; +const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; +const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; +const CLASS_NAME_ACTIVE = "active"; +const CLASS_NAME_FADE$1 = "fade"; +const CLASS_NAME_SHOW$3 = "show"; +class Tab2 extends Tab$1 { + constructor(element2) { + super(element2); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SHOW_BS$3); + EventHandler$1.off(this._element, EVENT_SHOWN_BS$3); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$a; + } + // Override + show() { + const innerElem = this._element; + if (this._elemIsActive(innerElem)) { + return; + } + const active = this._getActiveElem(); + let hideEvent = null; + let hideEventMdb = null; + if (active) { + hideEvent = EventHandler$1.trigger(active, EVENT_HIDE_BS$3, { relatedTarget: innerElem }); + hideEventMdb = EventHandler$1.trigger(active, EVENT_HIDE$4, { relatedTarget: innerElem }); + } + const showEvent = EventHandler$1.trigger(innerElem, EVENT_SHOW_BS$3, { relatedTarget: active }); + const showEventMdb = EventHandler$1.trigger(innerElem, EVENT_SHOW$4, { relatedTarget: active }); + if (showEvent.defaultPrevented || showEventMdb.defaultPrevented || hideEvent && hideEvent.defaultPrevented || hideEventMdb && hideEventMdb.defaultPrevented) { + return; + } + this._deactivate(active, innerElem); + this._activate(innerElem, active); + } + _activate(element2, relatedElem) { + if (!element2) { + return; + } + element2.classList.add(CLASS_NAME_ACTIVE); + this._activate(getElementFromSelector(element2)); + const complete = () => { + if (element2.getAttribute("role") !== "tab") { + element2.classList.add(CLASS_NAME_SHOW$3); + return; + } + element2.focus(); + element2.removeAttribute("tabindex"); + element2.setAttribute("aria-selected", true); + this._toggleDropDown(element2, true); + EventHandler$1.trigger(element2, EVENT_SHOWN_BS$3, { + relatedTarget: relatedElem + }); + EventHandler$1.trigger(element2, EVENT_SHOWN$4, { + relatedTarget: relatedElem + }); + }; + this._queueCallback(complete, element2, element2.classList.contains(CLASS_NAME_FADE$1)); + } + _deactivate(element2, relatedElem) { + if (!element2) { + return; + } + element2.classList.remove(CLASS_NAME_ACTIVE); + element2.blur(); + this._deactivate(getElementFromSelector(element2)); + const complete = () => { + if (element2.getAttribute("role") !== "tab") { + element2.classList.remove(CLASS_NAME_SHOW$3); + return; + } + element2.setAttribute("aria-selected", false); + element2.setAttribute("tabindex", "-1"); + this._toggleDropDown(element2, false); + EventHandler$1.trigger(element2, EVENT_HIDDEN_BS$3, { relatedTarget: relatedElem }); + EventHandler$1.trigger(element2, EVENT_HIDDEN$4, { relatedTarget: relatedElem }); + }; + this._queueCallback(complete, element2, element2.classList.contains(CLASS_NAME_FADE$1)); + } +} +const NAME$9 = "tooltip"; +const EVENT_HIDE_BS$2 = "hide.bs.tooltip"; +const EVENT_HIDDEN_BS$2 = "hidden.bs.tooltip"; +const EVENT_SHOW_BS$2 = "show.bs.tooltip"; +const EVENT_SHOWN_BS$2 = "shown.bs.tooltip"; +const EVENT_INSERTED_BS = "inserted.bs.tooltip"; +const EXTENDED_EVENTS$2 = [ + { name: "show" }, + { name: "shown" }, + { name: "hide" }, + { name: "hidden" }, + { name: "inserted" } +]; +class Tooltip2 extends Tooltip$1 { + constructor(element2, data) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SHOW_BS$2); + EventHandler$1.off(this._element, EVENT_SHOWN_BS$2); + EventHandler$1.off(this._element, EVENT_HIDE_BS$2); + EventHandler$1.off(this._element, EVENT_HIDDEN_BS$2); + EventHandler$1.off(this._element, EVENT_INSERTED_BS); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$9; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS$2, NAME$9); + } +} +const NAME$8 = "toast"; +const DATA_KEY$6 = "bs.toast"; +const EVENT_KEY$3 = `.${DATA_KEY$6}`; +const EVENT_MOUSEOVER = `mouseover${EVENT_KEY$3}`; +const EVENT_MOUSEOUT = `mouseout${EVENT_KEY$3}`; +const EVENT_FOCUSIN = `focusin${EVENT_KEY$3}`; +const EVENT_FOCUSOUT = `focusout${EVENT_KEY$3}`; +const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; +const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; +const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; +const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; +const CLASS_NAME_FADE = "fade"; +const CLASS_NAME_HIDE = "hide"; +const CLASS_NAME_SHOW$2 = "show"; +const CLASS_NAME_SHOWING = "showing"; +const DefaultType$4 = { + animation: "boolean", + autohide: "boolean", + delay: "number" +}; +const Default$4 = { + animation: true, + autohide: true, + delay: 5e3 +}; +let Toast$1 = class Toast extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + this._timeout = null; + this._hasMouseInteraction = false; + this._hasKeyboardInteraction = false; + this._setListeners(); + } + // Getters + static get Default() { + return Default$4; + } + static get DefaultType() { + return DefaultType$4; + } + static get NAME() { + return NAME$8; + } + // Public + show() { + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3); + if (showEvent.defaultPrevented) { + return; + } + this._clearTimeout(); + if (this._config.animation) { + this._element.classList.add(CLASS_NAME_FADE); + } + const complete = () => { + this._element.classList.remove(CLASS_NAME_SHOWING); + EventHandler.trigger(this._element, EVENT_SHOWN$3); + this._maybeScheduleHide(); + }; + this._element.classList.remove(CLASS_NAME_HIDE); + reflow(this._element); + this._element.classList.add(CLASS_NAME_SHOW$2, CLASS_NAME_SHOWING); + this._queueCallback(complete, this._element, this._config.animation); + } + hide() { + if (!this.isShown()) { + return; + } + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); + if (hideEvent.defaultPrevented) { + return; + } + const complete = () => { + this._element.classList.add(CLASS_NAME_HIDE); + this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW$2); + EventHandler.trigger(this._element, EVENT_HIDDEN$3); + }; + this._element.classList.add(CLASS_NAME_SHOWING); + this._queueCallback(complete, this._element, this._config.animation); + } + dispose() { + this._clearTimeout(); + if (this.isShown()) { + this._element.classList.remove(CLASS_NAME_SHOW$2); + } + super.dispose(); + } + isShown() { + return this._element.classList.contains(CLASS_NAME_SHOW$2); + } + // Private + _maybeScheduleHide() { + if (!this._config.autohide) { + return; + } + if (this._hasMouseInteraction || this._hasKeyboardInteraction) { + return; + } + this._timeout = setTimeout(() => { + this.hide(); + }, this._config.delay); + } + _onInteraction(event, isInteracting) { + switch (event.type) { + case "mouseover": + case "mouseout": { + this._hasMouseInteraction = isInteracting; + break; + } + case "focusin": + case "focusout": { + this._hasKeyboardInteraction = isInteracting; + break; + } + } + if (isInteracting) { + this._clearTimeout(); + return; + } + const nextElement = event.relatedTarget; + if (this._element === nextElement || this._element.contains(nextElement)) { + return; + } + this._maybeScheduleHide(); + } + _setListeners() { + EventHandler.on(this._element, EVENT_MOUSEOVER, (event) => this._onInteraction(event, true)); + EventHandler.on(this._element, EVENT_MOUSEOUT, (event) => this._onInteraction(event, false)); + EventHandler.on(this._element, EVENT_FOCUSIN, (event) => this._onInteraction(event, true)); + EventHandler.on(this._element, EVENT_FOCUSOUT, (event) => this._onInteraction(event, false)); + } + _clearTimeout() { + clearTimeout(this._timeout); + this._timeout = null; + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Toast.getOrCreateInstance(this, config); + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + } + }); + } +}; +const NAME$7 = "toast"; +const EVENT_SHOW_BS$1 = "show.bs.toast"; +const EVENT_SHOWN_BS$1 = "shown.bs.toast"; +const EVENT_HIDE_BS$1 = "hide.bs.toast"; +const EVENT_HIDDEN_BS$1 = "hidden.bs.toast"; +const EXTENDED_EVENTS$1 = [{ name: "show" }, { name: "shown" }, { name: "hide" }, { name: "hidden" }]; +class Toast2 extends Toast$1 { + constructor(element2, data) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SHOW_BS$1); + EventHandler$1.off(this._element, EVENT_SHOWN_BS$1); + EventHandler$1.off(this._element, EVENT_HIDE_BS$1); + EventHandler$1.off(this._element, EVENT_HIDDEN_BS$1); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$7; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS$1, NAME$7); + } +} +(() => { + var e = { 454: (e2, t2, n2) => { + n2.d(t2, { Z: () => a }); + var r = n2(645), o = n2.n(r)()(function(e3) { + return e3[1]; + }); + o.push([e2.id, "INPUT:-webkit-autofill,SELECT:-webkit-autofill,TEXTAREA:-webkit-autofill{animation-name:onautofillstart}INPUT:not(:-webkit-autofill),SELECT:not(:-webkit-autofill),TEXTAREA:not(:-webkit-autofill){animation-name:onautofillcancel}@keyframes onautofillstart{}@keyframes onautofillcancel{}", ""]); + const a = o; + }, 645: (e2) => { + e2.exports = function(e3) { + var t2 = []; + return t2.toString = function() { + return this.map(function(t3) { + var n2 = e3(t3); + return t3[2] ? "@media ".concat(t3[2], " {").concat(n2, "}") : n2; + }).join(""); + }, t2.i = function(e4, n2, r) { + "string" == typeof e4 && (e4 = [[null, e4, ""]]); + var o = {}; + if (r) + for (var a = 0; a < this.length; a++) { + var i = this[a][0]; + null != i && (o[i] = true); + } + for (var u = 0; u < e4.length; u++) { + var c = [].concat(e4[u]); + r && o[c[0]] || (n2 && (c[2] ? c[2] = "".concat(n2, " and ").concat(c[2]) : c[2] = n2), t2.push(c)); + } + }, t2; + }; + }, 810: () => { + !function() { + if ("undefined" != typeof window) + try { + var e2 = new window.CustomEvent("test", { cancelable: true }); + if (e2.preventDefault(), true !== e2.defaultPrevented) + throw new Error("Could not prevent default"); + } catch (e3) { + var t2 = function(e4, t3) { + var n2, r; + return (t3 = t3 || {}).bubbles = !!t3.bubbles, t3.cancelable = !!t3.cancelable, (n2 = document.createEvent("CustomEvent")).initCustomEvent(e4, t3.bubbles, t3.cancelable, t3.detail), r = n2.preventDefault, n2.preventDefault = function() { + r.call(this); + try { + Object.defineProperty(this, "defaultPrevented", { get: function() { + return true; + } }); + } catch (e5) { + this.defaultPrevented = true; + } + }, n2; + }; + t2.prototype = window.Event.prototype, window.CustomEvent = t2; + } + }(); + }, 379: (e2, t2, n2) => { + var r, o = function() { + var e3 = {}; + return function(t3) { + if (void 0 === e3[t3]) { + var n3 = document.querySelector(t3); + if (window.HTMLIFrameElement && n3 instanceof window.HTMLIFrameElement) + try { + n3 = n3.contentDocument.head; + } catch (e4) { + n3 = null; + } + e3[t3] = n3; + } + return e3[t3]; + }; + }(), a = []; + function i(e3) { + for (var t3 = -1, n3 = 0; n3 < a.length; n3++) + if (a[n3].identifier === e3) { + t3 = n3; + break; + } + return t3; + } + function u(e3, t3) { + for (var n3 = {}, r2 = [], o2 = 0; o2 < e3.length; o2++) { + var u2 = e3[o2], c2 = t3.base ? u2[0] + t3.base : u2[0], l2 = n3[c2] || 0, s2 = "".concat(c2, " ").concat(l2); + n3[c2] = l2 + 1; + var d2 = i(s2), f2 = { css: u2[1], media: u2[2], sourceMap: u2[3] }; + -1 !== d2 ? (a[d2].references++, a[d2].updater(f2)) : a.push({ identifier: s2, updater: m(f2, t3), references: 1 }), r2.push(s2); + } + return r2; + } + function c(e3) { + var t3 = document.createElement("style"), r2 = e3.attributes || {}; + if (void 0 === r2.nonce) { + var a2 = n2.nc; + a2 && (r2.nonce = a2); + } + if (Object.keys(r2).forEach(function(e4) { + t3.setAttribute(e4, r2[e4]); + }), "function" == typeof e3.insert) + e3.insert(t3); + else { + var i2 = o(e3.insert || "head"); + if (!i2) + throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); + i2.appendChild(t3); + } + return t3; + } + var l, s = (l = [], function(e3, t3) { + return l[e3] = t3, l.filter(Boolean).join("\n"); + }); + function d(e3, t3, n3, r2) { + var o2 = n3 ? "" : r2.media ? "@media ".concat(r2.media, " {").concat(r2.css, "}") : r2.css; + if (e3.styleSheet) + e3.styleSheet.cssText = s(t3, o2); + else { + var a2 = document.createTextNode(o2), i2 = e3.childNodes; + i2[t3] && e3.removeChild(i2[t3]), i2.length ? e3.insertBefore(a2, i2[t3]) : e3.appendChild(a2); + } + } + function f(e3, t3, n3) { + var r2 = n3.css, o2 = n3.media, a2 = n3.sourceMap; + if (o2 ? e3.setAttribute("media", o2) : e3.removeAttribute("media"), a2 && "undefined" != typeof btoa && (r2 += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a2)))), " */")), e3.styleSheet) + e3.styleSheet.cssText = r2; + else { + for (; e3.firstChild; ) + e3.removeChild(e3.firstChild); + e3.appendChild(document.createTextNode(r2)); + } + } + var v = null, p = 0; + function m(e3, t3) { + var n3, r2, o2; + if (t3.singleton) { + var a2 = p++; + n3 = v || (v = c(t3)), r2 = d.bind(null, n3, a2, false), o2 = d.bind(null, n3, a2, true); + } else + n3 = c(t3), r2 = f.bind(null, n3, t3), o2 = function() { + !function(e4) { + if (null === e4.parentNode) + return false; + e4.parentNode.removeChild(e4); + }(n3); + }; + return r2(e3), function(t4) { + if (t4) { + if (t4.css === e3.css && t4.media === e3.media && t4.sourceMap === e3.sourceMap) + return; + r2(e3 = t4); + } else + o2(); + }; + } + e2.exports = function(e3, t3) { + (t3 = t3 || {}).singleton || "boolean" == typeof t3.singleton || (t3.singleton = (void 0 === r && (r = Boolean(window && document && document.all && !window.atob)), r)); + var n3 = u(e3 = e3 || [], t3); + return function(e4) { + if (e4 = e4 || [], "[object Array]" === Object.prototype.toString.call(e4)) { + for (var r2 = 0; r2 < n3.length; r2++) { + var o2 = i(n3[r2]); + a[o2].references--; + } + for (var c2 = u(e4, t3), l2 = 0; l2 < n3.length; l2++) { + var s2 = i(n3[l2]); + 0 === a[s2].references && (a[s2].updater(), a.splice(s2, 1)); + } + n3 = c2; + } + }; + }; + } }, t = {}; + function n(r) { + var o = t[r]; + if (void 0 !== o) + return o.exports; + var a = t[r] = { id: r, exports: {} }; + return e[r](a, a.exports, n), a.exports; + } + n.n = (e2) => { + var t2 = e2 && e2.__esModule ? () => e2.default : () => e2; + return n.d(t2, { a: t2 }), t2; + }, n.d = (e2, t2) => { + for (var r in t2) + n.o(t2, r) && !n.o(e2, r) && Object.defineProperty(e2, r, { enumerable: true, get: t2[r] }); + }, n.o = (e2, t2) => Object.prototype.hasOwnProperty.call(e2, t2), (() => { + var e2 = n(379), t2 = n.n(e2), r = n(454); + function o(e3) { + if (!e3.hasAttribute("autocompleted")) { + e3.setAttribute("autocompleted", ""); + var t3 = new window.CustomEvent("onautocomplete", { bubbles: true, cancelable: true, detail: null }); + e3.dispatchEvent(t3) || (e3.value = ""); + } + } + function a(e3) { + e3.hasAttribute("autocompleted") && (e3.removeAttribute("autocompleted"), e3.dispatchEvent(new window.CustomEvent("onautocomplete", { bubbles: true, cancelable: false, detail: null }))); + } + t2()(r.Z, { insert: "head", singleton: false }), r.Z.locals, n(810), document.addEventListener("animationstart", function(e3) { + "onautofillstart" === e3.animationName ? o(e3.target) : a(e3.target); + }, true), document.addEventListener("input", function(e3) { + "insertReplacementText" !== e3.inputType && "data" in e3 ? a(e3.target) : o(e3.target); + }, true); + })(); +})(); +class BaseComponent2 { + constructor(element2) { + element2 = getElement$1(element2); + if (!element2) { + return; + } + this._element = element2; + Data$1.setData(this._element, this.constructor.DATA_KEY, this); + } + dispose() { + Data$1.removeData(this._element, this.constructor.DATA_KEY); + EventHandler$1.off(this._element, this.constructor.EVENT_KEY); + Object.getOwnPropertyNames(this).forEach((propertyName) => { + this[propertyName] = null; + }); + } + /** Static */ + static getInstance(element2) { + return Data$1.getData(getElement$1(element2), this.DATA_KEY); + } + static getOrCreateInstance(element2, config = {}) { + return this.getInstance(element2) || new this(element2, typeof config === "object" ? config : null); + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + static get DATA_KEY() { + return `mdb.${this.NAME}`; + } + static get EVENT_KEY() { + return `.${this.DATA_KEY}`; + } +} +const NAME$6 = "input"; +const DATA_KEY$5 = "mdb.input"; +const CLASSNAME_ACTIVE$1 = "active"; +const CLASSNAME_NOTCH = "form-notch"; +const CLASSNAME_NOTCH_LEADING = "form-notch-leading"; +const CLASSNAME_NOTCH_MIDDLE = "form-notch-middle"; +const CLASSNAME_NOTCH_TRAILING = "form-notch-trailing"; +const CLASSNAME_PLACEHOLDER_ACTIVE = "placeholder-active"; +const CLASSNAME_HELPER = "form-helper"; +const CLASSNAME_COUNTER = "form-counter"; +const SELECTOR_NOTCH = `.${CLASSNAME_NOTCH}`; +const SELECTOR_NOTCH_LEADING = `.${CLASSNAME_NOTCH_LEADING}`; +const SELECTOR_NOTCH_MIDDLE = `.${CLASSNAME_NOTCH_MIDDLE}`; +const SELECTOR_HELPER = `.${CLASSNAME_HELPER}`; +class Input extends BaseComponent2 { + constructor(element2) { + super(element2); + this._label = null; + this._labelWidth = 0; + this._labelMarginLeft = 0; + this._notchLeading = null; + this._notchMiddle = null; + this._notchTrailing = null; + this._initiated = false; + this._helper = null; + this._counter = false; + this._counterElement = null; + this._maxLength = 0; + this._leadingIcon = null; + if (this._element) { + this.init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + } + // Getters + static get NAME() { + return NAME$6; + } + get input() { + const inputElement = SelectorEngine$1.findOne("input", this._element) || SelectorEngine$1.findOne("textarea", this._element); + return inputElement; + } + // Public + init() { + if (this._initiated) { + return; + } + this._getLabelData(); + this._applyDivs(); + this._applyNotch(); + this._activate(); + this._getHelper(); + this._getCounter(); + this._initiated = true; + } + update() { + this._getLabelData(); + this._getNotchData(); + this._applyNotch(); + this._activate(); + this._getHelper(); + this._getCounter(); + } + forceActive() { + Manipulator$1.addClass(this.input, CLASSNAME_ACTIVE$1); + } + forceInactive() { + Manipulator$1.removeClass(this.input, CLASSNAME_ACTIVE$1); + } + dispose() { + this._removeBorder(); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Private + /* + _getIcons() { + this._leadingIcon = SelectorEngine.findOne('i.leading', this._element); + + if (this._leadingIcon !== null) { + this._applyLeadingIcon(); + } + } + + _applyLeadingIcon() { + this._label.innerHTML = ` ${this._label.innerHTML}`; + this._label.insertBefore(this._leadingIcon, this._label.firstChild); + } + */ + _getLabelData() { + this._label = SelectorEngine$1.findOne("label", this._element); + if (this._label === null) { + this._showPlaceholder(); + } else { + this._getLabelWidth(); + this._getLabelPositionInInputGroup(); + this._toggleDefaultDatePlaceholder(); + } + } + _getHelper() { + this._helper = SelectorEngine$1.findOne(SELECTOR_HELPER, this._element); + } + _getCounter() { + this._counter = Manipulator$1.getDataAttribute(this.input, "showcounter"); + if (this._counter) { + this._maxLength = this.input.maxLength; + this._showCounter(); + } + } + _showCounter() { + const counters = SelectorEngine$1.find(".form-counter", this._element); + if (counters.length > 0) { + return; + } + this._counterElement = document.createElement("div"); + Manipulator$1.addClass(this._counterElement, CLASSNAME_COUNTER); + const actualLength = this.input.value.length; + this._counterElement.innerHTML = `${actualLength} / ${this._maxLength}`; + this._helper.appendChild(this._counterElement); + this._bindCounter(); + } + _bindCounter() { + EventHandler$1.on(this.input, "input", () => { + const actualLength = this.input.value.length; + this._counterElement.innerHTML = `${actualLength} / ${this._maxLength}`; + }); + } + _toggleDefaultDatePlaceholder(input = this.input) { + const type = input.getAttribute("type"); + const typesWithPlaceholder = ["date", "time", "datetime-local", "month", "week"]; + if (!typesWithPlaceholder.includes(type)) { + return; + } + const isInputFocused = document.activeElement === input; + if (!isInputFocused && !input.value) { + input.style.opacity = 0; + } else { + input.style.opacity = 1; + } + } + _showPlaceholder() { + Manipulator$1.addClass(this.input, CLASSNAME_PLACEHOLDER_ACTIVE); + } + _getNotchData() { + this._notchMiddle = SelectorEngine$1.findOne(SELECTOR_NOTCH_MIDDLE, this._element); + this._notchLeading = SelectorEngine$1.findOne(SELECTOR_NOTCH_LEADING, this._element); + } + _getLabelWidth() { + this._labelWidth = this._label.clientWidth * 0.8 + 8; + } + _getLabelPositionInInputGroup() { + this._labelMarginLeft = 0; + if (!this._element.classList.contains("input-group")) + return; + const input = this.input; + const prefix = SelectorEngine$1.prev(input, ".input-group-text")[0]; + if (prefix === void 0) { + this._labelMarginLeft = 0; + } else { + this._labelMarginLeft = prefix.offsetWidth - 1; + } + } + _applyDivs() { + const allNotchWrappers = SelectorEngine$1.find(SELECTOR_NOTCH, this._element); + const notchWrapper = element("div"); + Manipulator$1.addClass(notchWrapper, CLASSNAME_NOTCH); + this._notchLeading = element("div"); + Manipulator$1.addClass(this._notchLeading, CLASSNAME_NOTCH_LEADING); + this._notchMiddle = element("div"); + Manipulator$1.addClass(this._notchMiddle, CLASSNAME_NOTCH_MIDDLE); + this._notchTrailing = element("div"); + Manipulator$1.addClass(this._notchTrailing, CLASSNAME_NOTCH_TRAILING); + if (allNotchWrappers.length >= 1) { + return; + } + notchWrapper.append(this._notchLeading); + notchWrapper.append(this._notchMiddle); + notchWrapper.append(this._notchTrailing); + this._element.append(notchWrapper); + } + _applyNotch() { + this._notchMiddle.style.width = `${this._labelWidth}px`; + this._notchLeading.style.width = `${this._labelMarginLeft + 9}px`; + if (this._label === null) + return; + this._label.style.marginLeft = `${this._labelMarginLeft}px`; + } + _removeBorder() { + const border = SelectorEngine$1.findOne(SELECTOR_NOTCH, this._element); + if (border) + border.remove(); + } + _activate(event) { + onDOMContentLoaded(() => { + this._getElements(event); + if (!this._element) { + return; + } + const input = event ? event.target : this.input; + if (input.value !== "") { + Manipulator$1.addClass(input, CLASSNAME_ACTIVE$1); + } + this._toggleDefaultDatePlaceholder(input); + }); + } + _getElements(event) { + let initialized; + if (event) { + this._element = event.target.parentNode; + this._label = SelectorEngine$1.findOne("label", this._element); + initialized = Manipulator$1.getDataAttribute( + this._element, + `${this.constructor.NAME}-initialized` + ); + } + if (!initialized) { + return; + } + if (event && this._label) { + const prevLabelWidth = this._labelWidth; + this._getLabelData(); + if (prevLabelWidth !== this._labelWidth) { + this._notchMiddle = SelectorEngine$1.findOne(".form-notch-middle", event.target.parentNode); + this._notchLeading = SelectorEngine$1.findOne( + SELECTOR_NOTCH_LEADING, + event.target.parentNode + ); + this._applyNotch(); + } + } + } + _deactivate(event) { + const input = event ? event.target : this.input; + if (input.value === "") { + input.classList.remove(CLASSNAME_ACTIVE$1); + } + this._toggleDefaultDatePlaceholder(input); + } + static activate(instance) { + return function(event) { + instance._activate(event); + }; + } + static deactivate(instance) { + return function(event) { + instance._deactivate(event); + }; + } + static jQueryInterface(config, options) { + return this.each(function() { + let data = Data$1.getData(this, DATA_KEY$5); + const _config = typeof config === "object" && config; + if (!data && /dispose/.test(config)) { + return; + } + if (!data) { + data = new Input(this, _config); + } + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](options); + } + }); + } +} +const NAME$5 = "collapse"; +const DATA_KEY$4 = "bs.collapse"; +const EVENT_KEY$2 = `.${DATA_KEY$4}`; +const EVENT_SHOW$2 = `show${EVENT_KEY$2}`; +const EVENT_SHOWN$2 = `shown${EVENT_KEY$2}`; +const EVENT_HIDE$2 = `hide${EVENT_KEY$2}`; +const EVENT_HIDDEN$2 = `hidden${EVENT_KEY$2}`; +const CLASS_NAME_SHOW$1 = "show"; +const CLASS_NAME_COLLAPSE = "collapse"; +const CLASS_NAME_COLLAPSING = "collapsing"; +const CLASS_NAME_COLLAPSED = "collapsed"; +const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; +const CLASS_NAME_HORIZONTAL = "collapse-horizontal"; +const WIDTH = "width"; +const HEIGHT = "height"; +const SELECTOR_ACTIVES = ".collapse.show, .collapse.collapsing"; +const SELECTOR_DATA_TOGGLE$1 = "[data-mdb-collapse-init]"; +const Default$3 = { + parent: null, + toggle: true +}; +const DefaultType$3 = { + parent: "(null|element)", + toggle: "boolean" +}; +let Collapse$1 = class Collapse extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + this._isTransitioning = false; + this._triggerArray = []; + const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$1); + for (const elem of toggleList) { + const selector = SelectorEngine.getSelectorFromElement(elem); + const filterElement = SelectorEngine.find(selector).filter( + (foundElement) => foundElement === this._element + ); + if (selector !== null && filterElement.length) { + this._triggerArray.push(elem); + } + } + this._initializeChildren(); + if (!this._config.parent) { + this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); + } + if (this._config.toggle) { + this.toggle(); + } + } + // Getters + static get Default() { + return Default$3; + } + static get DefaultType() { + return DefaultType$3; + } + static get NAME() { + return NAME$5; + } + // Public + toggle() { + if (this._isShown()) { + this.hide(); + } else { + this.show(); + } + } + show() { + if (this._isTransitioning || this._isShown()) { + return; + } + let activeChildren = []; + if (this._config.parent) { + activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter((element2) => element2 !== this._element).map((element2) => Collapse.getOrCreateInstance(element2, { toggle: false })); + } + if (activeChildren.length && activeChildren[0]._isTransitioning) { + return; + } + const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$2); + if (startEvent.defaultPrevented) { + return; + } + for (const activeInstance of activeChildren) { + activeInstance.hide(); + } + const dimension = this._getDimension(); + this._element.classList.remove(CLASS_NAME_COLLAPSE); + this._element.classList.add(CLASS_NAME_COLLAPSING); + this._element.style[dimension] = 0; + this._addAriaAndCollapsedClass(this._triggerArray, true); + this._isTransitioning = true; + const complete = () => { + this._isTransitioning = false; + this._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$1); + this._element.style[dimension] = ""; + EventHandler.trigger(this._element, EVENT_SHOWN$2); + }; + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); + const scrollSize = `scroll${capitalizedDimension}`; + this._queueCallback(complete, this._element, true); + this._element.style[dimension] = `${this._element[scrollSize]}px`; + } + hide() { + if (this._isTransitioning || !this._isShown()) { + return; + } + const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$2); + if (startEvent.defaultPrevented) { + return; + } + const dimension = this._getDimension(); + this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; + reflow(this._element); + this._element.classList.add(CLASS_NAME_COLLAPSING); + this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$1); + for (const trigger of this._triggerArray) { + const element2 = SelectorEngine.getElementFromSelector(trigger); + if (element2 && !this._isShown(element2)) { + this._addAriaAndCollapsedClass([trigger], false); + } + } + this._isTransitioning = true; + const complete = () => { + this._isTransitioning = false; + this._element.classList.remove(CLASS_NAME_COLLAPSING); + this._element.classList.add(CLASS_NAME_COLLAPSE); + EventHandler.trigger(this._element, EVENT_HIDDEN$2); + }; + this._element.style[dimension] = ""; + this._queueCallback(complete, this._element, true); + } + _isShown(element2 = this._element) { + return element2.classList.contains(CLASS_NAME_SHOW$1); + } + // Private + _configAfterMerge(config) { + config.toggle = Boolean(config.toggle); + config.parent = getElement(config.parent); + return config; + } + _getDimension() { + return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; + } + _initializeChildren() { + if (!this._config.parent) { + return; + } + const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$1); + for (const element2 of children) { + const selected = SelectorEngine.getElementFromSelector(element2); + if (selected) { + this._addAriaAndCollapsedClass([element2], this._isShown(selected)); + } + } + } + _getFirstLevelChildren(selector) { + const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); + return SelectorEngine.find(selector, this._config.parent).filter( + (element2) => !children.includes(element2) + ); + } + _addAriaAndCollapsedClass(triggerArray, isOpen) { + if (!triggerArray.length) { + return; + } + for (const element2 of triggerArray) { + element2.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); + element2.setAttribute("aria-expanded", isOpen); + } + } + // Static + static jQueryInterface(config) { + const _config = {}; + if (typeof config === "string" && /show|hide/.test(config)) { + _config.toggle = false; + } + return this.each(function() { + const data = Collapse.getOrCreateInstance(this, _config); + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + } + }); + } +}; +const NAME$4 = "collapse"; +const EVENT_SHOW_BS = "show.bs.collapse"; +const EVENT_SHOWN_BS = "shown.bs.collapse"; +const EVENT_HIDE_BS = "hide.bs.collapse"; +const EVENT_HIDDEN_BS = "hidden.bs.collapse"; +const EXTENDED_EVENTS = [{ name: "show" }, { name: "shown" }, { name: "hide" }, { name: "hidden" }]; +class Collapse2 extends Collapse$1 { + constructor(element2, data = {}) { + super(element2, data); + this._init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SHOW_BS); + EventHandler$1.off(this._element, EVENT_SHOWN_BS); + EventHandler$1.off(this._element, EVENT_HIDE_BS); + EventHandler$1.off(this._element, EVENT_HIDDEN_BS); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$4; + } + // Private + _init() { + this._bindMdbEvents(); + } + _bindMdbEvents() { + EventHandler$1.extend(this._element, EXTENDED_EVENTS, NAME$4); + } +} +const NAME$3 = "dropdown"; +const DATA_KEY$3 = "bs.dropdown"; +const EVENT_KEY$1 = `.${DATA_KEY$3}`; +const ESCAPE_KEY = "Escape"; +const TAB_KEY = "Tab"; +const ARROW_UP_KEY = "ArrowUp"; +const ARROW_DOWN_KEY = "ArrowDown"; +const RIGHT_MOUSE_BUTTON = 2; +const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; +const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; +const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; +const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; +const CLASS_NAME_SHOW = "show"; +const CLASS_NAME_DROPUP = "dropup"; +const CLASS_NAME_DROPEND = "dropend"; +const CLASS_NAME_DROPSTART = "dropstart"; +const CLASS_NAME_DROPUP_CENTER = "dropup-center"; +const CLASS_NAME_DROPDOWN_CENTER = "dropdown-center"; +const SELECTOR_DATA_TOGGLE = "[data-mdb-dropdown-initialized]:not(.disabled):not(:disabled)"; +const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE}.${CLASS_NAME_SHOW}`; +const SELECTOR_MENU = ".dropdown-menu"; +const SELECTOR_NAVBAR = ".navbar"; +const SELECTOR_NAVBAR_NAV = ".navbar-nav"; +const SELECTOR_VISIBLE_ITEMS = ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"; +const PLACEMENT_TOP = isRTL() ? "top-end" : "top-start"; +const PLACEMENT_TOPEND = isRTL() ? "top-start" : "top-end"; +const PLACEMENT_BOTTOM = isRTL() ? "bottom-end" : "bottom-start"; +const PLACEMENT_BOTTOMEND = isRTL() ? "bottom-start" : "bottom-end"; +const PLACEMENT_RIGHT = isRTL() ? "left-start" : "right-start"; +const PLACEMENT_LEFT = isRTL() ? "right-start" : "left-start"; +const PLACEMENT_TOPCENTER = "top"; +const PLACEMENT_BOTTOMCENTER = "bottom"; +const Default$2 = { + autoClose: true, + boundary: "clippingParents", + display: "dynamic", + offset: [0, 2], + popperConfig: null, + reference: "toggle" +}; +const DefaultType$2 = { + autoClose: "(boolean|string)", + boundary: "(string|element)", + display: "string", + offset: "(array|string|function)", + popperConfig: "(null|object|function)", + reference: "(string|element|object)" +}; +let Dropdown$1 = class Dropdown extends BaseComponent$1 { + constructor(element2, config) { + super(element2, config); + this._popper = null; + this._parent = this._element.parentNode; + this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); + this._inNavbar = this._detectNavbar(); + } + // Getters + static get Default() { + return Default$2; + } + static get DefaultType() { + return DefaultType$2; + } + static get NAME() { + return NAME$3; + } + // Public + toggle() { + return this._isShown() ? this.hide() : this.show(); + } + show() { + if (isDisabled(this._element) || this._isShown()) { + return; + } + const relatedTarget = { + relatedTarget: this._element + }; + const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$1, relatedTarget); + if (showEvent.defaultPrevented) { + return; + } + this._createPopper(); + if ("ontouchstart" in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { + for (const element2 of [].concat(...document.body.children)) { + EventHandler.on(element2, "mouseover", noop); + } + } + this._element.focus(); + this._element.setAttribute("aria-expanded", true); + this._menu.classList.add(CLASS_NAME_SHOW); + this._element.classList.add(CLASS_NAME_SHOW); + EventHandler.trigger(this._element, EVENT_SHOWN$1, relatedTarget); + } + hide() { + if (isDisabled(this._element) || !this._isShown()) { + return; + } + const relatedTarget = { + relatedTarget: this._element + }; + this._completeHide(relatedTarget); + } + dispose() { + if (this._popper) { + this._popper.destroy(); + } + super.dispose(); + } + update() { + this._inNavbar = this._detectNavbar(); + if (this._popper) { + this._popper.update(); + } + } + // Private + _completeHide(relatedTarget) { + const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$1, relatedTarget); + if (hideEvent.defaultPrevented) { + return; + } + if ("ontouchstart" in document.documentElement) { + for (const element2 of [].concat(...document.body.children)) { + EventHandler.off(element2, "mouseover", noop); + } + } + if (this._popper) { + this._popper.destroy(); + } + this._menu.classList.remove(CLASS_NAME_SHOW); + this._element.classList.remove(CLASS_NAME_SHOW); + this._element.setAttribute("aria-expanded", "false"); + Manipulator.removeDataAttribute(this._menu, "popper"); + EventHandler.trigger(this._element, EVENT_HIDDEN$1, relatedTarget); + } + _getConfig(config) { + config = super._getConfig(config); + if (typeof config.reference === "object" && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== "function") { + throw new TypeError( + `${NAME$3.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.` + ); + } + return config; + } + _createPopper() { + if (typeof Popper === "undefined") { + throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)"); + } + let referenceElement = this._element; + if (this._config.reference === "parent") { + referenceElement = this._parent; + } else if (isElement$1(this._config.reference)) { + referenceElement = getElement(this._config.reference); + } else if (typeof this._config.reference === "object") { + referenceElement = this._config.reference; + } + const popperConfig = this._getPopperConfig(); + this._popper = createPopper(referenceElement, this._menu, popperConfig); + } + _isShown() { + return this._menu.classList.contains(CLASS_NAME_SHOW); + } + _getPlacement() { + const parentDropdown = this._parent; + if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { + return PLACEMENT_RIGHT; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { + return PLACEMENT_LEFT; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { + return PLACEMENT_TOPCENTER; + } + if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) { + return PLACEMENT_BOTTOMCENTER; + } + const isEnd = getComputedStyle(this._menu).getPropertyValue("--mdb-position").trim() === "end"; + if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { + return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; + } + return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; + } + _detectNavbar() { + return this._element.closest(SELECTOR_NAVBAR) !== null; + } + _getOffset() { + const { offset: offset2 } = this._config; + if (typeof offset2 === "string") { + return offset2.split(",").map((value) => Number.parseInt(value, 10)); + } + if (typeof offset2 === "function") { + return (popperData) => offset2(popperData, this._element); + } + return offset2; + } + _getPopperConfig() { + const defaultBsPopperConfig = { + placement: this._getPlacement(), + modifiers: [ + { + name: "preventOverflow", + options: { + boundary: this._config.boundary + } + }, + { + name: "offset", + options: { + offset: this._getOffset() + } + } + ] + }; + if (this._inNavbar || this._config.display === "static") { + Manipulator.setDataAttribute(this._menu, "popper", "static"); + defaultBsPopperConfig.modifiers = [ + { + name: "applyStyles", + enabled: false + } + ]; + } + return { + ...defaultBsPopperConfig, + ...execute(this._config.popperConfig, [defaultBsPopperConfig]) + }; + } + _selectMenuItem({ key, target }) { + const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter( + (element2) => isVisible(element2) + ); + if (!items.length) { + return; + } + getNextActiveElement(items, target, key === ARROW_DOWN_KEY, !items.includes(target)).focus(); + } + // Static + static jQueryInterface(config) { + return this.each(function() { + const data = Dropdown.getOrCreateInstance(this, config); + if (typeof config !== "string") { + return; + } + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](); + }); + } + static clearMenus(event) { + if (event.button === RIGHT_MOUSE_BUTTON || event.type === "keyup" && event.key !== TAB_KEY) { + return; + } + const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); + for (const toggle of openToggles) { + const context = Dropdown.getInstance(toggle); + if (!context || context._config.autoClose === false) { + continue; + } + const composedPath = event.composedPath(); + const isMenuTarget = composedPath.includes(context._menu); + if (composedPath.includes(context._element) || context._config.autoClose === "inside" && !isMenuTarget || context._config.autoClose === "outside" && isMenuTarget) { + continue; + } + if (context._menu.contains(event.target) && (event.type === "keyup" && event.key === TAB_KEY || /input|select|option|textarea|form/i.test(event.target.tagName))) { + continue; + } + const relatedTarget = { relatedTarget: context._element }; + if (event.type === "click") { + relatedTarget.clickEvent = event; + } + context._completeHide(relatedTarget); + } + } + static dataApiKeydownHandler(event) { + const isInput = /input|textarea/i.test(event.target.tagName); + const isEscapeEvent = event.key === ESCAPE_KEY; + const isUpOrDownEvent = [ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key); + if (!isUpOrDownEvent && !isEscapeEvent) { + return; + } + if (isInput && !isEscapeEvent) { + return; + } + event.preventDefault(); + const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode); + const instance = Dropdown.getOrCreateInstance(getToggleButton); + if (isUpOrDownEvent) { + event.stopPropagation(); + instance.show(); + instance._selectMenuItem(event); + return; + } + if (instance._isShown()) { + event.stopPropagation(); + instance.hide(); + getToggleButton.focus(); + } + } +}; +const NAME$2 = "dropdown"; +const DATA_KEY$2 = `mdb.${NAME$2}`; +const EVENT_KEY = `.${DATA_KEY$2}`; +const Default$1 = { + offset: [0, 2], + boundary: "clippingParents", + reference: "toggle", + display: "dynamic", + popperConfig: null, + dropdownAnimation: "on" +}; +const DefaultType$1 = { + offset: "(array|string|function)", + boundary: "(string|element)", + reference: "(string|element|object)", + display: "string", + popperConfig: "(null|object|function)", + dropdownAnimation: "string" +}; +const EVENT_HIDE = "hide.bs.dropdown"; +const EVENT_HIDDEN = "hidden.bs.dropdown"; +const EVENT_SHOW = "show.bs.dropdown"; +const EVENT_SHOWN = "shown.bs.dropdown"; +const EVENT_HIDE_MDB = `hide${EVENT_KEY}`; +const EVENT_HIDDEN_MDB = `hidden${EVENT_KEY}`; +const EVENT_SHOW_MDB = `show${EVENT_KEY}`; +const EVENT_SHOWN_MDB = `shown${EVENT_KEY}`; +const ANIMATION_CLASS = "animation"; +const ANIMATION_SHOW_CLASS = "fade-in"; +const ANIMATION_HIDE_CLASS = "fade-out"; +class Dropdown2 extends Dropdown$1 { + constructor(element2, data) { + super(element2, data); + this._config = this._getConfig(data); + this._menuStyle = ""; + this._popperPlacement = ""; + this._mdbPopperConfig = ""; + const isPrefersReducedMotionSet = window.matchMedia("(prefers-reduced-motion: reduce)").matches; + if (this._config.dropdownAnimation === "on" && !isPrefersReducedMotionSet) { + this._init(); + } + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + dispose() { + EventHandler$1.off(this._element, EVENT_SHOW); + EventHandler$1.off(this._parent, EVENT_SHOWN); + EventHandler$1.off(this._parent, EVENT_HIDE); + EventHandler$1.off(this._parent, EVENT_HIDDEN); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Getters + static get NAME() { + return NAME$2; + } + // Private + _init() { + this._bindShowEvent(); + this._bindShownEvent(); + this._bindHideEvent(); + this._bindHiddenEvent(); + } + _getConfig(options) { + const config = { + ...Default$1, + ...Manipulator$1.getDataAttributes(this._element), + ...options + }; + typeCheckConfig(NAME$2, config, DefaultType$1); + return config; + } + _getOffset() { + const { offset: offset2 } = this._config; + if (typeof offset2 === "string") { + return offset2.split(",").map((val) => Number.parseInt(val, 10)); + } + if (typeof offset2 === "function") { + return (popperData) => offset2(popperData, this._element); + } + return offset2; + } + _getPopperConfig() { + const popperConfig = { + placement: this._getPlacement(), + modifiers: [ + { + name: "preventOverflow", + options: { + boundary: this._config.boundary + } + }, + { + name: "offset", + options: { + offset: this._getOffset() + } + } + ] + }; + if (this._config.display === "static") { + Manipulator$1.setDataAttribute(this._menu, "popper", "static"); + popperConfig.modifiers = [ + { + name: "applyStyles", + enabled: false + } + ]; + } + return { + ...popperConfig, + /* eslint no-extra-parens: "off" */ + ...typeof this._config.popperConfig === "function" ? this._config.popperConfig(popperConfig) : this._config.popperConfig + }; + } + _bindShowEvent() { + EventHandler$1.on(this._element, EVENT_SHOW, (e) => { + const showEvent = EventHandler$1.trigger(this._element, EVENT_SHOW_MDB, { + relatedTarget: e.relatedTarget + }); + if (showEvent.defaultPrevented) { + e.preventDefault(); + return; + } + this._dropdownAnimationStart("show"); + }); + } + _bindShownEvent() { + EventHandler$1.on(this._parent, EVENT_SHOWN, (e) => { + const shownEvent = EventHandler$1.trigger(this._parent, EVENT_SHOWN_MDB, { + relatedTarget: e.relatedTarget + }); + if (shownEvent.defaultPrevented) { + e.preventDefault(); + return; + } + }); + } + _bindHideEvent() { + EventHandler$1.on(this._parent, EVENT_HIDE, (e) => { + const hideEvent = EventHandler$1.trigger(this._parent, EVENT_HIDE_MDB, { + relatedTarget: e.relatedTarget + }); + if (hideEvent.defaultPrevented) { + e.preventDefault(); + return; + } + this._menuStyle = this._menu.style.cssText; + this._popperPlacement = this._menu.getAttribute("data-popper-placement"); + this._mdbPopperConfig = this._menu.getAttribute("data-mdb-popper"); + }); + } + _bindHiddenEvent() { + EventHandler$1.on(this._parent, EVENT_HIDDEN, (e) => { + const hiddenEvent = EventHandler$1.trigger(this._parent, EVENT_HIDDEN_MDB, { + relatedTarget: e.relatedTarget + }); + if (hiddenEvent.defaultPrevented) { + e.preventDefault(); + return; + } + if (this._config.display !== "static" && this._menuStyle !== "") { + this._menu.style.cssText = this._menuStyle; + } + this._menu.setAttribute("data-popper-placement", this._popperPlacement); + this._menu.setAttribute("data-mdb-popper", this._mdbPopperConfig); + this._dropdownAnimationStart("hide"); + }); + } + _dropdownAnimationStart(action) { + switch (action) { + case "show": + this._menu.classList.add(ANIMATION_CLASS, ANIMATION_SHOW_CLASS); + this._menu.classList.remove(ANIMATION_HIDE_CLASS); + break; + default: + this._menu.classList.add(ANIMATION_CLASS, ANIMATION_HIDE_CLASS); + this._menu.classList.remove(ANIMATION_SHOW_CLASS); + break; + } + this._bindAnimationEnd(); + } + _bindAnimationEnd() { + EventHandler$1.one(this._menu, "animationend", () => { + this._menu.classList.remove(ANIMATION_CLASS, ANIMATION_HIDE_CLASS, ANIMATION_SHOW_CLASS); + }); + } +} +const NAME$1 = "ripple"; +const DATA_KEY$1 = "mdb.ripple"; +const CLASSNAME_RIPPLE = "ripple-surface"; +const CLASSNAME_RIPPLE_WAVE = "ripple-wave"; +const CLASSNAME_RIPPLE_WRAPPER = "input-wrapper"; +const SELECTOR_BTN = ".btn"; +const SELECTOR_COMPONENT = [SELECTOR_BTN, `[data-mdb-${NAME$1}-init]`]; +const CLASSNAME_UNBOUND = "ripple-surface-unbound"; +const GRADIENT = "rgba({{color}}, 0.2) 0, rgba({{color}}, 0.3) 40%, rgba({{color}}, 0.4) 50%, rgba({{color}}, 0.5) 60%, rgba({{color}}, 0) 70%"; +const DEFAULT_RIPPLE_COLOR = [0, 0, 0]; +const BOOTSTRAP_COLORS = [ + "primary", + "secondary", + "success", + "danger", + "warning", + "info", + "light", + "dark" +]; +const TRANSITION_BREAK_OPACITY = 0.5; +const Default = { + rippleCentered: false, + rippleColor: "", + rippleDuration: "500ms", + rippleRadius: 0, + rippleUnbound: false +}; +const DefaultType = { + rippleCentered: "boolean", + rippleColor: "string", + rippleDuration: "string", + rippleRadius: "number", + rippleUnbound: "boolean" +}; +class Ripple extends BaseComponent2 { + constructor(element2, options) { + super(element2); + this._options = this._getConfig(options); + if (this._element) { + Manipulator$1.addClass(this._element, CLASSNAME_RIPPLE); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + this._clickHandler = this._createRipple.bind(this); + this._rippleTimer = null; + this._isMinWidthSet = false; + this._rippleInSpan = false; + this.init(); + } + // Getters + static get NAME() { + return NAME$1; + } + // Public + init() { + this._addClickEvent(this._element); + } + dispose() { + EventHandler$1.off(this._element, "mousedown", this._clickHandler); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Private + _autoInit(event) { + SELECTOR_COMPONENT.forEach((selector) => { + const target = SelectorEngine$1.closest(event.target, selector); + if (target) { + this._element = SelectorEngine$1.closest(event.target, selector); + } + }); + const dataAttributes = Manipulator$1.getDataAttributes(this._element); + if (this._element.classList.contains("btn") && dataAttributes.rippleInit === false) { + return; + } + this._options = this._getConfig(); + if (this._element.tagName.toLowerCase() === "input") { + const parent = this._element.parentNode; + this._rippleInSpan = true; + if (parent.tagName.toLowerCase() === "span" && parent.classList.contains(CLASSNAME_RIPPLE)) { + this._element = parent; + } else { + const shadow = getComputedStyle(this._element).boxShadow; + const btn = this._element; + const wrapper = document.createElement("span"); + if (btn.classList.contains("btn-block")) { + wrapper.style.display = "block"; + } + EventHandler$1.one(wrapper, "mouseup", (e) => { + if (e.button === 0) { + btn.click(); + } + }); + wrapper.classList.add(CLASSNAME_RIPPLE, CLASSNAME_RIPPLE_WRAPPER); + Manipulator$1.addStyle(wrapper, { + border: 0, + "box-shadow": shadow + }); + parent.replaceChild(wrapper, this._element); + wrapper.appendChild(this._element); + this._element = wrapper; + } + this._element.focus(); + } + if (!this._element.style.minWidth) { + Manipulator$1.style(this._element, { "min-width": `${getComputedStyle(this._element).width}` }); + this._isMinWidthSet = true; + } + Manipulator$1.addClass(this._element, CLASSNAME_RIPPLE); + this._createRipple(event); + } + _addClickEvent(target) { + EventHandler$1.on(target, "mousedown", this._clickHandler); + } + _getEventLayer(event) { + const x = Math.round(event.clientX - event.target.getBoundingClientRect().x); + const y = Math.round(event.clientY - event.target.getBoundingClientRect().y); + return { layerX: x, layerY: y }; + } + _createRipple(event) { + if (this._element === null) { + return; + } + if (!Manipulator$1.hasClass(this._element, CLASSNAME_RIPPLE)) { + Manipulator$1.addClass(this._element, CLASSNAME_RIPPLE); + } + const { layerX, layerY } = this._getEventLayer(event); + const offsetX = layerX; + const offsetY = layerY; + const height = this._element.offsetHeight; + const width = this._element.offsetWidth; + const duration = this._durationToMsNumber(this._options.rippleDuration); + const diameterOptions = { + offsetX: this._options.rippleCentered ? height / 2 : offsetX, + offsetY: this._options.rippleCentered ? width / 2 : offsetY, + height, + width + }; + const diameter = this._getDiameter(diameterOptions); + const radiusValue = this._options.rippleRadius || diameter / 2; + const opacity = { + delay: duration * TRANSITION_BREAK_OPACITY, + duration: duration - duration * TRANSITION_BREAK_OPACITY + }; + const styles = { + left: this._options.rippleCentered ? `${width / 2 - radiusValue}px` : `${offsetX - radiusValue}px`, + top: this._options.rippleCentered ? `${height / 2 - radiusValue}px` : `${offsetY - radiusValue}px`, + height: `${this._options.rippleRadius * 2 || diameter}px`, + width: `${this._options.rippleRadius * 2 || diameter}px`, + transitionDelay: `0s, ${opacity.delay}ms`, + transitionDuration: `${duration}ms, ${opacity.duration}ms` + }; + const rippleHTML = element("div"); + this._createHTMLRipple({ wrapper: this._element, ripple: rippleHTML, styles }); + this._removeHTMLRipple({ ripple: rippleHTML, duration }); + } + _createHTMLRipple({ wrapper, ripple, styles }) { + Object.keys(styles).forEach((property) => ripple.style[property] = styles[property]); + ripple.classList.add(CLASSNAME_RIPPLE_WAVE); + if (this._options.rippleColor !== "") { + this._removeOldColorClasses(wrapper); + this._addColor(ripple, wrapper); + } + this._toggleUnbound(wrapper); + this._appendRipple(ripple, wrapper); + } + _removeHTMLRipple({ ripple, duration }) { + if (this._rippleTimer) { + clearTimeout(this._rippleTimer); + this._rippleTimer = null; + } + this._rippleTimer = setTimeout(() => { + if (ripple) { + ripple.remove(); + if (this._element) { + SelectorEngine$1.find(`.${CLASSNAME_RIPPLE_WAVE}`, this._element).forEach((rippleEl) => { + rippleEl.remove(); + }); + if (this._isMinWidthSet) { + Manipulator$1.style(this._element, { "min-width": "" }); + this._isMinWidthSet = false; + } + if (this._rippleInSpan && this._element.classList.contains(CLASSNAME_RIPPLE_WRAPPER)) { + this._removeWrapperSpan(); + } else { + Manipulator$1.removeClass(this._element, CLASSNAME_RIPPLE); + } + } + } + }, duration); + } + _removeWrapperSpan() { + const child = this._element.firstChild; + this._element.replaceWith(child); + this._element = child; + this._element.focus(); + this._rippleInSpan = false; + } + _durationToMsNumber(time) { + return Number(time.replace("ms", "").replace("s", "000")); + } + _getConfig(config = {}) { + const dataAttributes = Manipulator$1.getDataAttributes(this._element); + config = { + ...Default, + ...dataAttributes, + ...config + }; + typeCheckConfig(NAME$1, config, DefaultType); + return config; + } + _getDiameter({ offsetX, offsetY, height, width }) { + const top2 = offsetY <= height / 2; + const left2 = offsetX <= width / 2; + const pythagorean = (sideA, sideB) => Math.sqrt(sideA ** 2 + sideB ** 2); + const positionCenter = offsetY === height / 2 && offsetX === width / 2; + const quadrant = { + first: top2 === true && left2 === false, + second: top2 === true && left2 === true, + third: top2 === false && left2 === true, + fourth: top2 === false && left2 === false + }; + const getCorner = { + topLeft: pythagorean(offsetX, offsetY), + topRight: pythagorean(width - offsetX, offsetY), + bottomLeft: pythagorean(offsetX, height - offsetY), + bottomRight: pythagorean(width - offsetX, height - offsetY) + }; + let diameter = 0; + if (positionCenter || quadrant.fourth) { + diameter = getCorner.topLeft; + } else if (quadrant.third) { + diameter = getCorner.topRight; + } else if (quadrant.second) { + diameter = getCorner.bottomRight; + } else if (quadrant.first) { + diameter = getCorner.bottomLeft; + } + return diameter * 2; + } + _appendRipple(target, parent) { + const FIX_ADD_RIPPLE_EFFECT = 50; + parent.appendChild(target); + setTimeout(() => { + Manipulator$1.addClass(target, "active"); + }, FIX_ADD_RIPPLE_EFFECT); + } + _toggleUnbound(target) { + if (this._options.rippleUnbound === true) { + Manipulator$1.addClass(target, CLASSNAME_UNBOUND); + } else { + target.classList.remove(CLASSNAME_UNBOUND); + } + } + _addColor(target, parent) { + const IS_BOOTSTRAP_COLOR = BOOTSTRAP_COLORS.find( + (color) => color === this._options.rippleColor.toLowerCase() + ); + if (IS_BOOTSTRAP_COLOR) { + Manipulator$1.addClass( + parent, + `${CLASSNAME_RIPPLE}-${this._options.rippleColor.toLowerCase()}` + ); + } else { + const rgbValue = this._colorToRGB(this._options.rippleColor).join(","); + const gradientImage = GRADIENT.split("{{color}}").join(`${rgbValue}`); + target.style.backgroundImage = `radial-gradient(circle, ${gradientImage})`; + } + } + _removeOldColorClasses(target) { + const REGEXP_CLASS_COLOR = new RegExp(`${CLASSNAME_RIPPLE}-[a-z]+`, "gi"); + const PARENT_CLASSS_COLOR = target.classList.value.match(REGEXP_CLASS_COLOR) || []; + PARENT_CLASSS_COLOR.forEach((className) => { + target.classList.remove(className); + }); + } + _colorToRGB(color) { + function hexToRgb(color2) { + const HEX_COLOR_LENGTH = 7; + const IS_SHORT_HEX = color2.length < HEX_COLOR_LENGTH; + if (IS_SHORT_HEX) { + color2 = `#${color2[1]}${color2[1]}${color2[2]}${color2[2]}${color2[3]}${color2[3]}`; + } + return [ + parseInt(color2.substr(1, 2), 16), + parseInt(color2.substr(3, 2), 16), + parseInt(color2.substr(5, 2), 16) + ]; + } + function namedColorsToRgba(color2) { + const tempElem = document.body.appendChild(document.createElement("fictum")); + const flag = "rgb(1, 2, 3)"; + tempElem.style.color = flag; + if (tempElem.style.color !== flag) { + return DEFAULT_RIPPLE_COLOR; + } + tempElem.style.color = color2; + if (tempElem.style.color === flag || tempElem.style.color === "") { + return DEFAULT_RIPPLE_COLOR; + } + color2 = getComputedStyle(tempElem).color; + document.body.removeChild(tempElem); + return color2; + } + function rgbaToRgb(color2) { + color2 = color2.match(/[.\d]+/g).map((a) => +Number(a)); + color2.length = 3; + return color2; + } + if (color.toLowerCase() === "transparent") { + return DEFAULT_RIPPLE_COLOR; + } + if (color[0] === "#") { + return hexToRgb(color); + } + if (color.indexOf("rgb") === -1) { + color = namedColorsToRgba(color); + } + if (color.indexOf("rgb") === 0) { + return rgbaToRgb(color); + } + return DEFAULT_RIPPLE_COLOR; + } + // Static + static autoInitial(instance) { + return function(event) { + instance._autoInit(event); + }; + } + static jQueryInterface(options) { + return this.each(function() { + const data = Data$1.getData(this, DATA_KEY$1); + if (!data) { + return new Ripple(this, options); + } + return null; + }); + } +} +const NAME = "range"; +const DATA_KEY = "mdb.range"; +const CLASSNAME_THUMB = "thumb"; +const CLASSNAME_ACTIVE = "thumb-active"; +const CLASSNAME_THUMB_VALUE = "thumb-value"; +const SELECTOR_THUMB_VALUE = `.${CLASSNAME_THUMB_VALUE}`; +const SELECTOR_THUMB = `.${CLASSNAME_THUMB}`; +class Range extends BaseComponent2 { + constructor(element2) { + super(element2); + this._initiated = false; + this._thumb = null; + if (this._element) { + this.init(); + Manipulator$1.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true); + bindCallbackEventsIfNeeded(this.constructor); + } + } + // Getters + static get NAME() { + return NAME; + } + get rangeInput() { + return SelectorEngine$1.findOne("input[type=range]", this._element); + } + // Public + init() { + if (this._initiated) { + return; + } + this._addThumb(); + this._thumbUpdate(); + this._handleEvents(); + this._initiated = true; + } + dispose() { + this._disposeEvents(); + Manipulator$1.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`); + super.dispose(); + } + // Private + _addThumb() { + const RANGE_THUMB = element("span"); + Manipulator$1.addClass(RANGE_THUMB, CLASSNAME_THUMB); + RANGE_THUMB.innerHTML = ''; + this._element.append(RANGE_THUMB); + this._thumb = SelectorEngine$1.findOne(SELECTOR_THUMB, this._element); + } + _handleEvents() { + EventHandler$1.on(this.rangeInput, "mousedown", () => this._showThumb()); + EventHandler$1.on(this.rangeInput, "mouseup", () => this._hideThumb()); + EventHandler$1.on(this.rangeInput, "touchstart", () => this._showThumb()); + EventHandler$1.on(this.rangeInput, "touchend", () => this._hideThumb()); + EventHandler$1.on(this.rangeInput, "input", () => this._thumbUpdate()); + } + _disposeEvents() { + EventHandler$1.off(this.rangeInput, "mousedown"); + EventHandler$1.off(this.rangeInput, "mouseup"); + EventHandler$1.off(this.rangeInput, "touchstart"); + EventHandler$1.off(this.rangeInput, "touchend"); + EventHandler$1.off(this.rangeInput, "input"); + } + _showThumb() { + Manipulator$1.addClass(this._thumb, CLASSNAME_ACTIVE); + } + _hideThumb() { + Manipulator$1.removeClass(this._thumb, CLASSNAME_ACTIVE); + } + _thumbUpdate() { + const rangeInput = this.rangeInput; + const inputValue = rangeInput.value; + const minValue = rangeInput.min ? rangeInput.min : 0; + const maxValue = rangeInput.max ? rangeInput.max : 100; + const thumbValue = SelectorEngine$1.findOne(SELECTOR_THUMB_VALUE, this._thumb); + thumbValue.textContent = inputValue; + const newValue = Number((inputValue - minValue) * 100 / (maxValue - minValue)); + Manipulator$1.style(this._thumb, { left: `calc(${newValue}% + (${8 - newValue * 0.15}px))` }); + } + // Static + static jQueryInterface(config, options) { + return this.each(function() { + let data = Data$1.getData(this, DATA_KEY); + const _config = typeof config === "object" && config; + if (!data && /dispose/.test(config)) { + return; + } + if (!data) { + data = new Range(this, _config); + } + if (typeof config === "string") { + if (typeof data[config] === "undefined") { + throw new TypeError(`No method named "${config}"`); + } + data[config](options); + } + }); + } +} +const callbackInitState = /* @__PURE__ */ new Map(); +const alertCallback = (component, initSelector) => { + const Alert3 = component; + if (!callbackInitState.has(component.name)) { + enableDismissTrigger(Alert3); + callbackInitState.set(component.name, true); + } + SelectorEngine$1.find(initSelector).forEach((element2) => { + return Alert3.getOrCreateInstance(element2); + }); +}; +const buttonCallback = (component, initSelector) => { + const Button3 = component; + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + if (!callbackInitState.has(component.name)) { + EventHandler$1.on(document, EVENT_CLICK_DATA_API, initSelector, (event) => { + event.preventDefault(); + const button = event.target.closest(initSelector); + const data = Button3.getOrCreateInstance(button); + data.toggle(); + }); + callbackInitState.set(component.name, true); + } + SelectorEngine$1.find(initSelector).forEach((element2) => { + return Button3.getOrCreateInstance(element2); + }); +}; +const carouselCallback = (component, initSelector) => { + if (callbackInitState.has(component.name)) { + return; + } + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + const SELECTOR_DATA_SLIDE = "[data-mdb-slide], [data-mdb-slide-to]"; + const CLASS_NAME_CAROUSEL2 = "carousel"; + const Carousel3 = component; + const EVENT_LOAD_DATA_API = `load.bs.${component.name}.data-api`; + const SELECTOR_DATA_RIDE = initSelector; + EventHandler$1.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function(event) { + const target = getElementFromSelector(this); + if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL2)) { + return; + } + event.preventDefault(); + const carousel = Carousel3.getOrCreateInstance(target); + const slideIndex = this.getAttribute("data-mdb-slide-to"); + if (slideIndex) { + carousel.to(slideIndex); + carousel._maybeEnableCycle(); + return; + } + if (Manipulator$1.getDataAttribute(this, "slide") === "next") { + carousel.next(); + carousel._maybeEnableCycle(); + return; + } + carousel.prev(); + carousel._maybeEnableCycle(); + }); + EventHandler$1.on(window, EVENT_LOAD_DATA_API, () => { + const carousels = SelectorEngine$1.find(SELECTOR_DATA_RIDE); + carousels.forEach((carousel) => { + Carousel3.getOrCreateInstance(carousel); + }); + }); + callbackInitState.set(component.name, true); +}; +const collapseCallback = (component, initSelector) => { + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + const SELECTOR_DATA_TOGGLE2 = initSelector; + const Collapse3 = component; + if (!callbackInitState.has(component.name)) { + EventHandler$1.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE2, function(event) { + if (event.target.tagName === "A" || event.delegateTarget && event.delegateTarget.tagName === "A") { + event.preventDefault(); + } + const selector = getSelectorFromElement(this); + const selectorElements = SelectorEngine$1.find(selector); + selectorElements.forEach((element2) => { + Collapse3.getOrCreateInstance(element2, { toggle: false }).toggle(); + }); + }); + callbackInitState.set(component.name, true); + } + SelectorEngine$1.find(SELECTOR_DATA_TOGGLE2).forEach((el) => { + const selector = getSelectorFromElement(el); + const selectorElements = SelectorEngine$1.find(selector); + selectorElements.forEach((element2) => { + Collapse3.getOrCreateInstance(element2, { toggle: false }); + }); + }); +}; +const dropdownCallback = (component, initSelector) => { + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + const EVENT_KEYDOWN_DATA_API = `keydown.bs.${component.name}.data-api`; + const EVENT_KEYUP_DATA_API = `keyup.bs.${component.name}.data-api`; + const SELECTOR_MENU2 = ".dropdown-menu"; + const SELECTOR_DATA_TOGGLE2 = `[data-mdb-${component.NAME}-initialized]`; + const Dropdown3 = component; + if (!callbackInitState.has(component.name)) { + EventHandler$1.on( + document, + EVENT_KEYDOWN_DATA_API, + SELECTOR_DATA_TOGGLE2, + Dropdown3.dataApiKeydownHandler + ); + EventHandler$1.on( + document, + EVENT_KEYDOWN_DATA_API, + SELECTOR_MENU2, + Dropdown3.dataApiKeydownHandler + ); + EventHandler$1.on(document, EVENT_CLICK_DATA_API, Dropdown3.clearMenus); + EventHandler$1.on(document, EVENT_KEYUP_DATA_API, Dropdown3.clearMenus); + EventHandler$1.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE2, function(event) { + event.preventDefault(); + Dropdown3.getOrCreateInstance(this).toggle(); + }); + } + callbackInitState.set(component.name, true); + SelectorEngine$1.find(initSelector).forEach((el) => { + Dropdown3.getOrCreateInstance(el); + }); +}; +const inputCallback = (component, initSelector) => { + const SELECTOR_DATA_INIT = initSelector; + const SELECTOR_OUTLINE_INPUT = `${SELECTOR_DATA_INIT} input`; + const SELECTOR_OUTLINE_TEXTAREA = `${SELECTOR_DATA_INIT} textarea`; + const Input2 = component; + if (!callbackInitState.has(component.name)) { + EventHandler$1.on(document, "focus", SELECTOR_OUTLINE_INPUT, Input2.activate(new Input2())); + EventHandler$1.on(document, "input", SELECTOR_OUTLINE_INPUT, Input2.activate(new Input2())); + EventHandler$1.on(document, "blur", SELECTOR_OUTLINE_INPUT, Input2.deactivate(new Input2())); + EventHandler$1.on(document, "focus", SELECTOR_OUTLINE_TEXTAREA, Input2.activate(new Input2())); + EventHandler$1.on(document, "input", SELECTOR_OUTLINE_TEXTAREA, Input2.activate(new Input2())); + EventHandler$1.on(document, "blur", SELECTOR_OUTLINE_TEXTAREA, Input2.deactivate(new Input2())); + EventHandler$1.on(window, "shown.bs.modal", (e) => { + SelectorEngine$1.find(SELECTOR_OUTLINE_INPUT, e.target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.update(); + }); + SelectorEngine$1.find(SELECTOR_OUTLINE_TEXTAREA, e.target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.update(); + }); + }); + EventHandler$1.on(window, "shown.bs.dropdown", (e) => { + const target = e.target.parentNode.querySelector(".dropdown-menu"); + if (target) { + SelectorEngine$1.find(SELECTOR_OUTLINE_INPUT, target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.update(); + }); + SelectorEngine$1.find(SELECTOR_OUTLINE_TEXTAREA, target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.update(); + }); + } + }); + EventHandler$1.on(window, "shown.bs.tab", (e) => { + let targetId; + if (e.target.href) { + targetId = e.target.href.split("#")[1]; + } else { + targetId = Manipulator$1.getDataAttribute(e.target, "target").split("#")[1]; + } + const target = SelectorEngine$1.findOne(`#${targetId}`); + SelectorEngine$1.find(SELECTOR_OUTLINE_INPUT, target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.update(); + }); + SelectorEngine$1.find(SELECTOR_OUTLINE_TEXTAREA, target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.update(); + }); + }); + EventHandler$1.on(window, "reset", (e) => { + SelectorEngine$1.find(SELECTOR_OUTLINE_INPUT, e.target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.forceInactive(); + }); + SelectorEngine$1.find(SELECTOR_OUTLINE_TEXTAREA, e.target).forEach((element2) => { + const instance = Input2.getInstance(element2.parentNode); + if (!instance) { + return; + } + instance.forceInactive(); + }); + }); + EventHandler$1.on(window, "onautocomplete", (e) => { + const instance = Input2.getInstance(e.target.parentNode); + if (!instance || !e.cancelable) { + return; + } + instance.forceActive(); + }); + callbackInitState.set(component.name, true); + } + SelectorEngine$1.find(SELECTOR_DATA_INIT).map((element2) => Input2.getOrCreateInstance(element2)); +}; +const modalCallback = (component, initSelector) => { + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + const OPEN_SELECTOR = ".modal.show"; + const Modal3 = component; + const EVENT_SHOW2 = `show.bs.${component.name}`; + const EVENT_HIDDEN2 = `hidden.bs.${component.name}`; + if (!callbackInitState.has(component.name)) { + EventHandler$1.on(document, EVENT_CLICK_DATA_API, initSelector, function(event) { + const target = getElementFromSelector(this); + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + EventHandler$1.one(target, EVENT_SHOW2, (showEvent) => { + if (showEvent.defaultPrevented) { + return; + } + EventHandler$1.one(target, EVENT_HIDDEN2, () => { + if (isVisible$1(this)) { + this.focus(); + } + }); + }); + const alreadyOpenedModals = SelectorEngine$1.find(OPEN_SELECTOR); + alreadyOpenedModals.forEach((modal) => { + if (!modal.classList.contains("modal-non-invasive-show")) { + Modal3.getInstance(modal).hide(); + } + }); + const data = Modal3.getOrCreateInstance(target); + data.toggle(this); + }); + enableDismissTrigger(Modal3); + callbackInitState.set(component.name, true); + } + SelectorEngine$1.find(initSelector).forEach((el) => { + const selector = getSelectorFromElement(el); + const selectorElement = SelectorEngine$1.findOne(selector); + Modal3.getOrCreateInstance(selectorElement); + }); +}; +const offcanvasCallback = (component, initSelector) => { + if (callbackInitState.has(component.name)) { + return; + } + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + const OPEN_SELECTOR = ".offcanvas.show"; + const Offcanvas2 = component; + const EVENT_HIDDEN2 = `hidden.bs.${component.name}`; + const EVENT_LOAD_DATA_API = `load.bs.${component.name}.data-api`; + const EVENT_RESIZE2 = `resize.bs.${component.name}`; + EventHandler$1.on(document, EVENT_CLICK_DATA_API, initSelector, function(event) { + const target = getElementFromSelector(this); + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled$1(this)) { + return; + } + EventHandler$1.one(target, EVENT_HIDDEN2, () => { + if (isVisible$1(this)) { + this.focus(); + } + }); + const alreadyOpen = SelectorEngine$1.findOne(OPEN_SELECTOR); + if (alreadyOpen && alreadyOpen !== target) { + Offcanvas2.getInstance(alreadyOpen).hide(); + } + const data = Offcanvas2.getOrCreateInstance(target); + data.toggle(this); + }); + EventHandler$1.on(window, EVENT_LOAD_DATA_API, () => { + SelectorEngine$1.find(OPEN_SELECTOR).forEach((selector) => { + Offcanvas2.getOrCreateInstance(selector).show(); + }); + }); + EventHandler$1.on(window, EVENT_RESIZE2, () => { + SelectorEngine$1.find("[aria-modal][class*=show][class*=offcanvas-]").forEach((element2) => { + if (getComputedStyle(element2).position !== "fixed") { + Offcanvas2.getOrCreateInstance(element2).hide(); + } + }); + }); + enableDismissTrigger(Offcanvas2); + callbackInitState.set(component.name, true); +}; +const scrollspyCallback = (component, initSelector) => { + if (callbackInitState.has(component.name)) { + return; + } + const EVENT_LOAD_DATA_API = `load.bs.${component.name}.data-api`; + const ScrollSpy3 = component; + EventHandler$1.on(window, EVENT_LOAD_DATA_API, () => { + SelectorEngine$1.find(initSelector).forEach((el) => { + ScrollSpy3.getOrCreateInstance(el); + }); + }); + callbackInitState.set(component.name, true); +}; +const tabCallback = (component, initSelector) => { + const EVENT_LOAD_DATA_API = `load.bs.${component.name}.data-api`; + const EVENT_CLICK_DATA_API = `click.bs.${component.name}.data-api`; + const CLASS_NAME_ACTIVE2 = "active"; + const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE2}[data-mdb-tab-init], .${CLASS_NAME_ACTIVE2}[data-mdb-pill-init], .${CLASS_NAME_ACTIVE2}[data-mdb-toggle="list"]`; + const Tab3 = component; + if (!callbackInitState.has(component.name)) { + EventHandler$1.on(document, EVENT_CLICK_DATA_API, initSelector, function(event) { + if (["A", "AREA"].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled$1(this)) { + return; + } + Tab3.getOrCreateInstance(this).show(); + }); + EventHandler$1.on(window, EVENT_LOAD_DATA_API, () => { + SelectorEngine$1.find(SELECTOR_DATA_TOGGLE_ACTIVE).forEach((element2) => { + Tab3.getOrCreateInstance(element2); + }); + }); + callbackInitState.set(component.name, true); + } +}; +const toastCallback = (component, initSelector) => { + const Toast3 = component; + if (!callbackInitState.has(component.name)) { + enableDismissTrigger(Toast3); + callbackInitState.set(component.name, true); + } + SelectorEngine$1.find(initSelector).forEach((element2) => { + return Toast3.getOrCreateInstance(element2); + }); +}; +const rippleCallback = (component, initSelector) => { + const Ripple2 = component; + if (!callbackInitState.has(component.name)) { + EventHandler$1.one(document, "mousedown", initSelector, Ripple2.autoInitial(new Ripple2())); + callbackInitState.set(component.name, true); + } +}; +const defaultInitSelectors = { + // Bootstrap Components + alert: { + name: "Alert", + selector: "[data-mdb-alert-init]", + isToggler: true, + callback: alertCallback + }, + button: { + name: "Button", + selector: "[data-mdb-button-init]", + isToggler: true, + callback: buttonCallback + }, + carousel: { + name: "Carousel", + selector: "[data-mdb-carousel-init]", + isToggler: true, + callback: carouselCallback + }, + collapse: { + name: "Collapse", + selector: "[data-mdb-collapse-init]", + isToggler: true, + callback: collapseCallback + }, + dropdown: { + name: "Dropdown", + selector: "[data-mdb-dropdown-init]", + isToggler: true, + callback: dropdownCallback + }, + modal: { + name: "Modal", + selector: "[data-mdb-modal-init]", + isToggler: true, + callback: modalCallback + }, + offcanvas: { + name: "Offcanvas", + selector: "[data-mdb-offcanvas-init]", + isToggler: true, + callback: offcanvasCallback + }, + scrollspy: { + name: "ScrollSpy", + selector: "[data-mdb-scrollspy-init]", + isToggler: true, + callback: scrollspyCallback + }, + tab: { + name: "Tab", + selector: "[data-mdb-tab-init], [data-mdb-pill-init], [data-mdb-list-init]", + isToggler: true, + callback: tabCallback + }, + toast: { + name: "Toast", + selector: "[data-mdb-toast-init]", + isToggler: true, + callback: toastCallback + }, + tooltip: { + name: "Tooltip", + selector: "[data-mdb-tooltip-init]", + isToggler: false + }, + input: { + name: "Input", + selector: "[data-mdb-input-init]", + isToggler: true, + callback: inputCallback + }, + range: { + name: "Range", + selector: "[data-mdb-range-init]", + isToggler: false + }, + ripple: { + name: "Ripple", + selector: "[data-mdb-ripple-init]", + isToggler: true, + callback: rippleCallback + }, + popover: { + name: "Popover", + selector: "[data-mdb-popover-init]", + isToggler: false, + callback: rippleCallback + } +}; +const initMDBInstance = new InitMDB(defaultInitSelectors); +const initMDB = initMDBInstance.initMDB; +export { + Alert2 as Alert, + Button2 as Button, + Carousel2 as Carousel, + Collapse2 as Collapse, + Dropdown2 as Dropdown, + Input, + Modal2 as Modal, + Offcanvas, + Popover2 as Popover, + Range, + Ripple, + ScrollSpy2 as ScrollSpy, + Tab2 as Tab, + Toast2 as Toast, + Tooltip2 as Tooltip, + initMDB +}; +//# sourceMappingURL=mdb.es.min.js.map diff --git a/js/mdb.es.min.js.map b/js/mdb.es.min.js.map new file mode 100644 index 000000000..682a3e7c3 --- /dev/null +++ b/js/mdb.es.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mdb.es.min.js","sources":["../../src/js/mdb/dom/data.js","../../src/js/mdb/util/index.js","../../src/js/mdb/dom/event-handler.js","../../src/js/mdb/dom/manipulator.js","../../src/js/mdb/dom/selector-engine.js","../../src/js/bootstrap/mdb-prefix/dom/data.js","../../src/js/bootstrap/mdb-prefix/util/index.js","../../src/js/bootstrap/mdb-prefix/dom/event-handler.js","../../src/js/bootstrap/mdb-prefix/dom/manipulator.js","../../src/js/bootstrap/mdb-prefix/util/config.js","../../src/js/bootstrap/mdb-prefix/base-component.js","../../src/js/bootstrap/mdb-prefix/button.js","../../src/js/autoinit/init.js","../../src/js/free/button.js","../../src/js/bootstrap/mdb-prefix/dom/selector-engine.js","../../src/js/bootstrap/mdb-prefix/util/backdrop.js","../../src/js/bootstrap/mdb-prefix/util/component-functions.js","../../src/js/bootstrap/mdb-prefix/util/focustrap.js","../../src/js/bootstrap/mdb-prefix/util/scrollbar.js","../../src/js/bootstrap/mdb-prefix/offcanvas.js","../../src/js/bootstrap/mdb-prefix/alert.js","../../src/js/free/alert.js","../../src/js/bootstrap/mdb-prefix/util/swipe.js","../../src/js/bootstrap/mdb-prefix/carousel.js","../../src/js/free/carousel.js","../../src/js/bootstrap/mdb-prefix/modal.js","../../src/js/free/modal.js","../../node_modules/@popperjs/core/lib/enums.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../node_modules/@popperjs/core/lib/utils/math.js","../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../node_modules/@popperjs/core/lib/utils/within.js","../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../node_modules/@popperjs/core/lib/utils/debounce.js","../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../node_modules/@popperjs/core/lib/createPopper.js","../../node_modules/@popperjs/core/lib/popper-lite.js","../../node_modules/@popperjs/core/lib/popper.js","../../src/js/bootstrap/mdb-prefix/util/sanitizer.js","../../src/js/bootstrap/mdb-prefix/util/template-factory.js","../../src/js/bootstrap/mdb-prefix/tooltip.js","../../src/js/bootstrap/mdb-prefix/popover.js","../../src/js/free/popover.js","../../src/js/bootstrap/mdb-prefix/scrollspy.js","../../src/js/free/scrollspy.js","../../src/js/bootstrap/mdb-prefix/tab.js","../../src/js/free/tab.js","../../src/js/free/tooltip.js","../../src/js/bootstrap/mdb-prefix/toast.js","../../src/js/free/toast.js","../../node_modules/detect-autofill/dist/detect-autofill.js","../../src/js/free/base-component.js","../../src/js/free/input.js","../../src/js/bootstrap/mdb-prefix/collapse.js","../../src/js/free/collapse.js","../../src/js/bootstrap/mdb-prefix/dropdown.js","../../src/js/free/dropdown.js","../../src/js/free/ripple.js","../../src/js/free/range.js","../../src/js/autoinit/callbacks/free.js","../../src/js/autoinit/initSelectors/free.js","../../src/js/autoinit/index.free.js"],"sourcesContent":["/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-beta2): dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst mapData = (() => {\r\n const storeData = {};\r\n let id = 1;\r\n return {\r\n set(element, key, data) {\r\n if (typeof element[key] === 'undefined') {\r\n element[key] = {\r\n key,\r\n id,\r\n };\r\n id++;\r\n }\r\n\r\n storeData[element[key].id] = data;\r\n },\r\n get(element, key) {\r\n if (!element || typeof element[key] === 'undefined') {\r\n return null;\r\n }\r\n\r\n const keyProperties = element[key];\r\n if (keyProperties.key === key) {\r\n return storeData[keyProperties.id];\r\n }\r\n\r\n return null;\r\n },\r\n delete(element, key) {\r\n if (typeof element[key] === 'undefined') {\r\n return;\r\n }\r\n\r\n const keyProperties = element[key];\r\n if (keyProperties.key === key) {\r\n delete storeData[keyProperties.id];\r\n delete element[key];\r\n }\r\n },\r\n };\r\n})();\r\n\r\nconst Data = {\r\n setData(instance, key, data) {\r\n mapData.set(instance, key, data);\r\n },\r\n getData(instance, key) {\r\n return mapData.get(instance, key);\r\n },\r\n removeData(instance, key) {\r\n mapData.delete(instance, key);\r\n },\r\n};\r\n\r\nexport default Data;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-beta2): util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst MAX_UID = 1000000;\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\nconst TRANSITION_END = 'transitionend';\r\n\r\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\r\nconst toType = (obj) => {\r\n if (obj === null || obj === undefined) {\r\n return `${obj}`;\r\n }\r\n\r\n return {}.toString\r\n .call(obj)\r\n .match(/\\s([a-z]+)/i)[1]\r\n .toLowerCase();\r\n};\r\n\r\n/**\r\n * --------------------------------------------------------------------------\r\n * Public Util Api\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst getUID = (prefix) => {\r\n do {\r\n prefix += Math.floor(Math.random() * MAX_UID);\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n};\r\n\r\nconst getSelector = (element) => {\r\n let selector = element.getAttribute('data-mdb-target');\r\n\r\n if (!selector || selector === '#') {\r\n const hrefAttr = element.getAttribute('href');\r\n\r\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\r\n }\r\n\r\n return selector;\r\n};\r\n\r\nconst getSelectorFromElement = (element) => {\r\n const selector = getSelector(element);\r\n\r\n if (selector) {\r\n return document.querySelector(selector) ? selector : null;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getElementFromSelector = (element) => {\r\n const selector = getSelector(element);\r\n\r\n return selector ? document.querySelector(selector) : null;\r\n};\r\n\r\nconst getTransitionDurationFromElement = (element) => {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\r\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0;\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (\r\n (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) *\r\n MILLISECONDS_MULTIPLIER\r\n );\r\n};\r\n\r\nconst triggerTransitionEnd = (element) => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n};\r\n\r\nconst isElement = (obj) => {\r\n if (!obj || typeof obj !== 'object') {\r\n return false;\r\n }\r\n\r\n if (typeof obj.jquery !== 'undefined') {\r\n obj = obj[0];\r\n }\r\n\r\n return typeof obj.nodeType !== 'undefined';\r\n};\r\n\r\nconst getElement = (obj) => {\r\n if (isElement(obj)) {\r\n // it's a jQuery object or a node element\r\n return obj.jquery ? obj[0] : obj;\r\n }\r\n\r\n if (typeof obj === 'string' && obj.length > 0) {\r\n return document.querySelector(obj);\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst emulateTransitionEnd = (element, duration) => {\r\n let called = false;\r\n const durationPadding = 5;\r\n const emulatedDuration = duration + durationPadding;\r\n\r\n function listener() {\r\n called = true;\r\n element.removeEventListener(TRANSITION_END, listener);\r\n }\r\n\r\n element.addEventListener(TRANSITION_END, listener);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(element);\r\n }\r\n }, emulatedDuration);\r\n};\r\n\r\nconst typeCheckConfig = (componentName, config, configTypes) => {\r\n Object.keys(configTypes).forEach((property) => {\r\n const expectedTypes = configTypes[property];\r\n const value = config[property];\r\n const valueType = value && isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new Error(\r\n `${componentName.toUpperCase()}: ` +\r\n `Option \"${property}\" provided type \"${valueType}\" ` +\r\n `but expected type \"${expectedTypes}\".`\r\n );\r\n }\r\n });\r\n};\r\n\r\nconst isVisible = (element) => {\r\n if (!element) {\r\n return false;\r\n }\r\n\r\n if (element.style && element.parentNode && element.parentNode.style) {\r\n const elementStyle = getComputedStyle(element);\r\n const parentNodeStyle = getComputedStyle(element.parentNode);\r\n\r\n return (\r\n elementStyle.display !== 'none' &&\r\n parentNodeStyle.display !== 'none' &&\r\n elementStyle.visibility !== 'hidden'\r\n );\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst isDisabled = (element) => {\r\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n return true;\r\n }\r\n\r\n if (element.classList.contains('disabled')) {\r\n return true;\r\n }\r\n\r\n if (typeof element.disabled !== 'undefined') {\r\n return element.disabled;\r\n }\r\n\r\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\r\n};\r\n\r\nconst findShadowRoot = (element) => {\r\n if (!document.documentElement.attachShadow) {\r\n return null;\r\n }\r\n\r\n // Can find the shadow root otherwise it'll return the document\r\n if (typeof element.getRootNode === 'function') {\r\n const root = element.getRootNode();\r\n return root instanceof ShadowRoot ? root : null;\r\n }\r\n\r\n if (element instanceof ShadowRoot) {\r\n return element;\r\n }\r\n\r\n // when we don't find a shadow root\r\n if (!element.parentNode) {\r\n return null;\r\n }\r\n\r\n return findShadowRoot(element.parentNode);\r\n};\r\n\r\nconst noop = () => function () {};\r\n\r\nconst reflow = (element) => element.offsetHeight;\r\n\r\nconst getjQuery = () => {\r\n const { jQuery } = window;\r\n\r\n if (jQuery && !document.body.hasAttribute('data-mdb-no-jquery')) {\r\n return jQuery;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst onDOMContentLoaded = (callback) => {\r\n if (document.readyState === 'loading') {\r\n document.addEventListener('DOMContentLoaded', callback);\r\n } else {\r\n callback();\r\n }\r\n};\r\n\r\nconst isRTL = document.documentElement.dir === 'rtl';\r\n\r\nconst array = (collection) => {\r\n return Array.from(collection);\r\n};\r\n\r\nconst element = (tag) => {\r\n return document.createElement(tag);\r\n};\r\n\r\nconst defineJQueryPlugin = (plugin) => {\r\n onDOMContentLoaded(() => {\r\n const $ = getjQuery();\r\n\r\n /* istanbul ignore if */\r\n if ($) {\r\n const name = plugin.NAME;\r\n const JQUERY_NO_CONFLICT = $.fn[name];\r\n $.fn[name] = plugin.jQueryInterface;\r\n $.fn[name].Constructor = plugin;\r\n $.fn[name].noConflict = () => {\r\n $.fn[name] = JQUERY_NO_CONFLICT;\r\n return plugin.jQueryInterface;\r\n };\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n getjQuery,\r\n TRANSITION_END,\r\n getUID,\r\n getSelectorFromElement,\r\n getElementFromSelector,\r\n getTransitionDurationFromElement,\r\n triggerTransitionEnd,\r\n isElement,\r\n getElement,\r\n emulateTransitionEnd,\r\n typeCheckConfig,\r\n isVisible,\r\n isDisabled,\r\n findShadowRoot,\r\n noop,\r\n reflow,\r\n array,\r\n element,\r\n onDOMContentLoaded,\r\n isRTL,\r\n defineJQueryPlugin,\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-beta2): dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from '../util/index';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst $ = getjQuery();\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\nconst stripNameRegex = /\\..*/;\r\nconst stripUidRegex = /::\\d+$/;\r\nconst eventRegistry = {}; // Events storage\r\nlet uidEvent = 1;\r\nconst customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout',\r\n};\r\nconst nativeEvents = [\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll',\r\n];\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Private methods\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nfunction getUidEvent(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++;\r\n}\r\n\r\nfunction getEvent(element) {\r\n const uid = getUidEvent(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid];\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n event.delegateTarget = element;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event]);\r\n };\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (let i = domElements.length; i--; '') {\r\n if (domElements[i] === target) {\r\n event.delegateTarget = target;\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(target, [event]);\r\n }\r\n }\r\n }\r\n\r\n // To please ESLint\r\n return null;\r\n };\r\n}\r\n\r\nfunction findHandler(events, handler, delegationSelector = null) {\r\n const uidEventList = Object.keys(events);\r\n\r\n for (let i = 0, len = uidEventList.length; i < len; i++) {\r\n const event = events[uidEventList[i]];\r\n\r\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\r\n return event;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\r\n const delegation = typeof handler === 'string';\r\n const originalHandler = delegation ? delegationFn : handler;\r\n\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '');\r\n const custom = customEvents[typeEvent];\r\n\r\n if (custom) {\r\n typeEvent = custom;\r\n }\r\n\r\n const isNative = nativeEvents.indexOf(typeEvent) > -1;\r\n\r\n if (!isNative) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [delegation, originalHandler, typeEvent];\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n if (!handler) {\r\n handler = delegationFn;\r\n delegationFn = null;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const events = getEvent(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);\r\n\r\n if (previousFn) {\r\n previousFn.oneOff = previousFn.oneOff && oneOff;\r\n\r\n return;\r\n }\r\n\r\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = delegation\r\n ? bootstrapDelegationHandler(element, handler, delegationFn)\r\n : bootstrapHandler(element, handler);\r\n\r\n fn.delegationSelector = delegation ? handler : null;\r\n fn.originalHandler = originalHandler;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, delegation);\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return;\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n Object.keys(storeElementEvent).forEach((handlerKey) => {\r\n if (handlerKey.indexOf(namespace) > -1) {\r\n const event = storeElementEvent[handlerKey];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n}\r\n\r\nconst EventHandler = {\r\n on(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, false);\r\n },\r\n\r\n one(element, event, handler, delegationFn) {\r\n addHandler(element, event, handler, delegationFn, true);\r\n },\r\n\r\n extend(element, events, componentName) {\r\n events.forEach((event) => {\r\n EventHandler.on(element, `${event.name}.bs.${componentName}`, (e) => {\r\n const eventParameters = {};\r\n if (event.parametersToCopy) {\r\n event.parametersToCopy.forEach((param) => {\r\n eventParameters[param] = e[param];\r\n });\r\n }\r\n\r\n const mdbEvent = EventHandler.trigger(\r\n element,\r\n `${event.name}.mdb.${componentName}`,\r\n eventParameters\r\n );\r\n\r\n if (mdbEvent.defaultPrevented) {\r\n e.preventDefault();\r\n }\r\n });\r\n });\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n const [delegation, originalHandler, typeEvent] = normalizeParams(\r\n originalTypeEvent,\r\n handler,\r\n delegationFn\r\n );\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getEvent(element);\r\n const isNamespace = originalTypeEvent.charAt(0) === '.';\r\n\r\n if (typeof originalHandler !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!events || !events[typeEvent]) {\r\n return;\r\n }\r\n\r\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);\r\n return;\r\n }\r\n\r\n if (isNamespace) {\r\n Object.keys(events).forEach((elementEvent) => {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n });\r\n }\r\n\r\n const storeElementEvent = events[typeEvent] || {};\r\n Object.keys(storeElementEvent).forEach((keyHandlers) => {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\r\n const event = storeElementEvent[keyHandlers];\r\n\r\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);\r\n }\r\n });\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null;\r\n }\r\n\r\n const typeEvent = event.replace(stripNameRegex, '');\r\n const inNamespace = event !== typeEvent;\r\n const isNative = nativeEvents.indexOf(typeEvent) > -1;\r\n\r\n let jQueryEvent;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n let evt = null;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n if (isNative) {\r\n evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(typeEvent, bubbles, true);\r\n } else {\r\n evt = new CustomEvent(event, {\r\n bubbles,\r\n cancelable: true,\r\n });\r\n }\r\n\r\n // merge custom informations in our event\r\n if (typeof args !== 'undefined') {\r\n Object.keys(args).forEach((key) => {\r\n Object.defineProperty(evt, key, {\r\n get() {\r\n return args[key];\r\n },\r\n });\r\n });\r\n }\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt;\r\n },\r\n};\r\n\r\nexport const EventHandlerMulti = {\r\n on(element, eventsName, handler, delegationFn) {\r\n const events = eventsName.split(' ');\r\n\r\n for (let i = 0; i < events.length; i++) {\r\n EventHandler.on(element, events[i], handler, delegationFn);\r\n }\r\n },\r\n off(element, originalTypeEvent, handler, delegationFn) {\r\n const events = originalTypeEvent.split(' ');\r\n\r\n for (let i = 0; i < events.length; i++) {\r\n EventHandler.off(element, events[i], handler, delegationFn);\r\n }\r\n },\r\n};\r\n\r\nexport default EventHandler;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-beta2): dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(val) {\r\n if (val === 'true') {\r\n return true;\r\n }\r\n\r\n if (val === 'false') {\r\n return false;\r\n }\r\n\r\n if (val === Number(val).toString()) {\r\n return Number(val);\r\n }\r\n\r\n if (val === '' || val === 'null') {\r\n return null;\r\n }\r\n\r\n return val;\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-mdb-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-mdb-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {\r\n ...element.dataset,\r\n };\r\n\r\n Object.keys(attributes)\r\n .filter((key) => key.startsWith('mdb'))\r\n .forEach((key) => {\r\n let pureKey = key.replace(/^mdb/, '');\r\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\r\n attributes[pureKey] = normalizeData(attributes[key]);\r\n });\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-mdb-${normalizeDataKey(key)}`));\r\n },\r\n\r\n offset(element) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n return {\r\n top: rect.top + document.body.scrollTop,\r\n left: rect.left + document.body.scrollLeft,\r\n };\r\n },\r\n\r\n position(element) {\r\n return {\r\n top: element.offsetTop,\r\n left: element.offsetLeft,\r\n };\r\n },\r\n\r\n style(element, style) {\r\n Object.assign(element.style, style);\r\n },\r\n\r\n toggleClass(element, className) {\r\n if (!element) {\r\n return;\r\n }\r\n\r\n if (element.classList.contains(className)) {\r\n element.classList.remove(className);\r\n } else {\r\n element.classList.add(className);\r\n }\r\n },\r\n\r\n addClass(element, className) {\r\n if (element.classList.contains(className)) return;\r\n element.classList.add(className);\r\n },\r\n\r\n addStyle(element, style) {\r\n Object.keys(style).forEach((property) => {\r\n element.style[property] = style[property];\r\n });\r\n },\r\n\r\n removeClass(element, className) {\r\n if (!element.classList.contains(className)) return;\r\n element.classList.remove(className);\r\n },\r\n\r\n hasClass(element, className) {\r\n return element.classList.contains(className);\r\n },\r\n};\r\n\r\nexport default Manipulator;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap (v5.0.0-beta2): dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NODE_TEXT = 3;\r\n\r\nconst SelectorEngine = {\r\n closest(element, selector) {\r\n return element.closest(selector);\r\n },\r\n\r\n matches(element, selector) {\r\n return element.matches(selector);\r\n },\r\n\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return Element.prototype.querySelector.call(element, selector);\r\n },\r\n\r\n children(element, selector) {\r\n const children = [].concat(...element.children);\r\n\r\n return children.filter((child) => child.matches(selector));\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n\r\n let ancestor = element.parentNode;\r\n\r\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\r\n if (this.matches(ancestor, selector)) {\r\n parents.push(ancestor);\r\n }\r\n\r\n ancestor = ancestor.parentNode;\r\n }\r\n\r\n return parents;\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous];\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (this.matches(next, selector)) {\r\n return [next];\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n};\r\n\r\nexport default SelectorEngine;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap dom/data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst elementMap = new Map();\r\n\r\nexport default {\r\n set(element, key, instance) {\r\n if (!elementMap.has(element)) {\r\n elementMap.set(element, new Map());\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n // make it clear we only want one instance per element\r\n // can be removed later when multiple key/instances are fine to be used\r\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n `Bootstrap doesn't allow more than one instance per element. Bound instance: ${\r\n Array.from(instanceMap.keys())[0]\r\n }.`\r\n );\r\n return;\r\n }\r\n\r\n instanceMap.set(key, instance);\r\n },\r\n\r\n get(element, key) {\r\n if (elementMap.has(element)) {\r\n return elementMap.get(element).get(key) || null;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n remove(element, key) {\r\n if (!elementMap.has(element)) {\r\n return;\r\n }\r\n\r\n const instanceMap = elementMap.get(element);\r\n\r\n instanceMap.delete(key);\r\n\r\n // free up element references if there are no instances left for an element\r\n if (instanceMap.size === 0) {\r\n elementMap.delete(element);\r\n }\r\n },\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/index.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nconst MAX_UID = 1_000_000;\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\nconst TRANSITION_END = 'transitionend';\r\n\r\n/**\r\n * Properly escape IDs selectors to handle weird IDs\r\n * @param {string} selector\r\n * @returns {string}\r\n */\r\nconst parseSelector = (selector) => {\r\n if (selector && window.CSS && window.CSS.escape) {\r\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\r\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\r\n }\r\n\r\n return selector;\r\n};\r\n\r\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\r\nconst toType = (object) => {\r\n if (object === null || object === undefined) {\r\n return `${object}`;\r\n }\r\n\r\n return Object.prototype.toString\r\n .call(object)\r\n .match(/\\s([a-z]+)/i)[1]\r\n .toLowerCase();\r\n};\r\n\r\n/**\r\n * Public Util API\r\n */\r\n\r\nconst getUID = (prefix) => {\r\n do {\r\n prefix += Math.floor(Math.random() * MAX_UID);\r\n } while (document.getElementById(prefix));\r\n\r\n return prefix;\r\n};\r\n\r\nconst getTransitionDurationFromElement = (element) => {\r\n if (!element) {\r\n return 0;\r\n }\r\n\r\n // Get transition-duration of the element\r\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element);\r\n\r\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\r\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\r\n\r\n // Return 0 if element or transition duration is not found\r\n if (!floatTransitionDuration && !floatTransitionDelay) {\r\n return 0;\r\n }\r\n\r\n // If multiple durations are defined, take the first\r\n transitionDuration = transitionDuration.split(',')[0];\r\n transitionDelay = transitionDelay.split(',')[0];\r\n\r\n return (\r\n (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) *\r\n MILLISECONDS_MULTIPLIER\r\n );\r\n};\r\n\r\nconst triggerTransitionEnd = (element) => {\r\n element.dispatchEvent(new Event(TRANSITION_END));\r\n};\r\n\r\nconst isElement = (object) => {\r\n if (!object || typeof object !== 'object') {\r\n return false;\r\n }\r\n\r\n if (typeof object.jquery !== 'undefined') {\r\n object = object[0];\r\n }\r\n\r\n return typeof object.nodeType !== 'undefined';\r\n};\r\n\r\nconst getElement = (object) => {\r\n // it's a jQuery object or a node element\r\n if (isElement(object)) {\r\n return object.jquery ? object[0] : object;\r\n }\r\n\r\n if (typeof object === 'string' && object.length > 0) {\r\n return document.querySelector(parseSelector(object));\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst isVisible = (element) => {\r\n if (!isElement(element) || element.getClientRects().length === 0) {\r\n return false;\r\n }\r\n\r\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\r\n // Handle `details` element as its content may falsie appear visible when it is closed\r\n const closedDetails = element.closest('details:not([open])');\r\n\r\n if (!closedDetails) {\r\n return elementIsVisible;\r\n }\r\n\r\n if (closedDetails !== element) {\r\n const summary = element.closest('summary');\r\n if (summary && summary.parentNode !== closedDetails) {\r\n return false;\r\n }\r\n\r\n if (summary === null) {\r\n return false;\r\n }\r\n }\r\n\r\n return elementIsVisible;\r\n};\r\n\r\nconst isDisabled = (element) => {\r\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n return true;\r\n }\r\n\r\n if (element.classList.contains('disabled')) {\r\n return true;\r\n }\r\n\r\n if (typeof element.disabled !== 'undefined') {\r\n return element.disabled;\r\n }\r\n\r\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\r\n};\r\n\r\nconst findShadowRoot = (element) => {\r\n if (!document.documentElement.attachShadow) {\r\n return null;\r\n }\r\n\r\n // Can find the shadow root otherwise it'll return the document\r\n if (typeof element.getRootNode === 'function') {\r\n const root = element.getRootNode();\r\n return root instanceof ShadowRoot ? root : null;\r\n }\r\n\r\n if (element instanceof ShadowRoot) {\r\n return element;\r\n }\r\n\r\n // when we don't find a shadow root\r\n if (!element.parentNode) {\r\n return null;\r\n }\r\n\r\n return findShadowRoot(element.parentNode);\r\n};\r\n\r\nconst noop = () => {};\r\n\r\n/**\r\n * Trick to restart an element's animation\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = (element) => {\r\n element.offsetHeight; // eslint-disable-line no-unused-expressions\r\n};\r\n\r\nconst getjQuery = () => {\r\n if (window.jQuery && !document.body.hasAttribute('data-mdb-no-jquery')) {\r\n return window.jQuery;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst DOMContentLoadedCallbacks = [];\r\n\r\nconst onDOMContentLoaded = (callback) => {\r\n if (document.readyState === 'loading') {\r\n // add listener on the first call when the document is in loading state\r\n if (!DOMContentLoadedCallbacks.length) {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n for (const callback of DOMContentLoadedCallbacks) {\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n DOMContentLoadedCallbacks.push(callback);\r\n } else {\r\n callback();\r\n }\r\n};\r\n\r\nconst isRTL = () => document.documentElement.dir === 'rtl';\r\n\r\nconst defineJQueryPlugin = (plugin) => {\r\n onDOMContentLoaded(() => {\r\n const $ = getjQuery();\r\n /* istanbul ignore if */\r\n if ($) {\r\n const name = plugin.NAME;\r\n const JQUERY_NO_CONFLICT = $.fn[name];\r\n $.fn[name] = plugin.jQueryInterface;\r\n $.fn[name].Constructor = plugin;\r\n $.fn[name].noConflict = () => {\r\n $.fn[name] = JQUERY_NO_CONFLICT;\r\n return plugin.jQueryInterface;\r\n };\r\n }\r\n });\r\n};\r\n\r\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\r\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\r\n};\r\n\r\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\r\n if (!waitForTransition) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n const durationPadding = 5;\r\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n let called = false;\r\n\r\n const handler = ({ target }) => {\r\n if (target !== transitionElement) {\r\n return;\r\n }\r\n\r\n called = true;\r\n transitionElement.removeEventListener(TRANSITION_END, handler);\r\n execute(callback);\r\n };\r\n\r\n transitionElement.addEventListener(TRANSITION_END, handler);\r\n setTimeout(() => {\r\n if (!called) {\r\n triggerTransitionEnd(transitionElement);\r\n }\r\n }, emulatedDuration);\r\n};\r\n\r\n/**\r\n * Return the previous/next element of a list.\r\n *\r\n * @param {array} list The list of elements\r\n * @param activeElement The active element\r\n * @param shouldGetNext Choose to get next or previous element\r\n * @param isCycleAllowed\r\n * @return {Element|elem} The proper element\r\n */\r\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\r\n const listLength = list.length;\r\n let index = list.indexOf(activeElement);\r\n\r\n // if the element does not exist in the list return an element\r\n // depending on the direction and if cycle is allowed\r\n if (index === -1) {\r\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\r\n }\r\n\r\n index += shouldGetNext ? 1 : -1;\r\n\r\n if (isCycleAllowed) {\r\n index = (index + listLength) % listLength;\r\n }\r\n\r\n return list[Math.max(0, Math.min(index, listLength - 1))];\r\n};\r\n\r\nexport {\r\n defineJQueryPlugin,\r\n execute,\r\n executeAfterTransition,\r\n findShadowRoot,\r\n getElement,\r\n getjQuery,\r\n getNextActiveElement,\r\n getTransitionDurationFromElement,\r\n getUID,\r\n isDisabled,\r\n isElement,\r\n isRTL,\r\n isVisible,\r\n noop,\r\n onDOMContentLoaded,\r\n parseSelector,\r\n reflow,\r\n triggerTransitionEnd,\r\n toType,\r\n};\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap dom/event-handler.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { getjQuery } from '../util/index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\r\nconst stripNameRegex = /\\..*/;\r\nconst stripUidRegex = /::\\d+$/;\r\nconst eventRegistry = {}; // Events storage\r\nlet uidEvent = 1;\r\nconst customEvents = {\r\n mouseenter: 'mouseover',\r\n mouseleave: 'mouseout',\r\n};\r\n\r\nconst nativeEvents = new Set([\r\n 'click',\r\n 'dblclick',\r\n 'mouseup',\r\n 'mousedown',\r\n 'contextmenu',\r\n 'mousewheel',\r\n 'DOMMouseScroll',\r\n 'mouseover',\r\n 'mouseout',\r\n 'mousemove',\r\n 'selectstart',\r\n 'selectend',\r\n 'keydown',\r\n 'keypress',\r\n 'keyup',\r\n 'orientationchange',\r\n 'touchstart',\r\n 'touchmove',\r\n 'touchend',\r\n 'touchcancel',\r\n 'pointerdown',\r\n 'pointermove',\r\n 'pointerup',\r\n 'pointerleave',\r\n 'pointercancel',\r\n 'gesturestart',\r\n 'gesturechange',\r\n 'gestureend',\r\n 'focus',\r\n 'blur',\r\n 'change',\r\n 'reset',\r\n 'select',\r\n 'submit',\r\n 'focusin',\r\n 'focusout',\r\n 'load',\r\n 'unload',\r\n 'beforeunload',\r\n 'resize',\r\n 'move',\r\n 'DOMContentLoaded',\r\n 'readystatechange',\r\n 'error',\r\n 'abort',\r\n 'scroll',\r\n]);\r\n\r\n/**\r\n * Private methods\r\n */\r\n\r\nfunction makeEventUid(element, uid) {\r\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++;\r\n}\r\n\r\nfunction getElementEvents(element) {\r\n const uid = makeEventUid(element);\r\n\r\n element.uidEvent = uid;\r\n eventRegistry[uid] = eventRegistry[uid] || {};\r\n\r\n return eventRegistry[uid];\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n return function handler(event) {\r\n hydrateObj(event, { delegateTarget: element });\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, fn);\r\n }\r\n\r\n return fn.apply(element, [event]);\r\n };\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n return function handler(event) {\r\n const domElements = element.querySelectorAll(selector);\r\n\r\n for (let { target } = event; target && target !== this; target = target.parentNode) {\r\n for (const domElement of domElements) {\r\n if (domElement !== target) {\r\n continue;\r\n }\r\n\r\n hydrateObj(event, { delegateTarget: target });\r\n\r\n if (handler.oneOff) {\r\n EventHandler.off(element, event.type, selector, fn);\r\n }\r\n\r\n return fn.apply(target, [event]);\r\n }\r\n }\r\n };\r\n}\r\n\r\nfunction findHandler(events, callable, delegationSelector = null) {\r\n return Object.values(events).find(\r\n (event) => event.callable === callable && event.delegationSelector === delegationSelector\r\n );\r\n}\r\n\r\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\r\n const isDelegated = typeof handler === 'string';\r\n // TODO: tooltip passes `false` instead of selector, so we need to check\r\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\r\n let typeEvent = getTypeEvent(originalTypeEvent);\r\n\r\n if (!nativeEvents.has(typeEvent)) {\r\n typeEvent = originalTypeEvent;\r\n }\r\n\r\n return [isDelegated, callable, typeEvent];\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n let [isDelegated, callable, typeEvent] = normalizeParameters(\r\n originalTypeEvent,\r\n handler,\r\n delegationFunction\r\n );\r\n\r\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n if (originalTypeEvent in customEvents) {\r\n const wrapFunction = (fn) => {\r\n return function (event) {\r\n if (\r\n !event.relatedTarget ||\r\n (event.relatedTarget !== event.delegateTarget &&\r\n !event.delegateTarget.contains(event.relatedTarget))\r\n ) {\r\n return fn.call(this, event);\r\n }\r\n };\r\n };\r\n\r\n callable = wrapFunction(callable);\r\n }\r\n\r\n const events = getElementEvents(element);\r\n const handlers = events[typeEvent] || (events[typeEvent] = {});\r\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\r\n\r\n if (previousFunction) {\r\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\r\n\r\n return;\r\n }\r\n\r\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\r\n const fn = isDelegated\r\n ? bootstrapDelegationHandler(element, handler, callable)\r\n : bootstrapHandler(element, callable);\r\n\r\n fn.delegationSelector = isDelegated ? handler : null;\r\n fn.callable = callable;\r\n fn.oneOff = oneOff;\r\n fn.uidEvent = uid;\r\n handlers[uid] = fn;\r\n\r\n element.addEventListener(typeEvent, fn, isDelegated);\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\r\n\r\n if (!fn) {\r\n return;\r\n }\r\n\r\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\r\n delete events[typeEvent][fn.uidEvent];\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n const storeElementEvent = events[typeEvent] || {};\r\n\r\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\r\n if (handlerKey.includes(namespace)) {\r\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\r\n }\r\n }\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n event = event.replace(stripNameRegex, '');\r\n return customEvents[event] || event;\r\n}\r\n\r\nconst EventHandler = {\r\n on(element, event, handler, delegationFunction) {\r\n addHandler(element, event, handler, delegationFunction, false);\r\n },\r\n\r\n one(element, event, handler, delegationFunction) {\r\n addHandler(element, event, handler, delegationFunction, true);\r\n },\r\n\r\n off(element, originalTypeEvent, handler, delegationFunction) {\r\n if (typeof originalTypeEvent !== 'string' || !element) {\r\n return;\r\n }\r\n\r\n const [isDelegated, callable, typeEvent] = normalizeParameters(\r\n originalTypeEvent,\r\n handler,\r\n delegationFunction\r\n );\r\n const inNamespace = typeEvent !== originalTypeEvent;\r\n const events = getElementEvents(element);\r\n const storeElementEvent = events[typeEvent] || {};\r\n const isNamespace = originalTypeEvent.startsWith('.');\r\n\r\n if (typeof callable !== 'undefined') {\r\n // Simplest case: handler is passed, remove that listener ONLY.\r\n if (!Object.keys(storeElementEvent).length) {\r\n return;\r\n }\r\n\r\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\r\n return;\r\n }\r\n\r\n if (isNamespace) {\r\n for (const elementEvent of Object.keys(events)) {\r\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\r\n }\r\n }\r\n\r\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\r\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\r\n\r\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\r\n }\r\n }\r\n },\r\n\r\n trigger(element, event, args) {\r\n if (typeof event !== 'string' || !element) {\r\n return null;\r\n }\r\n\r\n const $ = getjQuery();\r\n const typeEvent = getTypeEvent(event);\r\n const inNamespace = event !== typeEvent;\r\n\r\n let jQueryEvent = null;\r\n let bubbles = true;\r\n let nativeDispatch = true;\r\n let defaultPrevented = false;\r\n\r\n if (inNamespace && $) {\r\n jQueryEvent = $.Event(event, args);\r\n\r\n $(element).trigger(jQueryEvent);\r\n bubbles = !jQueryEvent.isPropagationStopped();\r\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\r\n defaultPrevented = jQueryEvent.isDefaultPrevented();\r\n }\r\n\r\n const evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args);\r\n\r\n if (defaultPrevented) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (nativeDispatch) {\r\n element.dispatchEvent(evt);\r\n }\r\n\r\n if (evt.defaultPrevented && jQueryEvent) {\r\n jQueryEvent.preventDefault();\r\n }\r\n\r\n return evt;\r\n },\r\n};\r\n\r\nfunction hydrateObj(obj, meta = {}) {\r\n for (const [key, value] of Object.entries(meta)) {\r\n try {\r\n obj[key] = value;\r\n } catch {\r\n Object.defineProperty(obj, key, {\r\n configurable: true,\r\n get() {\r\n return value;\r\n },\r\n });\r\n }\r\n }\r\n\r\n return obj;\r\n}\r\n\r\nexport default EventHandler;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap dom/manipulator.js\r\n * Licensed under MIT (https://github.com/twmdb/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nfunction normalizeData(value) {\r\n if (value === 'true') {\r\n return true;\r\n }\r\n\r\n if (value === 'false') {\r\n return false;\r\n }\r\n\r\n if (value === Number(value).toString()) {\r\n return Number(value);\r\n }\r\n\r\n if (value === '' || value === 'null') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n\r\n try {\r\n return JSON.parse(decodeURIComponent(value));\r\n } catch {\r\n return value;\r\n }\r\n}\r\n\r\nfunction normalizeDataKey(key) {\r\n return key.replace(/[A-Z]/g, (chr) => `-${chr.toLowerCase()}`);\r\n}\r\n\r\nconst Manipulator = {\r\n setDataAttribute(element, key, value) {\r\n element.setAttribute(`data-mdb-${normalizeDataKey(key)}`, value);\r\n },\r\n\r\n removeDataAttribute(element, key) {\r\n element.removeAttribute(`data-mdb-${normalizeDataKey(key)}`);\r\n },\r\n\r\n getDataAttributes(element) {\r\n if (!element) {\r\n return {};\r\n }\r\n\r\n const attributes = {};\r\n const mdbKeys = Object.keys(element.dataset).filter(\r\n (key) => key.startsWith('mdb') && !key.startsWith('mdbConfig')\r\n );\r\n\r\n for (const key of mdbKeys) {\r\n let pureKey = key.replace(/^mdb/, '');\r\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\r\n attributes[pureKey] = normalizeData(element.dataset[key]);\r\n }\r\n\r\n return attributes;\r\n },\r\n\r\n getDataAttribute(element, key) {\r\n return normalizeData(element.getAttribute(`data-mdb-${normalizeDataKey(key)}`));\r\n },\r\n};\r\n\r\nexport default Manipulator;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/config.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Manipulator from '../dom/manipulator.js';\r\nimport { isElement, toType } from './index.js';\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Config {\r\n // Getters\r\n static get Default() {\r\n return {};\r\n }\r\n\r\n static get DefaultType() {\r\n return {};\r\n }\r\n\r\n static get NAME() {\r\n throw new Error('You have to implement the static method \"NAME\", for each component!');\r\n }\r\n\r\n _getConfig(config) {\r\n config = this._mergeConfigObj(config);\r\n config = this._configAfterMerge(config);\r\n this._typeCheckConfig(config);\r\n return config;\r\n }\r\n\r\n _configAfterMerge(config) {\r\n return config;\r\n }\r\n\r\n _mergeConfigObj(config, element) {\r\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\r\n\r\n return {\r\n ...this.constructor.Default,\r\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\r\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\r\n ...(typeof config === 'object' ? config : {}),\r\n };\r\n }\r\n\r\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\r\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\r\n const value = config[property];\r\n const valueType = isElement(value) ? 'element' : toType(value);\r\n\r\n if (!new RegExp(expectedTypes).test(valueType)) {\r\n throw new TypeError(\r\n `${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default Config;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap base-component.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Data from './dom/data.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport Config from './util/config.js';\r\nimport { executeAfterTransition, getElement } from './util/index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst VERSION = '5.3.3';\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass BaseComponent extends Config {\r\n constructor(element, config) {\r\n super();\r\n\r\n element = getElement(element);\r\n if (!element) {\r\n return;\r\n }\r\n\r\n this._element = element;\r\n this._config = this._getConfig(config);\r\n\r\n Data.set(this._element, this.constructor.DATA_KEY, this);\r\n }\r\n\r\n // Public\r\n dispose() {\r\n Data.remove(this._element, this.constructor.DATA_KEY);\r\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\r\n\r\n for (const propertyName of Object.getOwnPropertyNames(this)) {\r\n this[propertyName] = null;\r\n }\r\n }\r\n\r\n _queueCallback(callback, element, isAnimated = true) {\r\n executeAfterTransition(callback, element, isAnimated);\r\n }\r\n\r\n _getConfig(config) {\r\n config = this._mergeConfigObj(config, this._element);\r\n config = this._configAfterMerge(config);\r\n this._typeCheckConfig(config);\r\n return config;\r\n }\r\n\r\n // Static\r\n static getInstance(element) {\r\n return Data.get(getElement(element), this.DATA_KEY);\r\n }\r\n\r\n static getOrCreateInstance(element, config = {}) {\r\n return (\r\n this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)\r\n );\r\n }\r\n\r\n static get VERSION() {\r\n return VERSION;\r\n }\r\n\r\n static get DATA_KEY() {\r\n return `bs.${this.NAME}`;\r\n }\r\n\r\n static get EVENT_KEY() {\r\n return `.${this.DATA_KEY}`;\r\n }\r\n\r\n static eventName(name) {\r\n return `${name}${this.EVENT_KEY}`;\r\n }\r\n}\r\n\r\nexport default BaseComponent;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap button.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport { defineJQueryPlugin } from './util/index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'button';\r\nconst DATA_KEY = 'bs.button';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst SELECTOR_DATA_TOGGLE = '[data-mdb-toggle=\"button\"]';\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Button extends BaseComponent {\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n toggle() {\r\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\r\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Button.getOrCreateInstance(this);\r\n\r\n if (config === 'toggle') {\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\n// EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {\r\n// event.preventDefault()\r\n\r\n// const button = event.target.closest(SELECTOR_DATA_TOGGLE)\r\n// const data = Button.getOrCreateInstance(button)\r\n\r\n// data.toggle()\r\n// })\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Button)\r\n\r\nexport default Button;\r\n","import SelectorEngine from '../mdb/dom/selector-engine';\r\nimport { defineJQueryPlugin } from '../mdb/util/index';\r\n\r\nconst mapComponentsData = (() => {\r\n const componentsData = [];\r\n return {\r\n set(componentName) {\r\n componentsData.push(componentName);\r\n },\r\n get(componentName) {\r\n return componentsData.includes(componentName);\r\n },\r\n };\r\n})();\r\n\r\nexport const InitializedComponents = {\r\n set(componentName) {\r\n mapComponentsData.set(componentName);\r\n },\r\n get(componentName) {\r\n return mapComponentsData.get(componentName);\r\n },\r\n};\r\n\r\nconst isInitialized = (componentName) => {\r\n return InitializedComponents.get(componentName);\r\n};\r\n\r\nexport const bindCallbackEventsIfNeeded = (component) => {\r\n if (!isInitialized(component.NAME)) {\r\n const manualInit = true;\r\n initComponent(component, manualInit);\r\n }\r\n};\r\n\r\nconst initComponent = (component, manualInit = false) => {\r\n if (!component || InitializedComponents.get(component.NAME)) {\r\n return;\r\n }\r\n\r\n if (!manualInit) {\r\n InitializedComponents.set(component.NAME);\r\n }\r\n\r\n const thisComponent = _defaultInitSelectors[component.NAME] || null;\r\n const isToggler = thisComponent?.isToggler || false;\r\n\r\n defineJQueryPlugin(component);\r\n if (thisComponent?.advanced) {\r\n thisComponent.advanced(component, thisComponent?.selector);\r\n return;\r\n }\r\n\r\n if (isToggler) {\r\n thisComponent.callback(component, thisComponent?.selector);\r\n\r\n return;\r\n }\r\n\r\n if (manualInit) {\r\n return;\r\n }\r\n\r\n SelectorEngine.find(thisComponent?.selector).forEach((element) => {\r\n let instance = component.getInstance(element);\r\n if (!instance) {\r\n instance = new component(element); // eslint-disable-line\r\n if (thisComponent?.onInit) {\r\n instance[thisComponent.onInit]();\r\n }\r\n }\r\n });\r\n};\r\n\r\nlet _defaultInitSelectors;\r\nexport class InitMDB {\r\n constructor(defaultInitSelectors) {\r\n _defaultInitSelectors = defaultInitSelectors;\r\n }\r\n\r\n init = (components) => {\r\n components.forEach((component) => initComponent(component));\r\n };\r\n\r\n initMDB = (components, checkOtherImports = false) => {\r\n const componentList = Object.keys(_defaultInitSelectors).map((element) => {\r\n const requireAutoInit = Boolean(\r\n document.querySelector(_defaultInitSelectors[element].selector)\r\n );\r\n\r\n if (requireAutoInit) {\r\n const component = components[_defaultInitSelectors[element].name];\r\n if (!component && !InitializedComponents.get(element) && checkOtherImports) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `Please import ${_defaultInitSelectors[element].name} from \"MDB\" package and add it to a object parameter inside \"initMDB\" function`\r\n );\r\n }\r\n return component;\r\n }\r\n\r\n return null;\r\n });\r\n\r\n this.init(componentList);\r\n };\r\n}\r\n","import Data from '../mdb/dom/data';\r\nimport EventHandler from '../mdb/dom/event-handler';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport SelectorEngine from '../mdb/dom/selector-engine';\r\n\r\nimport BSButton from '../bootstrap/mdb-prefix/button';\r\nimport { bindCallbackEventsIfNeeded } from '../autoinit/init';\r\n\r\nconst NAME = 'button';\r\nconst DATA_KEY = `mdb.${NAME}`;\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\n\r\nconst EVENT_CLICK = `click${EVENT_KEY}`;\r\nconst EVENT_TRANSITIONEND = 'transitionend';\r\nconst EVENT_MOUSEENTER = 'mouseenter';\r\nconst EVENT_MOUSELEAVE = 'mouseleave';\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_SHOWN = 'shown';\r\nconst CLASS_NAME_FIXED_ACTION_BTN = 'fixed-action-btn';\r\n\r\nconst SELECTOR_ACTION_BUTTON = '.fixed-action-btn:not(.smooth-scroll) > .btn-floating';\r\nconst SELECTOR_LIST_ELEMENT = 'ul .btn';\r\nconst SELECTOR_LIST = 'ul';\r\n\r\nclass Button extends BSButton {\r\n constructor(element) {\r\n super(element);\r\n this._fn = {};\r\n\r\n if (this._element) {\r\n Data.setData(this._element, DATA_KEY, this);\r\n this._init();\r\n Manipulator.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true);\r\n bindCallbackEventsIfNeeded(this.constructor);\r\n }\r\n }\r\n\r\n // Static\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n static jQueryInterface(config, options) {\r\n return this.each(function () {\r\n let data = Data.getData(this, DATA_KEY);\r\n const _config = typeof config === 'object' && config;\r\n if (!data && /dispose/.test(config)) {\r\n return;\r\n }\r\n\r\n if (!data) {\r\n data = new Button(this, _config);\r\n }\r\n if (typeof config === 'string') {\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n data[config](options);\r\n }\r\n });\r\n }\r\n\r\n // Getters\r\n get _actionButton() {\r\n return SelectorEngine.findOne(SELECTOR_ACTION_BUTTON, this._element);\r\n }\r\n\r\n get _buttonListElements() {\r\n return SelectorEngine.find(SELECTOR_LIST_ELEMENT, this._element);\r\n }\r\n\r\n get _buttonList() {\r\n return SelectorEngine.findOne(SELECTOR_LIST, this._element);\r\n }\r\n\r\n get _isTouchDevice() {\r\n return 'ontouchstart' in document.documentElement;\r\n }\r\n\r\n // Public\r\n show() {\r\n if (Manipulator.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) {\r\n EventHandler.off(this._buttonList, EVENT_TRANSITIONEND);\r\n EventHandler.trigger(this._element, EVENT_SHOW);\r\n // EventHandler.on(this._buttonList, EVENT_TRANSITIONEND, this._bindListOpenTransitionEnd);\r\n this._bindListOpenTransitionEnd();\r\n Manipulator.addStyle(this._element, { height: `${this._fullContainerHeight}px` });\r\n this._toggleVisibility(true);\r\n }\r\n }\r\n\r\n hide() {\r\n if (Manipulator.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) {\r\n EventHandler.off(this._buttonList, EVENT_TRANSITIONEND);\r\n EventHandler.trigger(this._element, EVENT_HIDE);\r\n // EventHandler.on(this._buttonList, EVENT_TRANSITIONEND, this._bindListHideTransitionEnd);\r\n this._bindListHideTransitionEnd();\r\n this._toggleVisibility(false);\r\n }\r\n }\r\n\r\n dispose() {\r\n if (Manipulator.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) {\r\n EventHandler.off(this._actionButton, EVENT_CLICK);\r\n this._actionButton.removeEventListener(EVENT_MOUSEENTER, this._fn.mouseenter);\r\n this._element.removeEventListener(EVENT_MOUSELEAVE, this._fn.mouseleave);\r\n }\r\n Manipulator.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n _init() {\r\n if (Manipulator.hasClass(this._element, CLASS_NAME_FIXED_ACTION_BTN)) {\r\n this._saveInitialHeights();\r\n this._setInitialStyles();\r\n this._bindInitialEvents();\r\n }\r\n }\r\n\r\n _bindMouseEnter() {\r\n this._actionButton.addEventListener(\r\n EVENT_MOUSEENTER,\r\n // prettier-ignore\r\n this._fn.mouseenter = () => {\r\n if (!this._isTouchDevice) {\r\n this.show();\r\n }\r\n }\r\n // prettier-ignore\r\n );\r\n }\r\n\r\n _bindMouseLeave() {\r\n this._element.addEventListener(\r\n EVENT_MOUSELEAVE,\r\n // prettier-ignore\r\n this._fn.mouseleave = () => {\r\n this.hide();\r\n }\r\n // prettier-ignore\r\n );\r\n }\r\n\r\n _bindClick() {\r\n EventHandler.on(this._actionButton, EVENT_CLICK, () => {\r\n if (Manipulator.hasClass(this._element, CLASS_NAME_ACTIVE)) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n });\r\n }\r\n\r\n _bindListHideTransitionEnd() {\r\n EventHandler.on(this._buttonList, EVENT_TRANSITIONEND, (event) => {\r\n if (event.propertyName === 'transform') {\r\n EventHandler.off(this._buttonList, EVENT_TRANSITIONEND);\r\n this._element.style.height = `${this._initialContainerHeight}px`;\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n }\r\n });\r\n }\r\n\r\n _bindListOpenTransitionEnd() {\r\n EventHandler.on(this._buttonList, EVENT_TRANSITIONEND, (event) => {\r\n if (event.propertyName === 'transform') {\r\n EventHandler.off(this._buttonList, EVENT_TRANSITIONEND);\r\n EventHandler.trigger(this._element, EVENT_SHOWN);\r\n }\r\n });\r\n }\r\n\r\n _toggleVisibility(isVisible) {\r\n const action = isVisible ? 'addClass' : 'removeClass';\r\n const listTranslate = isVisible ? 'translate(0)' : `translateY(${this._fullContainerHeight}px)`;\r\n Manipulator.addStyle(this._buttonList, { transform: listTranslate });\r\n\r\n if (this._buttonListElements) {\r\n this._buttonListElements.forEach((el) => Manipulator[action](el, CLASS_NAME_SHOWN));\r\n }\r\n Manipulator[action](this._element, CLASS_NAME_ACTIVE);\r\n }\r\n\r\n _getHeight(element) {\r\n const computed = window.getComputedStyle(element);\r\n const height = parseFloat(computed.getPropertyValue('height'));\r\n return height;\r\n }\r\n\r\n _saveInitialHeights() {\r\n this._initialContainerHeight = this._getHeight(this._element);\r\n this._initialListHeight = this._getHeight(this._buttonList);\r\n this._fullContainerHeight = this._initialContainerHeight + this._initialListHeight;\r\n }\r\n\r\n _bindInitialEvents() {\r\n this._bindClick();\r\n this._bindMouseEnter();\r\n this._bindMouseLeave();\r\n }\r\n\r\n _setInitialStyles() {\r\n this._buttonList.style.marginBottom = `${this._initialContainerHeight}px`;\r\n this._buttonList.style.transform = `translateY(${this._fullContainerHeight}px)`;\r\n\r\n this._element.style.height = `${this._initialContainerHeight}px`;\r\n }\r\n}\r\n\r\nexport default Button;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap dom/selector-engine.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport { isDisabled, isVisible, parseSelector } from '../util/index.js';\r\n\r\nconst getSelector = (element) => {\r\n let selector = element.getAttribute('data-mdb-target');\r\n\r\n if (!selector || selector === '#') {\r\n let hrefAttribute = element.getAttribute('href');\r\n\r\n // The only valid content that could double as a selector are IDs or classes,\r\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\r\n // `document.querySelector` will rightfully complain it is invalid.\r\n // See https://github.com/twbs/bootstrap/issues/32273\r\n if (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\r\n return null;\r\n }\r\n\r\n // Just in case some CMS puts out a full URL with the anchor appended\r\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\r\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\r\n }\r\n\r\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\r\n }\r\n\r\n return selector\r\n ? selector\r\n .split(',')\r\n .map((sel) => parseSelector(sel))\r\n .join(',')\r\n : null;\r\n};\r\n\r\nconst SelectorEngine = {\r\n find(selector, element = document.documentElement) {\r\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\r\n },\r\n\r\n findOne(selector, element = document.documentElement) {\r\n return Element.prototype.querySelector.call(element, selector);\r\n },\r\n\r\n children(element, selector) {\r\n return [].concat(...element.children).filter((child) => child.matches(selector));\r\n },\r\n\r\n parents(element, selector) {\r\n const parents = [];\r\n let ancestor = element.parentNode.closest(selector);\r\n\r\n while (ancestor) {\r\n parents.push(ancestor);\r\n ancestor = ancestor.parentNode.closest(selector);\r\n }\r\n\r\n return parents;\r\n },\r\n\r\n prev(element, selector) {\r\n let previous = element.previousElementSibling;\r\n\r\n while (previous) {\r\n if (previous.matches(selector)) {\r\n return [previous];\r\n }\r\n\r\n previous = previous.previousElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n // TODO: this is now unused; remove later along with prev()\r\n next(element, selector) {\r\n let next = element.nextElementSibling;\r\n\r\n while (next) {\r\n if (next.matches(selector)) {\r\n return [next];\r\n }\r\n\r\n next = next.nextElementSibling;\r\n }\r\n\r\n return [];\r\n },\r\n\r\n focusableChildren(element) {\r\n const focusables = [\r\n 'a',\r\n 'button',\r\n 'input',\r\n 'textarea',\r\n 'select',\r\n 'details',\r\n '[tabindex]',\r\n '[contenteditable=\"true\"]',\r\n ]\r\n .map((selector) => `${selector}:not([tabindex^=\"-\"])`)\r\n .join(',');\r\n\r\n return this.find(focusables, element).filter((el) => !isDisabled(el) && isVisible(el));\r\n },\r\n\r\n getSelectorFromElement(element) {\r\n const selector = getSelector(element);\r\n\r\n if (selector) {\r\n return SelectorEngine.findOne(selector) ? selector : null;\r\n }\r\n\r\n return null;\r\n },\r\n\r\n getElementFromSelector(element) {\r\n const selector = getSelector(element);\r\n\r\n return selector ? SelectorEngine.findOne(selector) : null;\r\n },\r\n\r\n getMultipleElementsFromSelector(element) {\r\n const selector = getSelector(element);\r\n\r\n return selector ? SelectorEngine.find(selector) : [];\r\n },\r\n};\r\n\r\nexport default SelectorEngine;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/backdrop.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler.js';\r\nimport Config from './config.js';\r\nimport { execute, executeAfterTransition, getElement, reflow } from './index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;\r\n\r\nconst Default = {\r\n className: 'modal-backdrop',\r\n clickCallback: null,\r\n isAnimated: false,\r\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\r\n rootElement: 'body', // give the choice to place backdrop under different elements\r\n};\r\n\r\nconst DefaultType = {\r\n className: 'string',\r\n clickCallback: '(function|null)',\r\n isAnimated: 'boolean',\r\n isVisible: 'boolean',\r\n rootElement: '(element|string)',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Backdrop extends Config {\r\n constructor(config) {\r\n super();\r\n this._config = this._getConfig(config);\r\n this._isAppended = false;\r\n this._element = null;\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n show(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n this._append();\r\n\r\n const element = this._getElement();\r\n if (this._config.isAnimated) {\r\n reflow(element);\r\n }\r\n\r\n element.classList.add(CLASS_NAME_SHOW);\r\n\r\n this._emulateAnimation(() => {\r\n execute(callback);\r\n });\r\n }\r\n\r\n hide(callback) {\r\n if (!this._config.isVisible) {\r\n execute(callback);\r\n return;\r\n }\r\n\r\n this._getElement().classList.remove(CLASS_NAME_SHOW);\r\n\r\n this._emulateAnimation(() => {\r\n this.dispose();\r\n execute(callback);\r\n });\r\n }\r\n\r\n dispose() {\r\n if (!this._isAppended) {\r\n return;\r\n }\r\n\r\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\r\n\r\n this._element.remove();\r\n this._isAppended = false;\r\n }\r\n\r\n // Private\r\n _getElement() {\r\n if (!this._element) {\r\n const backdrop = document.createElement('div');\r\n backdrop.className = this._config.className;\r\n if (this._config.isAnimated) {\r\n backdrop.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n this._element = backdrop;\r\n }\r\n\r\n return this._element;\r\n }\r\n\r\n _configAfterMerge(config) {\r\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\r\n config.rootElement = getElement(config.rootElement);\r\n return config;\r\n }\r\n\r\n _append() {\r\n if (this._isAppended) {\r\n return;\r\n }\r\n\r\n const element = this._getElement();\r\n this._config.rootElement.append(element);\r\n\r\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\r\n execute(this._config.clickCallback);\r\n });\r\n\r\n this._isAppended = true;\r\n }\r\n\r\n _emulateAnimation(callback) {\r\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\r\n }\r\n}\r\n\r\nexport default Backdrop;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/component-functions.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler.js';\r\nimport SelectorEngine from '../dom/selector-engine.js';\r\nimport { isDisabled } from './index.js';\r\n\r\nconst enableDismissTrigger = (component, method = 'hide') => {\r\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\r\n const name = component.NAME;\r\n\r\n EventHandler.on(document, clickEvent, `[data-mdb-dismiss=\"${name}\"]`, function (event) {\r\n if (['A', 'AREA'].includes(this.tagName)) {\r\n event.preventDefault();\r\n }\r\n\r\n if (isDisabled(this)) {\r\n return;\r\n }\r\n\r\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\r\n const instance = component.getOrCreateInstance(target);\r\n\r\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\r\n instance[method]();\r\n });\r\n};\r\n\r\nexport { enableDismissTrigger };\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/focustrap.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler.js';\r\nimport SelectorEngine from '../dom/selector-engine.js';\r\nimport Config from './config.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'focustrap';\r\nconst DATA_KEY = 'bs.focustrap';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY}`;\r\n\r\nconst TAB_KEY = 'Tab';\r\nconst TAB_NAV_FORWARD = 'forward';\r\nconst TAB_NAV_BACKWARD = 'backward';\r\n\r\nconst Default = {\r\n autofocus: true,\r\n trapElement: null, // The element to trap focus inside of\r\n};\r\n\r\nconst DefaultType = {\r\n autofocus: 'boolean',\r\n trapElement: 'element',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass FocusTrap extends Config {\r\n constructor(config) {\r\n super();\r\n this._config = this._getConfig(config);\r\n this._isActive = false;\r\n this._lastTabNavDirection = null;\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n activate() {\r\n if (this._isActive) {\r\n return;\r\n }\r\n\r\n if (this._config.autofocus) {\r\n this._config.trapElement.focus();\r\n }\r\n\r\n EventHandler.off(document, EVENT_KEY); // guard against infinite focus loop\r\n EventHandler.on(document, EVENT_FOCUSIN, (event) => this._handleFocusin(event));\r\n EventHandler.on(document, EVENT_KEYDOWN_TAB, (event) => this._handleKeydown(event));\r\n\r\n this._isActive = true;\r\n }\r\n\r\n deactivate() {\r\n if (!this._isActive) {\r\n return;\r\n }\r\n\r\n this._isActive = false;\r\n EventHandler.off(document, EVENT_KEY);\r\n }\r\n\r\n // Private\r\n _handleFocusin(event) {\r\n const { trapElement } = this._config;\r\n\r\n if (\r\n event.target === document ||\r\n event.target === trapElement ||\r\n trapElement.contains(event.target)\r\n ) {\r\n return;\r\n }\r\n\r\n const elements = SelectorEngine.focusableChildren(trapElement);\r\n\r\n if (elements.length === 0) {\r\n trapElement.focus();\r\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\r\n elements[elements.length - 1].focus();\r\n } else {\r\n elements[0].focus();\r\n }\r\n }\r\n\r\n _handleKeydown(event) {\r\n if (event.key !== TAB_KEY) {\r\n return;\r\n }\r\n\r\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\r\n }\r\n}\r\n\r\nexport default FocusTrap;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Manipulator from '../dom/manipulator.js';\r\nimport SelectorEngine from '../dom/selector-engine.js';\r\nimport { isElement } from './index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\r\nconst PROPERTY_PADDING = 'padding-right';\r\nconst PROPERTY_MARGIN = 'margin-right';\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass ScrollBarHelper {\r\n constructor() {\r\n this._element = document.body;\r\n }\r\n\r\n // Public\r\n getWidth() {\r\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n const documentWidth = document.documentElement.clientWidth;\r\n return Math.abs(window.innerWidth - documentWidth);\r\n }\r\n\r\n hide() {\r\n const width = this.getWidth();\r\n this._disableOverFlow();\r\n // give padding to element to balance the hidden scrollbar width\r\n this._setElementAttributes(\r\n this._element,\r\n PROPERTY_PADDING,\r\n (calculatedValue) => calculatedValue + width\r\n );\r\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n this._setElementAttributes(\r\n SELECTOR_FIXED_CONTENT,\r\n PROPERTY_PADDING,\r\n (calculatedValue) => calculatedValue + width\r\n );\r\n this._setElementAttributes(\r\n SELECTOR_STICKY_CONTENT,\r\n PROPERTY_MARGIN,\r\n (calculatedValue) => calculatedValue - width\r\n );\r\n }\r\n\r\n reset() {\r\n this._resetElementAttributes(this._element, 'overflow');\r\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\r\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\r\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\r\n }\r\n\r\n isOverflowing() {\r\n return this.getWidth() > 0;\r\n }\r\n\r\n // Private\r\n _disableOverFlow() {\r\n this._saveInitialAttribute(this._element, 'overflow');\r\n this._element.style.overflow = 'hidden';\r\n }\r\n\r\n _setElementAttributes(selector, styleProperty, callback) {\r\n const scrollbarWidth = this.getWidth();\r\n const manipulationCallBack = (element) => {\r\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n return;\r\n }\r\n\r\n this._saveInitialAttribute(element, styleProperty);\r\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\r\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n _saveInitialAttribute(element, styleProperty) {\r\n const actualValue = element.style.getPropertyValue(styleProperty);\r\n if (actualValue) {\r\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\r\n }\r\n }\r\n\r\n _resetElementAttributes(selector, styleProperty) {\r\n const manipulationCallBack = (element) => {\r\n const value = Manipulator.getDataAttribute(element, styleProperty);\r\n // We only want to remove the property if the value is `null`; the value can also be zero\r\n if (value === null) {\r\n element.style.removeProperty(styleProperty);\r\n return;\r\n }\r\n\r\n Manipulator.removeDataAttribute(element, styleProperty);\r\n element.style.setProperty(styleProperty, value);\r\n };\r\n\r\n this._applyManipulationCallback(selector, manipulationCallBack);\r\n }\r\n\r\n _applyManipulationCallback(selector, callBack) {\r\n if (isElement(selector)) {\r\n callBack(selector);\r\n return;\r\n }\r\n\r\n for (const sel of SelectorEngine.find(selector, this._element)) {\r\n callBack(sel);\r\n }\r\n }\r\n}\r\n\r\nexport default ScrollBarHelper;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap offcanvas.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport SelectorEngine from './dom/selector-engine.js';\r\nimport Backdrop from './util/backdrop.js';\r\nimport { enableDismissTrigger } from './util/component-functions.js';\r\nimport FocusTrap from './util/focustrap.js';\r\nimport { defineJQueryPlugin, isDisabled, isVisible } from './util/index.js';\r\nimport ScrollBarHelper from './util/scrollbar.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'offcanvas';\r\nconst DATA_KEY = 'bs.offcanvas';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_SHOWING = 'showing';\r\nconst CLASS_NAME_HIDING = 'hiding';\r\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\r\nconst OPEN_SELECTOR = '.offcanvas.show';\r\n\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_RESIZE = `resize${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-mdb-toggle=\"offcanvas\"]';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n keyboard: true,\r\n scroll: false,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: '(boolean|string)',\r\n keyboard: 'boolean',\r\n scroll: 'boolean',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Offcanvas extends BaseComponent {\r\n constructor(element, config) {\r\n super(element, config);\r\n\r\n this._isShown = false;\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._addEventListeners();\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, { relatedTarget });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n this._backdrop.show();\r\n\r\n if (!this._config.scroll) {\r\n new ScrollBarHelper().hide();\r\n }\r\n\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.classList.add(CLASS_NAME_SHOWING);\r\n\r\n const completeCallBack = () => {\r\n if (!this._config.scroll || this._config.backdrop) {\r\n this._focustrap.activate();\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n this._element.classList.remove(CLASS_NAME_SHOWING);\r\n EventHandler.trigger(this._element, EVENT_SHOWN, { relatedTarget });\r\n };\r\n\r\n this._queueCallback(completeCallBack, this._element, true);\r\n }\r\n\r\n hide() {\r\n if (!this._isShown) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._focustrap.deactivate();\r\n this._element.blur();\r\n this._isShown = false;\r\n this._element.classList.add(CLASS_NAME_HIDING);\r\n this._backdrop.hide();\r\n\r\n const completeCallback = () => {\r\n this._element.classList.remove(CLASS_NAME_SHOW, CLASS_NAME_HIDING);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n\r\n if (!this._config.scroll) {\r\n new ScrollBarHelper().reset();\r\n }\r\n\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n };\r\n\r\n this._queueCallback(completeCallback, this._element, true);\r\n }\r\n\r\n dispose() {\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n _initializeBackDrop() {\r\n const clickCallback = () => {\r\n if (this._config.backdrop === 'static') {\r\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n return;\r\n }\r\n\r\n this.hide();\r\n };\r\n\r\n // 'static' option will be translated to true, and booleans will keep their value\r\n const isVisible = Boolean(this._config.backdrop);\r\n\r\n return new Backdrop({\r\n className: CLASS_NAME_BACKDROP,\r\n isVisible,\r\n isAnimated: true,\r\n rootElement: this._element.parentNode,\r\n clickCallback: isVisible ? clickCallback : null,\r\n });\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element,\r\n });\r\n }\r\n\r\n _addEventListeners() {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (event.key !== ESCAPE_KEY) {\r\n return;\r\n }\r\n\r\n if (this._config.keyboard) {\r\n this.hide();\r\n return;\r\n }\r\n\r\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n });\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Offcanvas.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\n// EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n// const target = SelectorEngine.getElementFromSelector(this)\r\n\r\n// if (['A', 'AREA'].includes(this.tagName)) {\r\n// event.preventDefault()\r\n// }\r\n\r\n// if (isDisabled(this)) {\r\n// return\r\n// }\r\n\r\n// EventHandler.one(target, EVENT_HIDDEN, () => {\r\n// // focus on trigger when it is closed\r\n// if (isVisible(this)) {\r\n// this.focus()\r\n// }\r\n// })\r\n\r\n// // avoid conflict when clicking a toggler of an offcanvas, while another is open\r\n// const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR)\r\n// if (alreadyOpen && alreadyOpen !== target) {\r\n// Offcanvas.getInstance(alreadyOpen).hide()\r\n// }\r\n\r\n// const data = Offcanvas.getOrCreateInstance(target)\r\n// data.toggle(this)\r\n// })\r\n\r\n// EventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n// for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\r\n// Offcanvas.getOrCreateInstance(selector).show()\r\n// }\r\n// })\r\n\r\n// EventHandler.on(window, EVENT_RESIZE, () => {\r\n// for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\r\n// if (getComputedStyle(element).position !== 'fixed') {\r\n// Offcanvas.getOrCreateInstance(element).hide()\r\n// }\r\n// }\r\n// })\r\n\r\n// enableDismissTrigger(Offcanvas)\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Offcanvas)\r\n\r\nexport default Offcanvas;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap alert.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport { enableDismissTrigger } from './util/component-functions.js';\r\nimport { defineJQueryPlugin } from './util/index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'alert';\r\nconst DATA_KEY = 'bs.alert';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\n\r\nconst EVENT_CLOSE = `close${EVENT_KEY}`;\r\nconst EVENT_CLOSED = `closed${EVENT_KEY}`;\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Alert extends BaseComponent {\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n close() {\r\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\r\n\r\n if (closeEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE);\r\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\r\n }\r\n\r\n // Private\r\n _destroyElement() {\r\n this._element.remove();\r\n EventHandler.trigger(this._element, EVENT_CLOSED);\r\n this.dispose();\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Alert.getOrCreateInstance(this);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](this);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\n// enableDismissTrigger(Alert, 'close')\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Alert)\r\n\r\nexport default Alert;\r\n","import EventHandler from '../mdb/dom/event-handler';\r\nimport BSAlert from '../bootstrap/mdb-prefix/alert';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport { bindCallbackEventsIfNeeded } from '../autoinit/init';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'alert';\r\n\r\nconst EVENT_CLOSE_BS = 'close.bs.alert';\r\nconst EVENT_CLOSED_BS = 'closed.bs.alert';\r\n\r\nconst EXTENDED_EVENTS = [{ name: 'close' }, { name: 'closed' }];\r\n\r\nclass Alert extends BSAlert {\r\n constructor(element, data = {}) {\r\n super(element, data);\r\n\r\n this._init();\r\n Manipulator.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true);\r\n bindCallbackEventsIfNeeded(this.constructor);\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(this._element, EVENT_CLOSE_BS);\r\n EventHandler.off(this._element, EVENT_CLOSED_BS);\r\n Manipulator.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Private\r\n _init() {\r\n this._bindMdbEvents();\r\n }\r\n\r\n _bindMdbEvents() {\r\n EventHandler.extend(this._element, EXTENDED_EVENTS, NAME);\r\n }\r\n}\r\n\r\nexport default Alert;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/swipe.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport EventHandler from '../dom/event-handler.js';\r\nimport Config from './config.js';\r\nimport { execute } from './index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'swipe';\r\nconst EVENT_KEY = '.bs.swipe';\r\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;\r\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;\r\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`;\r\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;\r\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`;\r\nconst POINTER_TYPE_TOUCH = 'touch';\r\nconst POINTER_TYPE_PEN = 'pen';\r\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\r\nconst SWIPE_THRESHOLD = 40;\r\n\r\nconst Default = {\r\n endCallback: null,\r\n leftCallback: null,\r\n rightCallback: null,\r\n};\r\n\r\nconst DefaultType = {\r\n endCallback: '(function|null)',\r\n leftCallback: '(function|null)',\r\n rightCallback: '(function|null)',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Swipe extends Config {\r\n constructor(element, config) {\r\n super();\r\n this._element = element;\r\n\r\n if (!element || !Swipe.isSupported()) {\r\n return;\r\n }\r\n\r\n this._config = this._getConfig(config);\r\n this._deltaX = 0;\r\n this._supportPointerEvents = Boolean(window.PointerEvent);\r\n this._initEvents();\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n dispose() {\r\n EventHandler.off(this._element, EVENT_KEY);\r\n }\r\n\r\n // Private\r\n _start(event) {\r\n if (!this._supportPointerEvents) {\r\n this._deltaX = event.touches[0].clientX;\r\n\r\n return;\r\n }\r\n\r\n if (this._eventIsPointerPenTouch(event)) {\r\n this._deltaX = event.clientX;\r\n }\r\n }\r\n\r\n _end(event) {\r\n if (this._eventIsPointerPenTouch(event)) {\r\n this._deltaX = event.clientX - this._deltaX;\r\n }\r\n\r\n this._handleSwipe();\r\n execute(this._config.endCallback);\r\n }\r\n\r\n _move(event) {\r\n this._deltaX =\r\n event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\r\n }\r\n\r\n _handleSwipe() {\r\n const absDeltaX = Math.abs(this._deltaX);\r\n\r\n if (absDeltaX <= SWIPE_THRESHOLD) {\r\n return;\r\n }\r\n\r\n const direction = absDeltaX / this._deltaX;\r\n\r\n this._deltaX = 0;\r\n\r\n if (!direction) {\r\n return;\r\n }\r\n\r\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\r\n }\r\n\r\n _initEvents() {\r\n if (this._supportPointerEvents) {\r\n EventHandler.on(this._element, EVENT_POINTERDOWN, (event) => this._start(event));\r\n EventHandler.on(this._element, EVENT_POINTERUP, (event) => this._end(event));\r\n\r\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\r\n } else {\r\n EventHandler.on(this._element, EVENT_TOUCHSTART, (event) => this._start(event));\r\n EventHandler.on(this._element, EVENT_TOUCHMOVE, (event) => this._move(event));\r\n EventHandler.on(this._element, EVENT_TOUCHEND, (event) => this._end(event));\r\n }\r\n }\r\n\r\n _eventIsPointerPenTouch(event) {\r\n return (\r\n this._supportPointerEvents &&\r\n (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH)\r\n );\r\n }\r\n\r\n // Static\r\n static isSupported() {\r\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\r\n }\r\n}\r\n\r\nexport default Swipe;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap carousel.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport Manipulator from './dom/manipulator.js';\r\nimport SelectorEngine from './dom/selector-engine.js';\r\nimport {\r\n defineJQueryPlugin,\r\n getNextActiveElement,\r\n isRTL,\r\n isVisible,\r\n reflow,\r\n triggerTransitionEnd,\r\n} from './util/index.js';\r\nimport Swipe from './util/swipe.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'carousel';\r\nconst DATA_KEY = 'bs.carousel';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst ARROW_LEFT_KEY = 'ArrowLeft';\r\nconst ARROW_RIGHT_KEY = 'ArrowRight';\r\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\r\n\r\nconst ORDER_NEXT = 'next';\r\nconst ORDER_PREV = 'prev';\r\nconst DIRECTION_LEFT = 'left';\r\nconst DIRECTION_RIGHT = 'right';\r\n\r\nconst EVENT_SLIDE = `slide${EVENT_KEY}`;\r\nconst EVENT_SLID = `slid${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\r\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`;\r\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`;\r\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_CAROUSEL = 'carousel';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_SLIDE = 'slide';\r\nconst CLASS_NAME_END = 'carousel-item-end';\r\nconst CLASS_NAME_START = 'carousel-item-start';\r\nconst CLASS_NAME_NEXT = 'carousel-item-next';\r\nconst CLASS_NAME_PREV = 'carousel-item-prev';\r\n\r\nconst SELECTOR_ACTIVE = '.active';\r\nconst SELECTOR_ITEM = '.carousel-item';\r\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\r\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\r\nconst SELECTOR_INDICATORS = '.carousel-indicators';\r\nconst SELECTOR_DATA_SLIDE = '[data-mdb-slide], [data-mdb-slide-to]';\r\nconst SELECTOR_DATA_RIDE = '[data-mdb-ride=\"carousel\"]';\r\n\r\nconst KEY_TO_DIRECTION = {\r\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\r\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT,\r\n};\r\n\r\nconst Default = {\r\n interval: 5000,\r\n keyboard: true,\r\n pause: 'hover',\r\n ride: false,\r\n touch: true,\r\n wrap: true,\r\n};\r\n\r\nconst DefaultType = {\r\n interval: '(number|boolean)', // TODO:v6 remove boolean support\r\n keyboard: 'boolean',\r\n pause: '(string|boolean)',\r\n ride: '(boolean|string)',\r\n touch: 'boolean',\r\n wrap: 'boolean',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Carousel extends BaseComponent {\r\n constructor(element, config) {\r\n super(element, config);\r\n\r\n this._interval = null;\r\n this._activeElement = null;\r\n this._isSliding = false;\r\n this.touchTimeout = null;\r\n this._swipeHelper = null;\r\n\r\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\r\n this._addEventListeners();\r\n\r\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\r\n this.cycle();\r\n }\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n next() {\r\n this._slide(ORDER_NEXT);\r\n }\r\n\r\n nextWhenVisible() {\r\n // FIXME TODO use `document.visibilityState`\r\n // Don't call next when the page isn't visible\r\n // or the carousel or its parent isn't visible\r\n if (!document.hidden && isVisible(this._element)) {\r\n this.next();\r\n }\r\n }\r\n\r\n prev() {\r\n this._slide(ORDER_PREV);\r\n }\r\n\r\n pause() {\r\n if (this._isSliding) {\r\n triggerTransitionEnd(this._element);\r\n }\r\n\r\n this._clearInterval();\r\n }\r\n\r\n cycle() {\r\n this._clearInterval();\r\n this._updateInterval();\r\n\r\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\r\n }\r\n\r\n _maybeEnableCycle() {\r\n if (!this._config.ride) {\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\r\n return;\r\n }\r\n\r\n this.cycle();\r\n }\r\n\r\n to(index) {\r\n const items = this._getItems();\r\n if (index > items.length - 1 || index < 0) {\r\n return;\r\n }\r\n\r\n if (this._isSliding) {\r\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\r\n return;\r\n }\r\n\r\n const activeIndex = this._getItemIndex(this._getActive());\r\n if (activeIndex === index) {\r\n return;\r\n }\r\n\r\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\r\n\r\n this._slide(order, items[index]);\r\n }\r\n\r\n dispose() {\r\n if (this._swipeHelper) {\r\n this._swipeHelper.dispose();\r\n }\r\n\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n _configAfterMerge(config) {\r\n config.defaultInterval = config.interval;\r\n return config;\r\n }\r\n\r\n _addEventListeners() {\r\n if (this._config.keyboard) {\r\n EventHandler.on(this._element, EVENT_KEYDOWN, (event) => this._keydown(event));\r\n }\r\n\r\n if (this._config.pause === 'hover') {\r\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause());\r\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle());\r\n }\r\n\r\n if (this._config.touch && Swipe.isSupported()) {\r\n this._addTouchEventListeners();\r\n }\r\n }\r\n\r\n _addTouchEventListeners() {\r\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\r\n EventHandler.on(img, EVENT_DRAG_START, (event) => event.preventDefault());\r\n }\r\n\r\n const endCallBack = () => {\r\n if (this._config.pause !== 'hover') {\r\n return;\r\n }\r\n\r\n // If it's a touch-enabled device, mouseenter/leave are fired as\r\n // part of the mouse compatibility events on first tap - the carousel\r\n // would stop cycling until user tapped out of it;\r\n // here, we listen for touchend, explicitly pause the carousel\r\n // (as if it's the second time we tap on it, mouseenter compat event\r\n // is NOT fired) and after a timeout (to allow for mouse compatibility\r\n // events to fire) we explicitly restart cycling\r\n\r\n this.pause();\r\n if (this.touchTimeout) {\r\n clearTimeout(this.touchTimeout);\r\n }\r\n\r\n this.touchTimeout = setTimeout(\r\n () => this._maybeEnableCycle(),\r\n TOUCHEVENT_COMPAT_WAIT + this._config.interval\r\n );\r\n };\r\n\r\n const swipeConfig = {\r\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\r\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\r\n endCallback: endCallBack,\r\n };\r\n\r\n this._swipeHelper = new Swipe(this._element, swipeConfig);\r\n }\r\n\r\n _keydown(event) {\r\n if (/input|textarea/i.test(event.target.tagName)) {\r\n return;\r\n }\r\n\r\n const direction = KEY_TO_DIRECTION[event.key];\r\n if (direction) {\r\n event.preventDefault();\r\n this._slide(this._directionToOrder(direction));\r\n }\r\n }\r\n\r\n _getItemIndex(element) {\r\n return this._getItems().indexOf(element);\r\n }\r\n\r\n _setActiveIndicatorElement(index) {\r\n if (!this._indicatorsElement) {\r\n return;\r\n }\r\n\r\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\r\n\r\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE);\r\n activeIndicator.removeAttribute('aria-current');\r\n\r\n const newActiveIndicator = SelectorEngine.findOne(\r\n `[data-mdb-slide-to=\"${index}\"]`,\r\n this._indicatorsElement\r\n );\r\n\r\n if (newActiveIndicator) {\r\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE);\r\n newActiveIndicator.setAttribute('aria-current', 'true');\r\n }\r\n }\r\n\r\n _updateInterval() {\r\n const element = this._activeElement || this._getActive();\r\n\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const elementInterval = Number.parseInt(element.getAttribute('data-mdb-interval'), 10);\r\n\r\n this._config.interval = elementInterval || this._config.defaultInterval;\r\n }\r\n\r\n _slide(order, element = null) {\r\n if (this._isSliding) {\r\n return;\r\n }\r\n\r\n const activeElement = this._getActive();\r\n const isNext = order === ORDER_NEXT;\r\n const nextElement =\r\n element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\r\n\r\n if (nextElement === activeElement) {\r\n return;\r\n }\r\n\r\n const nextElementIndex = this._getItemIndex(nextElement);\r\n\r\n const triggerEvent = (eventName) => {\r\n return EventHandler.trigger(this._element, eventName, {\r\n relatedTarget: nextElement,\r\n direction: this._orderToDirection(order),\r\n from: this._getItemIndex(activeElement),\r\n to: nextElementIndex,\r\n });\r\n };\r\n\r\n const slideEvent = triggerEvent(EVENT_SLIDE);\r\n\r\n if (slideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n if (!activeElement || !nextElement) {\r\n // Some weirdness is happening, so we bail\r\n // TODO: change tests that use empty divs to avoid this check\r\n return;\r\n }\r\n\r\n const isCycling = Boolean(this._interval);\r\n this.pause();\r\n\r\n this._isSliding = true;\r\n\r\n this._setActiveIndicatorElement(nextElementIndex);\r\n this._activeElement = nextElement;\r\n\r\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\r\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\r\n\r\n nextElement.classList.add(orderClassName);\r\n\r\n reflow(nextElement);\r\n\r\n activeElement.classList.add(directionalClassName);\r\n nextElement.classList.add(directionalClassName);\r\n\r\n const completeCallBack = () => {\r\n nextElement.classList.remove(directionalClassName, orderClassName);\r\n nextElement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\r\n\r\n this._isSliding = false;\r\n\r\n triggerEvent(EVENT_SLID);\r\n };\r\n\r\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\r\n\r\n if (isCycling) {\r\n this.cycle();\r\n }\r\n }\r\n\r\n _isAnimated() {\r\n return this._element.classList.contains(CLASS_NAME_SLIDE);\r\n }\r\n\r\n _getActive() {\r\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\r\n }\r\n\r\n _getItems() {\r\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\r\n }\r\n\r\n _clearInterval() {\r\n if (this._interval) {\r\n clearInterval(this._interval);\r\n this._interval = null;\r\n }\r\n }\r\n\r\n _directionToOrder(direction) {\r\n if (isRTL()) {\r\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\r\n }\r\n\r\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\r\n }\r\n\r\n _orderToDirection(order) {\r\n if (isRTL()) {\r\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\r\n }\r\n\r\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Carousel.getOrCreateInstance(this, config);\r\n\r\n if (typeof config === 'number') {\r\n data.to(config);\r\n return;\r\n }\r\n\r\n if (typeof config === 'string') {\r\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\n// EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\r\n// const target = SelectorEngine.getElementFromSelector(this)\r\n\r\n// if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\r\n// return\r\n// }\r\n\r\n// event.preventDefault()\r\n\r\n// const carousel = Carousel.getOrCreateInstance(target)\r\n// const slideIndex = this.getAttribute('data-mdb-slide-to')\r\n\r\n// if (slideIndex) {\r\n// carousel.to(slideIndex)\r\n// carousel._maybeEnableCycle()\r\n// return\r\n// }\r\n\r\n// if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\r\n// carousel.next()\r\n// carousel._maybeEnableCycle()\r\n// return\r\n// }\r\n\r\n// carousel.prev()\r\n// carousel._maybeEnableCycle()\r\n// })\r\n\r\n// EventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n// const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\r\n\r\n// for (const carousel of carousels) {\r\n// Carousel.getOrCreateInstance(carousel)\r\n// }\r\n// })\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Carousel)\r\n\r\nexport default Carousel;\r\n","import EventHandler from '../mdb/dom/event-handler';\r\nimport BSCarousel from '../bootstrap/mdb-prefix/carousel';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport { bindCallbackEventsIfNeeded } from '../autoinit/init';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'carousel';\r\n\r\nconst EVENT_SLIDE_BS = 'slide.bs.carousel';\r\nconst EVENT_SLID_BS = 'slid.bs.carousel';\r\n\r\nconst EXTENDED_EVENTS = [\r\n { name: 'slide', parametersToCopy: ['relatedTarget', 'direction', 'from', 'to'] },\r\n { name: 'slid', parametersToCopy: ['relatedTarget', 'direction', 'from', 'to'] },\r\n];\r\n\r\nclass Carousel extends BSCarousel {\r\n constructor(element, data) {\r\n super(element, data);\r\n\r\n this._init();\r\n Manipulator.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true);\r\n bindCallbackEventsIfNeeded(this.constructor);\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(this._element, EVENT_SLIDE_BS);\r\n EventHandler.off(this._element, EVENT_SLID_BS);\r\n Manipulator.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Private\r\n _init() {\r\n this._bindMdbEvents();\r\n }\r\n\r\n _bindMdbEvents() {\r\n EventHandler.extend(this._element, EXTENDED_EVENTS, NAME);\r\n }\r\n}\r\n\r\nexport default Carousel;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap modal.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport SelectorEngine from './dom/selector-engine.js';\r\nimport Backdrop from './util/backdrop.js';\r\nimport { enableDismissTrigger } from './util/component-functions.js';\r\nimport FocusTrap from './util/focustrap.js';\r\nimport { defineJQueryPlugin, isRTL, isVisible, reflow } from './util/index.js';\r\nimport ScrollBarHelper from './util/scrollbar.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'modal';\r\nconst DATA_KEY = 'bs.modal';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst EVENT_HIDE = `hide${EVENT_KEY}`;\r\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`;\r\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`;\r\nconst EVENT_SHOW = `show${EVENT_KEY}`;\r\nconst EVENT_SHOWN = `shown${EVENT_KEY}`;\r\nconst EVENT_RESIZE = `resize${EVENT_KEY}`;\r\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`;\r\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`;\r\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_OPEN = 'modal-open';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_STATIC = 'modal-static';\r\n\r\nconst OPEN_SELECTOR = '.modal.show';\r\nconst SELECTOR_DIALOG = '.modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-mdb-toggle=\"modal\"]';\r\n\r\nconst Default = {\r\n backdrop: true,\r\n focus: true,\r\n keyboard: true,\r\n};\r\n\r\nconst DefaultType = {\r\n backdrop: '(boolean|string)',\r\n focus: 'boolean',\r\n keyboard: 'boolean',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Modal extends BaseComponent {\r\n constructor(element, config) {\r\n super(element, config);\r\n\r\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\r\n this._backdrop = this._initializeBackDrop();\r\n this._focustrap = this._initializeFocusTrap();\r\n this._isShown = false;\r\n this._isTransitioning = false;\r\n this._scrollBar = new ScrollBarHelper();\r\n\r\n this._addEventListeners();\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n toggle(relatedTarget) {\r\n return this._isShown ? this.hide() : this.show(relatedTarget);\r\n }\r\n\r\n show(relatedTarget) {\r\n if (this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\r\n relatedTarget,\r\n });\r\n\r\n if (showEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = true;\r\n this._isTransitioning = true;\r\n\r\n this._scrollBar.hide();\r\n\r\n document.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n this._adjustDialog();\r\n\r\n this._backdrop.show(() => this._showElement(relatedTarget));\r\n }\r\n\r\n hide() {\r\n if (!this._isShown || this._isTransitioning) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);\r\n\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n this._isShown = false;\r\n this._isTransitioning = true;\r\n this._focustrap.deactivate();\r\n\r\n this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(window, EVENT_KEY);\r\n EventHandler.off(this._dialog, EVENT_KEY);\r\n\r\n this._backdrop.dispose();\r\n this._focustrap.deactivate();\r\n\r\n super.dispose();\r\n }\r\n\r\n handleUpdate() {\r\n this._adjustDialog();\r\n }\r\n\r\n // Private\r\n _initializeBackDrop() {\r\n return new Backdrop({\r\n isVisible: Boolean(this._config.backdrop) && Boolean(!this._config.modalNonInvasive), // 'static' option will be translated to true, and booleans will keep their value,\r\n isAnimated: this._isAnimated(),\r\n });\r\n }\r\n\r\n _initializeFocusTrap() {\r\n return new FocusTrap({\r\n trapElement: this._element,\r\n });\r\n }\r\n\r\n _showElement(relatedTarget) {\r\n // try to append dynamic modal\r\n if (!document.body.contains(this._element)) {\r\n document.body.append(this._element);\r\n }\r\n\r\n this._element.style.display = 'block';\r\n this._element.removeAttribute('aria-hidden');\r\n this._element.setAttribute('aria-modal', true);\r\n this._element.setAttribute('role', 'dialog');\r\n this._element.scrollTop = 0;\r\n\r\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\r\n if (modalBody) {\r\n modalBody.scrollTop = 0;\r\n }\r\n\r\n reflow(this._element);\r\n\r\n this._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n const transitionComplete = () => {\r\n if (this._config.focus) {\r\n this._focustrap.activate();\r\n }\r\n\r\n this._isTransitioning = false;\r\n EventHandler.trigger(this._element, EVENT_SHOWN, {\r\n relatedTarget,\r\n });\r\n };\r\n\r\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\r\n }\r\n\r\n _addEventListeners() {\r\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, (event) => {\r\n if (event.key !== ESCAPE_KEY) {\r\n return;\r\n }\r\n\r\n if (this._config.keyboard) {\r\n this.hide();\r\n return;\r\n }\r\n\r\n this._triggerBackdropTransition();\r\n });\r\n\r\n EventHandler.on(window, EVENT_RESIZE, () => {\r\n if (this._isShown && !this._isTransitioning) {\r\n this._adjustDialog();\r\n }\r\n });\r\n\r\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, (event) => {\r\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\r\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, (event2) => {\r\n if (this._element !== event.target || this._element !== event2.target) {\r\n return;\r\n }\r\n\r\n if (this._config.backdrop === 'static') {\r\n this._triggerBackdropTransition();\r\n return;\r\n }\r\n\r\n if (this._config.backdrop) {\r\n this.hide();\r\n }\r\n });\r\n });\r\n }\r\n\r\n _hideModal() {\r\n this._element.style.display = 'none';\r\n this._element.setAttribute('aria-hidden', true);\r\n this._element.removeAttribute('aria-modal');\r\n this._element.removeAttribute('role');\r\n this._isTransitioning = false;\r\n\r\n this._backdrop.hide(() => {\r\n document.body.classList.remove(CLASS_NAME_OPEN);\r\n this._resetAdjustments();\r\n this._scrollBar.reset();\r\n EventHandler.trigger(this._element, EVENT_HIDDEN);\r\n });\r\n }\r\n\r\n _isAnimated() {\r\n return this._element.classList.contains(CLASS_NAME_FADE);\r\n }\r\n\r\n _triggerBackdropTransition() {\r\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n const initialOverflowY = this._element.style.overflowY;\r\n // return if the following background transition hasn't yet completed\r\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\r\n return;\r\n }\r\n\r\n if (!isModalOverflowing) {\r\n this._element.style.overflowY = 'hidden';\r\n }\r\n\r\n this._element.classList.add(CLASS_NAME_STATIC);\r\n this._queueCallback(() => {\r\n this._element.classList.remove(CLASS_NAME_STATIC);\r\n this._queueCallback(() => {\r\n this._element.style.overflowY = initialOverflowY;\r\n }, this._dialog);\r\n }, this._dialog);\r\n\r\n this._element.focus();\r\n }\r\n\r\n /**\r\n * The following methods are used to handle overflowing modals\r\n */\r\n\r\n _adjustDialog() {\r\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n const scrollbarWidth = this._scrollBar.getWidth();\r\n const isBodyOverflowing = scrollbarWidth > 0;\r\n\r\n if (isBodyOverflowing && !isModalOverflowing) {\r\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\r\n this._element.style[property] = `${scrollbarWidth}px`;\r\n }\r\n\r\n if (!isBodyOverflowing && isModalOverflowing) {\r\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\r\n this._element.style[property] = `${scrollbarWidth}px`;\r\n }\r\n }\r\n\r\n _resetAdjustments() {\r\n this._element.style.paddingLeft = '';\r\n this._element.style.paddingRight = '';\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config, relatedTarget) {\r\n return this.each(function () {\r\n const data = Modal.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config](relatedTarget);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\n// EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n// const target = SelectorEngine.getElementFromSelector(this)\r\n\r\n// if (['A', 'AREA'].includes(this.tagName)) {\r\n// event.preventDefault()\r\n// }\r\n\r\n// EventHandler.one(target, EVENT_SHOW, showEvent => {\r\n// if (showEvent.defaultPrevented) {\r\n// // only register focus restorer if modal will actually get shown\r\n// return\r\n// }\r\n\r\n// EventHandler.one(target, EVENT_HIDDEN, () => {\r\n// if (isVisible(this)) {\r\n// this.focus()\r\n// }\r\n// })\r\n// })\r\n\r\n// // avoid conflict when clicking moddal toggler while another one is open\r\n// const allreadyOpenedModals = SelectorEngine.find(OPEN_SELECTOR);\r\n// allreadyOpenedModals.forEach((modal) => {\r\n// if (!modal.classList.contains('modal-non-invasive-show')) {\r\n// Modal.getInstance(modal).hide();\r\n// }\r\n// });\r\n\r\n// const data = Modal.getOrCreateInstance(target)\r\n\r\n// data.toggle(this)\r\n// })\r\n\r\n// enableDismissTrigger(Modal)\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Modal)\r\n\r\nexport default Modal;\r\n","import EventHandler from '../mdb/dom/event-handler';\r\nimport BSModal from '../bootstrap/mdb-prefix/modal';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport { bindCallbackEventsIfNeeded } from '../autoinit/init';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'modal';\r\n\r\nconst EVENT_HIDE_BS = 'hide.bs.modal';\r\nconst EVENT_HIDE_PREVENTED_BS = 'hidePrevented.bs.modal';\r\nconst EVENT_HIDDEN_BS = 'hidden.bs.modal';\r\nconst EVENT_SHOW_BS = 'show.bs.modal';\r\nconst EVENT_SHOWN_BS = 'shown.bs.modal';\r\n\r\nconst EXTENDED_EVENTS = [\r\n { name: 'show', parametersToCopy: ['relatedTarget'] },\r\n { name: 'shown', parametersToCopy: ['relatedTarget'] },\r\n { name: 'hide' },\r\n { name: 'hidePrevented' },\r\n { name: 'hidden' },\r\n];\r\n\r\nclass Modal extends BSModal {\r\n constructor(element, data) {\r\n super(element, data);\r\n\r\n this._init();\r\n Manipulator.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true);\r\n bindCallbackEventsIfNeeded(this.constructor);\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(this._element, EVENT_SHOW_BS);\r\n EventHandler.off(this._element, EVENT_SHOWN_BS);\r\n EventHandler.off(this._element, EVENT_HIDE_BS);\r\n EventHandler.off(this._element, EVENT_HIDDEN_BS);\r\n EventHandler.off(this._element, EVENT_HIDE_PREVENTED_BS);\r\n Manipulator.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Private\r\n _init() {\r\n this._bindMdbEvents();\r\n }\r\n\r\n _bindMdbEvents() {\r\n EventHandler.extend(this._element, EXTENDED_EVENTS, NAME);\r\n }\r\n}\r\n\r\nexport default Modal;\r\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/sanitizer.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\n// js-docs-start allow-list\r\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\r\n\r\nexport const DefaultAllowlist = {\r\n // Global attributes allowed on any supplied element below.\r\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\r\n a: ['target', 'href', 'title', 'rel'],\r\n area: [],\r\n b: [],\r\n br: [],\r\n col: [],\r\n code: [],\r\n dd: [],\r\n div: [],\r\n dl: [],\r\n dt: [],\r\n em: [],\r\n hr: [],\r\n h1: [],\r\n h2: [],\r\n h3: [],\r\n h4: [],\r\n h5: [],\r\n h6: [],\r\n i: [],\r\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\r\n li: [],\r\n ol: [],\r\n p: [],\r\n pre: [],\r\n s: [],\r\n small: [],\r\n span: [],\r\n sub: [],\r\n sup: [],\r\n strong: [],\r\n u: [],\r\n ul: [],\r\n};\r\n// js-docs-end allow-list\r\n\r\nconst uriAttributes = new Set([\r\n 'background',\r\n 'cite',\r\n 'href',\r\n 'itemtype',\r\n 'longdesc',\r\n 'poster',\r\n 'src',\r\n 'xlink:href',\r\n]);\r\n\r\n/**\r\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\r\n * contexts.\r\n *\r\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\r\n */\r\n// eslint-disable-next-line unicorn/better-regex\r\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\r\n\r\nconst allowedAttribute = (attribute, allowedAttributeList) => {\r\n const attributeName = attribute.nodeName.toLowerCase();\r\n\r\n if (allowedAttributeList.includes(attributeName)) {\r\n if (uriAttributes.has(attributeName)) {\r\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Check if a regular expression validates the attribute.\r\n return allowedAttributeList\r\n .filter((attributeRegex) => attributeRegex instanceof RegExp)\r\n .some((regex) => regex.test(attributeName));\r\n};\r\n\r\nexport function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\r\n if (!unsafeHtml.length) {\r\n return unsafeHtml;\r\n }\r\n\r\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\r\n return sanitizeFunction(unsafeHtml);\r\n }\r\n\r\n const domParser = new window.DOMParser();\r\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\r\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\r\n\r\n for (const element of elements) {\r\n const elementName = element.nodeName.toLowerCase();\r\n\r\n if (!Object.keys(allowList).includes(elementName)) {\r\n element.remove();\r\n continue;\r\n }\r\n\r\n const attributeList = [].concat(...element.attributes);\r\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\r\n\r\n for (const attribute of attributeList) {\r\n if (!allowedAttribute(attribute, allowedAttributes)) {\r\n element.removeAttribute(attribute.nodeName);\r\n }\r\n }\r\n }\r\n\r\n return createdDocument.body.innerHTML;\r\n}\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/template-factory.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport SelectorEngine from '../dom/selector-engine.js';\r\nimport Config from './config.js';\r\nimport { DefaultAllowlist, sanitizeHtml } from './sanitizer.js';\r\nimport { execute, getElement, isElement } from './index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'TemplateFactory';\r\n\r\nconst Default = {\r\n allowList: DefaultAllowlist,\r\n content: {}, // { selector : text , selector2 : text2 , }\r\n extraClass: '',\r\n html: false,\r\n sanitize: true,\r\n sanitizeFn: null,\r\n template: '
',\r\n};\r\n\r\nconst DefaultType = {\r\n allowList: 'object',\r\n content: 'object',\r\n extraClass: '(string|function)',\r\n html: 'boolean',\r\n sanitize: 'boolean',\r\n sanitizeFn: '(null|function)',\r\n template: 'string',\r\n};\r\n\r\nconst DefaultContentType = {\r\n entry: '(string|element|function|null)',\r\n selector: '(string|element)',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass TemplateFactory extends Config {\r\n constructor(config) {\r\n super();\r\n this._config = this._getConfig(config);\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n getContent() {\r\n return Object.values(this._config.content)\r\n .map((config) => this._resolvePossibleFunction(config))\r\n .filter(Boolean);\r\n }\r\n\r\n hasContent() {\r\n return this.getContent().length > 0;\r\n }\r\n\r\n changeContent(content) {\r\n this._checkContent(content);\r\n this._config.content = { ...this._config.content, ...content };\r\n return this;\r\n }\r\n\r\n toHtml() {\r\n const templateWrapper = document.createElement('div');\r\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\r\n\r\n for (const [selector, text] of Object.entries(this._config.content)) {\r\n this._setContent(templateWrapper, text, selector);\r\n }\r\n\r\n const template = templateWrapper.children[0];\r\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\r\n\r\n if (extraClass) {\r\n template.classList.add(...extraClass.split(' '));\r\n }\r\n\r\n return template;\r\n }\r\n\r\n // Private\r\n _typeCheckConfig(config) {\r\n super._typeCheckConfig(config);\r\n this._checkContent(config.content);\r\n }\r\n\r\n _checkContent(arg) {\r\n for (const [selector, content] of Object.entries(arg)) {\r\n super._typeCheckConfig({ selector, entry: content }, DefaultContentType);\r\n }\r\n }\r\n\r\n _setContent(template, content, selector) {\r\n const templateElement = SelectorEngine.findOne(selector, template);\r\n\r\n if (!templateElement) {\r\n return;\r\n }\r\n\r\n content = this._resolvePossibleFunction(content);\r\n\r\n if (!content) {\r\n templateElement.remove();\r\n return;\r\n }\r\n\r\n if (isElement(content)) {\r\n this._putElementInTemplate(getElement(content), templateElement);\r\n return;\r\n }\r\n\r\n if (this._config.html) {\r\n templateElement.innerHTML = this._maybeSanitize(content);\r\n return;\r\n }\r\n\r\n templateElement.textContent = content;\r\n }\r\n\r\n _maybeSanitize(arg) {\r\n return this._config.sanitize\r\n ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn)\r\n : arg;\r\n }\r\n\r\n _resolvePossibleFunction(arg) {\r\n return execute(arg, [this]);\r\n }\r\n\r\n _putElementInTemplate(element, templateElement) {\r\n if (this._config.html) {\r\n templateElement.innerHTML = '';\r\n templateElement.append(element);\r\n return;\r\n }\r\n\r\n templateElement.textContent = element.textContent;\r\n }\r\n}\r\n\r\nexport default TemplateFactory;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap tooltip.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport * as Popper from '@popperjs/core';\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport Manipulator from './dom/manipulator.js';\r\nimport {\r\n defineJQueryPlugin,\r\n execute,\r\n findShadowRoot,\r\n getElement,\r\n getUID,\r\n isRTL,\r\n noop,\r\n} from './util/index.js';\r\nimport { DefaultAllowlist } from './util/sanitizer.js';\r\nimport TemplateFactory from './util/template-factory.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'tooltip';\r\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\r\n\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_MODAL = 'modal';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\r\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\r\n\r\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\r\n\r\nconst TRIGGER_HOVER = 'hover';\r\nconst TRIGGER_FOCUS = 'focus';\r\nconst TRIGGER_CLICK = 'click';\r\nconst TRIGGER_MANUAL = 'manual';\r\n\r\nconst EVENT_HIDE = 'hide';\r\nconst EVENT_HIDDEN = 'hidden';\r\nconst EVENT_SHOW = 'show';\r\nconst EVENT_SHOWN = 'shown';\r\nconst EVENT_INSERTED = 'inserted';\r\nconst EVENT_CLICK = 'click';\r\nconst EVENT_FOCUSIN = 'focusin';\r\nconst EVENT_FOCUSOUT = 'focusout';\r\nconst EVENT_MOUSEENTER = 'mouseenter';\r\nconst EVENT_MOUSELEAVE = 'mouseleave';\r\n\r\nconst AttachmentMap = {\r\n AUTO: 'auto',\r\n TOP: 'top',\r\n RIGHT: isRTL() ? 'left' : 'right',\r\n BOTTOM: 'bottom',\r\n LEFT: isRTL() ? 'right' : 'left',\r\n};\r\n\r\nconst Default = {\r\n allowList: DefaultAllowlist,\r\n animation: true,\r\n boundary: 'clippingParents',\r\n container: false,\r\n customClass: '',\r\n delay: 0,\r\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\r\n html: false,\r\n offset: [0, 6],\r\n placement: 'top',\r\n popperConfig: null,\r\n sanitize: true,\r\n sanitizeFn: null,\r\n selector: false,\r\n template:\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
',\r\n title: '',\r\n trigger: 'hover focus',\r\n};\r\n\r\nconst DefaultType = {\r\n allowList: 'object',\r\n animation: 'boolean',\r\n boundary: '(string|element)',\r\n container: '(string|element|boolean)',\r\n customClass: '(string|function)',\r\n delay: '(number|object)',\r\n fallbackPlacements: 'array',\r\n html: 'boolean',\r\n offset: '(array|string|function)',\r\n placement: '(string|function)',\r\n popperConfig: '(null|object|function)',\r\n sanitize: 'boolean',\r\n sanitizeFn: '(null|function)',\r\n selector: '(string|boolean)',\r\n template: 'string',\r\n title: '(string|element|function)',\r\n trigger: 'string',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Tooltip extends BaseComponent {\r\n constructor(element, config) {\r\n if (typeof Popper === 'undefined') {\r\n throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");\r\n }\r\n\r\n super(element, config);\r\n\r\n // Private\r\n this._isEnabled = true;\r\n this._timeout = 0;\r\n this._isHovered = null;\r\n this._activeTrigger = {};\r\n this._popper = null;\r\n this._templateFactory = null;\r\n this._newContent = null;\r\n\r\n // Protected\r\n this.tip = null;\r\n\r\n this._setListeners();\r\n\r\n if (!this._config.selector) {\r\n this._fixTitle();\r\n }\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n enable() {\r\n this._isEnabled = true;\r\n }\r\n\r\n disable() {\r\n this._isEnabled = false;\r\n }\r\n\r\n toggleEnabled() {\r\n this._isEnabled = !this._isEnabled;\r\n }\r\n\r\n toggle() {\r\n if (!this._isEnabled) {\r\n return;\r\n }\r\n\r\n this._activeTrigger.click = !this._activeTrigger.click;\r\n if (this._isShown()) {\r\n this._leave();\r\n return;\r\n }\r\n\r\n this._enter();\r\n }\r\n\r\n dispose() {\r\n clearTimeout(this._timeout);\r\n\r\n EventHandler.off(\r\n this._element.closest(SELECTOR_MODAL),\r\n EVENT_MODAL_HIDE,\r\n this._hideModalHandler\r\n );\r\n\r\n if (this._element.getAttribute('data-mdb-original-title')) {\r\n this._element.setAttribute('title', this._element.getAttribute('data-mdb-original-title'));\r\n }\r\n\r\n this._disposePopper();\r\n super.dispose();\r\n }\r\n\r\n show() {\r\n if (this._element.style.display === 'none') {\r\n throw new Error('Please use show on visible elements');\r\n }\r\n\r\n if (!(this._isWithContent() && this._isEnabled)) {\r\n return;\r\n }\r\n\r\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW));\r\n const shadowRoot = findShadowRoot(this._element);\r\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(\r\n this._element\r\n );\r\n\r\n if (showEvent.defaultPrevented || !isInTheDom) {\r\n return;\r\n }\r\n\r\n // TODO: v6 remove this or make it optional\r\n this._disposePopper();\r\n\r\n const tip = this._getTipElement();\r\n\r\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\r\n\r\n const { container } = this._config;\r\n\r\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\r\n container.append(tip);\r\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\r\n }\r\n\r\n this._popper = this._createPopper(tip);\r\n\r\n tip.classList.add(CLASS_NAME_SHOW);\r\n\r\n // If this is a touch-enabled device we add extra\r\n // empty mouseover listeners to the body's immediate children;\r\n // only needed because of broken event delegation on iOS\r\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\r\n if ('ontouchstart' in document.documentElement) {\r\n for (const element of [].concat(...document.body.children)) {\r\n EventHandler.on(element, 'mouseover', noop);\r\n }\r\n }\r\n\r\n const complete = () => {\r\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN));\r\n\r\n if (this._isHovered === false) {\r\n this._leave();\r\n }\r\n\r\n this._isHovered = false;\r\n };\r\n\r\n this._queueCallback(complete, this.tip, this._isAnimated());\r\n }\r\n\r\n hide() {\r\n if (!this._isShown()) {\r\n return;\r\n }\r\n\r\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE));\r\n if (hideEvent.defaultPrevented) {\r\n return;\r\n }\r\n\r\n const tip = this._getTipElement();\r\n tip.classList.remove(CLASS_NAME_SHOW);\r\n\r\n // If this is a touch-enabled device we remove the extra\r\n // empty mouseover listeners we added for iOS support\r\n if ('ontouchstart' in document.documentElement) {\r\n for (const element of [].concat(...document.body.children)) {\r\n EventHandler.off(element, 'mouseover', noop);\r\n }\r\n }\r\n\r\n this._activeTrigger[TRIGGER_CLICK] = false;\r\n this._activeTrigger[TRIGGER_FOCUS] = false;\r\n this._activeTrigger[TRIGGER_HOVER] = false;\r\n this._isHovered = null; // it is a trick to support manual triggering\r\n\r\n const complete = () => {\r\n if (this._isWithActiveTrigger()) {\r\n return;\r\n }\r\n\r\n if (!this._isHovered) {\r\n this._disposePopper();\r\n }\r\n\r\n this._element.removeAttribute('aria-describedby');\r\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN));\r\n };\r\n\r\n this._queueCallback(complete, this.tip, this._isAnimated());\r\n }\r\n\r\n update() {\r\n if (this._popper) {\r\n this._popper.update();\r\n }\r\n }\r\n\r\n // Protected\r\n _isWithContent() {\r\n return Boolean(this._getTitle());\r\n }\r\n\r\n _getTipElement() {\r\n if (!this.tip) {\r\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\r\n }\r\n\r\n return this.tip;\r\n }\r\n\r\n _createTipElement(content) {\r\n const tip = this._getTemplateFactory(content).toHtml();\r\n\r\n // TODO: remove this check in v6\r\n if (!tip) {\r\n return null;\r\n }\r\n\r\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\r\n // TODO: v6 the following can be achieved with CSS only\r\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\r\n\r\n const tipId = getUID(this.constructor.NAME).toString();\r\n\r\n tip.setAttribute('id', tipId);\r\n\r\n if (this._isAnimated()) {\r\n tip.classList.add(CLASS_NAME_FADE);\r\n }\r\n\r\n return tip;\r\n }\r\n\r\n setContent(content) {\r\n this._newContent = content;\r\n if (this._isShown()) {\r\n this._disposePopper();\r\n this.show();\r\n }\r\n }\r\n\r\n _getTemplateFactory(content) {\r\n if (this._templateFactory) {\r\n this._templateFactory.changeContent(content);\r\n } else {\r\n this._templateFactory = new TemplateFactory({\r\n ...this._config,\r\n // the `content` var has to be after `this._config`\r\n // to override config.content in case of popover\r\n content,\r\n extraClass: this._resolvePossibleFunction(this._config.customClass),\r\n });\r\n }\r\n\r\n return this._templateFactory;\r\n }\r\n\r\n _getContentForTemplate() {\r\n return {\r\n [SELECTOR_TOOLTIP_INNER]: this._getTitle(),\r\n };\r\n }\r\n\r\n _getTitle() {\r\n return (\r\n this._resolvePossibleFunction(this._config.title) ||\r\n this._element.getAttribute('data-mdb-original-title')\r\n );\r\n }\r\n\r\n // Private\r\n _initializeOnDelegatedTarget(event) {\r\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\r\n }\r\n\r\n _isAnimated() {\r\n return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE));\r\n }\r\n\r\n _isShown() {\r\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW);\r\n }\r\n\r\n _createPopper(tip) {\r\n const placement = execute(this._config.placement, [this, tip, this._element]);\r\n const attachment = AttachmentMap[placement.toUpperCase()];\r\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\r\n }\r\n\r\n _getOffset() {\r\n const { offset } = this._config;\r\n\r\n if (typeof offset === 'string') {\r\n return offset.split(',').map((value) => Number.parseInt(value, 10));\r\n }\r\n\r\n if (typeof offset === 'function') {\r\n return (popperData) => offset(popperData, this._element);\r\n }\r\n\r\n return offset;\r\n }\r\n\r\n _resolvePossibleFunction(arg) {\r\n return execute(arg, [this._element]);\r\n }\r\n\r\n _getPopperConfig(attachment) {\r\n const defaultBsPopperConfig = {\r\n placement: attachment,\r\n modifiers: [\r\n {\r\n name: 'flip',\r\n options: {\r\n fallbackPlacements: this._config.fallbackPlacements,\r\n },\r\n },\r\n {\r\n name: 'offset',\r\n options: {\r\n offset: this._getOffset(),\r\n },\r\n },\r\n {\r\n name: 'preventOverflow',\r\n options: {\r\n boundary: this._config.boundary,\r\n },\r\n },\r\n {\r\n name: 'arrow',\r\n options: {\r\n element: `.${this.constructor.NAME}-arrow`,\r\n },\r\n },\r\n {\r\n name: 'preSetPlacement',\r\n enabled: true,\r\n phase: 'beforeMain',\r\n fn: (data) => {\r\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\r\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\r\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\r\n },\r\n },\r\n ],\r\n };\r\n\r\n return {\r\n ...defaultBsPopperConfig,\r\n ...execute(this._config.popperConfig, [defaultBsPopperConfig]),\r\n };\r\n }\r\n\r\n _setListeners() {\r\n const triggers = this._config.trigger.split(' ');\r\n\r\n for (const trigger of triggers) {\r\n if (trigger === 'click') {\r\n EventHandler.on(\r\n this._element,\r\n this.constructor.eventName(EVENT_CLICK),\r\n this._config.selector,\r\n (event) => {\r\n const context = this._initializeOnDelegatedTarget(event);\r\n context.toggle();\r\n }\r\n );\r\n } else if (trigger !== TRIGGER_MANUAL) {\r\n const eventIn =\r\n trigger === TRIGGER_HOVER\r\n ? this.constructor.eventName(EVENT_MOUSEENTER)\r\n : this.constructor.eventName(EVENT_FOCUSIN);\r\n const eventOut =\r\n trigger === TRIGGER_HOVER\r\n ? this.constructor.eventName(EVENT_MOUSELEAVE)\r\n : this.constructor.eventName(EVENT_FOCUSOUT);\r\n\r\n EventHandler.on(this._element, eventIn, this._config.selector, (event) => {\r\n const context = this._initializeOnDelegatedTarget(event);\r\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\r\n context._enter();\r\n });\r\n EventHandler.on(this._element, eventOut, this._config.selector, (event) => {\r\n const context = this._initializeOnDelegatedTarget(event);\r\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\r\n context._element.contains(event.relatedTarget);\r\n\r\n context._leave();\r\n });\r\n }\r\n }\r\n\r\n this._hideModalHandler = () => {\r\n if (this._element) {\r\n this.hide();\r\n }\r\n };\r\n\r\n EventHandler.on(\r\n this._element.closest(SELECTOR_MODAL),\r\n EVENT_MODAL_HIDE,\r\n this._hideModalHandler\r\n );\r\n }\r\n\r\n _fixTitle() {\r\n const title = this._element.getAttribute('title');\r\n\r\n if (!title) {\r\n return;\r\n }\r\n\r\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\r\n this._element.setAttribute('aria-label', title);\r\n }\r\n\r\n this._element.setAttribute('data-mdb-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\r\n this._element.removeAttribute('title');\r\n }\r\n\r\n _enter() {\r\n if (this._isShown() || this._isHovered) {\r\n this._isHovered = true;\r\n return;\r\n }\r\n\r\n this._isHovered = true;\r\n\r\n this._setTimeout(() => {\r\n if (this._isHovered) {\r\n this.show();\r\n }\r\n }, this._config.delay.show);\r\n }\r\n\r\n _leave() {\r\n if (this._isWithActiveTrigger()) {\r\n return;\r\n }\r\n\r\n this._isHovered = false;\r\n\r\n this._setTimeout(() => {\r\n if (!this._isHovered) {\r\n this.hide();\r\n }\r\n }, this._config.delay.hide);\r\n }\r\n\r\n _setTimeout(handler, timeout) {\r\n clearTimeout(this._timeout);\r\n this._timeout = setTimeout(handler, timeout);\r\n }\r\n\r\n _isWithActiveTrigger() {\r\n return Object.values(this._activeTrigger).includes(true);\r\n }\r\n\r\n _getConfig(config) {\r\n const dataAttributes = Manipulator.getDataAttributes(this._element);\r\n\r\n for (const dataAttribute of Object.keys(dataAttributes)) {\r\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\r\n delete dataAttributes[dataAttribute];\r\n }\r\n }\r\n\r\n config = {\r\n ...dataAttributes,\r\n ...(typeof config === 'object' && config ? config : {}),\r\n };\r\n config = this._mergeConfigObj(config);\r\n config = this._configAfterMerge(config);\r\n this._typeCheckConfig(config);\r\n return config;\r\n }\r\n\r\n _configAfterMerge(config) {\r\n config.container = config.container === false ? document.body : getElement(config.container);\r\n\r\n if (typeof config.delay === 'number') {\r\n config.delay = {\r\n show: config.delay,\r\n hide: config.delay,\r\n };\r\n }\r\n\r\n if (typeof config.title === 'number') {\r\n config.title = config.title.toString();\r\n }\r\n\r\n if (typeof config.content === 'number') {\r\n config.content = config.content.toString();\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _getDelegateConfig() {\r\n const config = {};\r\n\r\n for (const [key, value] of Object.entries(this._config)) {\r\n if (this.constructor.Default[key] !== value) {\r\n config[key] = value;\r\n }\r\n }\r\n\r\n config.selector = false;\r\n config.trigger = 'manual';\r\n\r\n // In the future can be replaced with:\r\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\r\n // `Object.fromEntries(keysWithDifferentValues)`\r\n return config;\r\n }\r\n\r\n _disposePopper() {\r\n if (this._popper) {\r\n this._popper.destroy();\r\n this._popper = null;\r\n }\r\n\r\n if (this.tip) {\r\n this.tip.remove();\r\n this.tip = null;\r\n }\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Tooltip.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Tooltip)\r\n\r\nexport default Tooltip;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap popover.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport Tooltip from './tooltip.js';\r\nimport { defineJQueryPlugin } from './util/index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'popover';\r\n\r\nconst SELECTOR_TITLE = '.popover-header';\r\nconst SELECTOR_CONTENT = '.popover-body';\r\n\r\nconst Default = {\r\n ...Tooltip.Default,\r\n content: '',\r\n offset: [0, 8],\r\n placement: 'right',\r\n template:\r\n '
' +\r\n '
' +\r\n '

' +\r\n '
' +\r\n '
',\r\n trigger: 'click',\r\n};\r\n\r\nconst DefaultType = {\r\n ...Tooltip.DefaultType,\r\n content: '(null|string|element|function)',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass Popover extends Tooltip {\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Overrides\r\n _isWithContent() {\r\n return this._getTitle() || this._getContent();\r\n }\r\n\r\n // Private\r\n _getContentForTemplate() {\r\n return {\r\n [SELECTOR_TITLE]: this._getTitle(),\r\n [SELECTOR_CONTENT]: this._getContent(),\r\n };\r\n }\r\n\r\n _getContent() {\r\n return this._resolvePossibleFunction(this._config.content);\r\n }\r\n\r\n // Static\r\n static jQueryInterface(config) {\r\n return this.each(function () {\r\n const data = Popover.getOrCreateInstance(this, config);\r\n\r\n if (typeof config !== 'string') {\r\n return;\r\n }\r\n\r\n if (typeof data[config] === 'undefined') {\r\n throw new TypeError(`No method named \"${config}\"`);\r\n }\r\n\r\n data[config]();\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * jQuery\r\n */\r\n\r\n// defineJQueryPlugin(Popover)\r\n\r\nexport default Popover;\r\n","import EventHandler from '../mdb/dom/event-handler';\r\nimport BSPopover from '../bootstrap/mdb-prefix/popover';\r\nimport Manipulator from '../mdb/dom/manipulator';\r\nimport { bindCallbackEventsIfNeeded } from '../autoinit/init';\r\n\r\n/**\r\n * ------------------------------------------------------------------------\r\n * Constants\r\n * ------------------------------------------------------------------------\r\n */\r\n\r\nconst NAME = 'popover';\r\n\r\nconst EVENT_SHOW_BS = 'show.bs.popover';\r\nconst EVENT_SHOWN_BS = 'shown.bs.popover';\r\nconst EVENT_HIDE_BS = 'hide.bs.popover';\r\nconst EVENT_HIDDEN_BS = 'hidden.bs.popover';\r\nconst EVENT_INSERTED_BS = 'inserted.bs.popover';\r\n\r\nconst EXTENDED_EVENTS = [\r\n { name: 'show' },\r\n { name: 'shown' },\r\n { name: 'hide' },\r\n { name: 'hidden' },\r\n { name: 'inserted' },\r\n];\r\n\r\nclass Popover extends BSPopover {\r\n constructor(element, data) {\r\n super(element, data);\r\n\r\n this._init();\r\n Manipulator.setDataAttribute(this._element, `${this.constructor.NAME}-initialized`, true);\r\n bindCallbackEventsIfNeeded(this.constructor);\r\n }\r\n\r\n dispose() {\r\n EventHandler.off(this.element, EVENT_SHOW_BS);\r\n EventHandler.off(this.element, EVENT_SHOWN_BS);\r\n EventHandler.off(this.element, EVENT_HIDE_BS);\r\n EventHandler.off(this.element, EVENT_HIDDEN_BS);\r\n EventHandler.off(this.element, EVENT_INSERTED_BS);\r\n Manipulator.removeDataAttribute(this._element, `${this.constructor.NAME}-initialized`);\r\n\r\n super.dispose();\r\n }\r\n\r\n // Getters\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Private\r\n _init() {\r\n this._bindMdbEvents();\r\n }\r\n\r\n _bindMdbEvents() {\r\n EventHandler.extend(this._element, EXTENDED_EVENTS, NAME);\r\n }\r\n}\r\n\r\nexport default Popover;\r\n","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap scrollspy.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport BaseComponent from './base-component.js';\r\nimport EventHandler from './dom/event-handler.js';\r\nimport SelectorEngine from './dom/selector-engine.js';\r\nimport { defineJQueryPlugin, getElement, isDisabled, isVisible } from './util/index.js';\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst NAME = 'scrollspy';\r\nconst DATA_KEY = 'bs.scrollspy';\r\nconst EVENT_KEY = `.${DATA_KEY}`;\r\nconst DATA_API_KEY = '.data-api';\r\n\r\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`;\r\nconst EVENT_CLICK = `click${EVENT_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\r\n\r\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\n\r\nconst SELECTOR_DATA_SPY = '[data-mdb-spy=\"scroll\"]';\r\nconst SELECTOR_TARGET_LINKS = '[href]';\r\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\r\nconst SELECTOR_NAV_LINKS = '.nav-link';\r\nconst SELECTOR_NAV_ITEMS = '.nav-item';\r\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\r\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\r\nconst SELECTOR_DROPDOWN = '.dropdown';\r\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\r\n\r\nconst Default = {\r\n offset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\r\n rootMargin: '0px 0px -25%',\r\n smoothScroll: false,\r\n target: null,\r\n threshold: [0.1, 0.5, 1],\r\n};\r\n\r\nconst DefaultType = {\r\n offset: '(number|null)', // TODO v6 @deprecated, keep it for backwards compatibility reasons\r\n rootMargin: 'string',\r\n smoothScroll: 'boolean',\r\n target: 'element',\r\n threshold: 'array',\r\n};\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass ScrollSpy extends BaseComponent {\r\n constructor(element, config) {\r\n super(element, config);\r\n\r\n if (!this._config.target) {\r\n return;\r\n }\r\n\r\n // this._element is the observablesContainer and config.target the menu links wrapper\r\n this._targetLinks = new Map();\r\n this._observableSections = new Map();\r\n this._rootElement =\r\n getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\r\n this._activeTarget = null;\r\n this._observer = null;\r\n this._previousScrollData = {\r\n visibleEntryTop: 0,\r\n parentScrollTop: 0,\r\n };\r\n this.refresh(); // initialize\r\n }\r\n\r\n // Getters\r\n static get Default() {\r\n return Default;\r\n }\r\n\r\n static get DefaultType() {\r\n return DefaultType;\r\n }\r\n\r\n static get NAME() {\r\n return NAME;\r\n }\r\n\r\n // Public\r\n refresh() {\r\n this._initializeTargetsAndObservables();\r\n this._maybeEnableSmoothScroll();\r\n\r\n if (this._observer) {\r\n this._observer.disconnect();\r\n } else {\r\n this._observer = this._getNewObserver();\r\n }\r\n\r\n for (const section of this._observableSections.values()) {\r\n this._observer.observe(section);\r\n }\r\n }\r\n\r\n dispose() {\r\n if (this._observer) {\r\n this._observer.disconnect();\r\n }\r\n super.dispose();\r\n }\r\n\r\n // Private\r\n _configAfterMerge(config) {\r\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\r\n config.target = getElement(config.target) || document.body;\r\n\r\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\r\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\r\n\r\n if (typeof config.threshold === 'string') {\r\n config.threshold = config.threshold.split(',').map((value) => Number.parseFloat(value));\r\n }\r\n\r\n return config;\r\n }\r\n\r\n _maybeEnableSmoothScroll() {\r\n if (!this._config.smoothScroll) {\r\n return;\r\n }\r\n\r\n // unregister any previous listeners\r\n EventHandler.off(this._config.target, EVENT_CLICK);\r\n\r\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, (event) => {\r\n const observableSection = this._observableSections.get(event.target.hash);\r\n if (observableSection) {\r\n event.preventDefault();\r\n const root = this._rootElement || window;\r\n const height = observableSection.offsetTop - this._element.offsetTop;\r\n if (root.scrollTo) {\r\n root.scrollTo({ top: height, behavior: 'smooth' });\r\n return;\r\n }\r\n\r\n // Chrome 60 doesn't support `scrollTo`\r\n root.scrollTop = height;\r\n }\r\n });\r\n }\r\n\r\n _getNewObserver() {\r\n const options = {\r\n root: this._rootElement,\r\n threshold: this._config.threshold,\r\n rootMargin: this._config.rootMargin,\r\n };\r\n\r\n return new IntersectionObserver((entries) => this._observerCallback(entries), options);\r\n }\r\n\r\n // The logic of selection\r\n _observerCallback(entries) {\r\n const targetElement = (entry) => this._targetLinks.get(`#${entry.target.id}`);\r\n const activate = (entry) => {\r\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\r\n this._process(targetElement(entry));\r\n };\r\n\r\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\r\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\r\n this._previousScrollData.parentScrollTop = parentScrollTop;\r\n\r\n for (const entry of entries) {\r\n if (!entry.isIntersecting) {\r\n this._activeTarget = null;\r\n this._clearActiveClass(targetElement(entry));\r\n\r\n continue;\r\n }\r\n\r\n const entryIsLowerThanPrevious =\r\n entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\r\n // if we are scrolling down, pick the bigger offsetTop\r\n if (userScrollsDown && entryIsLowerThanPrevious) {\r\n activate(entry);\r\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\r\n if (!parentScrollTop) {\r\n return;\r\n }\r\n\r\n continue;\r\n }\r\n\r\n // if we are scrolling up, pick the smallest offsetTop\r\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\r\n activate(entry);\r\n }\r\n }\r\n }\r\n\r\n _initializeTargetsAndObservables() {\r\n this._targetLinks = new Map();\r\n this._observableSections = new Map();\r\n\r\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\r\n\r\n for (const anchor of targetLinks) {\r\n // ensure that the anchor has an id and is not disabled\r\n if (!anchor.hash || isDisabled(anchor)) {\r\n continue;\r\n }\r\n\r\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\r\n\r\n // ensure that the observableSection exists & is visible\r\n if (isVisible(observableSection)) {\r\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\r\n this._observableSections.set(anchor.hash, observableSection);\r\n }\r\n }\r\n }\r\n\r\n _process(target) {\r\n if (this._activeTarget === target) {\r\n return;\r\n }\r\n\r\n this._clearActiveClass(this._config.target);\r\n this._activeTarget = target;\r\n target.classList.add(CLASS_NAME_ACTIVE);\r\n this._activateParents(target);\r\n\r\n EventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target });\r\n }\r\n\r\n _activateParents(target) {\r\n // Activate dropdown parents\r\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\r\n SelectorEngine.findOne(\r\n SELECTOR_DROPDOWN_TOGGLE,\r\n target.closest(SELECTOR_DROPDOWN)\r\n ).classList.add(CLASS_NAME_ACTIVE);\r\n return;\r\n }\r\n\r\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\r\n // Set triggered links parents as active\r\n // With both