commit 7c17aa78436538241c09fc7d633904d3c063011e
Author: kurogeek
Date: Tue Nov 11 14:55:29 2025 +0700
initial commit
diff --git a/think-backend.greaterchiangmai.com/.editorconfig b/think-backend.greaterchiangmai.com/.editorconfig
new file mode 100644
index 0000000..8f0de65
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/.editorconfig
@@ -0,0 +1,18 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.{yml,yaml}]
+indent_size = 2
+
+[docker-compose.yml]
+indent_size = 4
diff --git a/think-backend.greaterchiangmai.com/.env.example b/think-backend.greaterchiangmai.com/.env.example
new file mode 100644
index 0000000..ea0665b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/.env.example
@@ -0,0 +1,59 @@
+APP_NAME=Laravel
+APP_ENV=local
+APP_KEY=
+APP_DEBUG=true
+APP_URL=http://localhost
+
+LOG_CHANNEL=stack
+LOG_DEPRECATIONS_CHANNEL=null
+LOG_LEVEL=debug
+
+DB_CONNECTION=mysql
+DB_HOST=127.0.0.1
+DB_PORT=3306
+DB_DATABASE=laravel
+DB_USERNAME=root
+DB_PASSWORD=
+
+BROADCAST_DRIVER=log
+CACHE_DRIVER=file
+FILESYSTEM_DISK=local
+QUEUE_CONNECTION=sync
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+MEMCACHED_HOST=127.0.0.1
+
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+
+MAIL_MAILER=smtp
+MAIL_HOST=mailpit
+MAIL_PORT=1025
+MAIL_USERNAME=null
+MAIL_PASSWORD=null
+MAIL_ENCRYPTION=null
+MAIL_FROM_ADDRESS="hello@example.com"
+MAIL_FROM_NAME="${APP_NAME}"
+
+AWS_ACCESS_KEY_ID=
+AWS_SECRET_ACCESS_KEY=
+AWS_DEFAULT_REGION=us-east-1
+AWS_BUCKET=
+AWS_USE_PATH_STYLE_ENDPOINT=false
+
+PUSHER_APP_ID=
+PUSHER_APP_KEY=
+PUSHER_APP_SECRET=
+PUSHER_HOST=
+PUSHER_PORT=443
+PUSHER_SCHEME=https
+PUSHER_APP_CLUSTER=mt1
+
+VITE_APP_NAME="${APP_NAME}"
+VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
+VITE_PUSHER_HOST="${PUSHER_HOST}"
+VITE_PUSHER_PORT="${PUSHER_PORT}"
+VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
+VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
diff --git a/think-backend.greaterchiangmai.com/.gitattributes b/think-backend.greaterchiangmai.com/.gitattributes
new file mode 100644
index 0000000..fcb21d3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/.gitattributes
@@ -0,0 +1,11 @@
+* text=auto eol=lf
+
+*.blade.php diff=html
+*.css diff=css
+*.html diff=html
+*.md diff=markdown
+*.php diff=php
+
+/.github export-ignore
+CHANGELOG.md export-ignore
+.styleci.yml export-ignore
diff --git a/think-backend.greaterchiangmai.com/.gitignore b/think-backend.greaterchiangmai.com/.gitignore
new file mode 100644
index 0000000..e2d7594
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/.gitignore
@@ -0,0 +1,20 @@
+/.phpunit.cache
+/node_modules
+/public/build
+/public/hot
+/public/uploads
+/public/storage
+/storage/*.key
+/vendor
+.env
+.env.backup
+.env.production
+.phpunit.result.cache
+Homestead.json
+Homestead.yaml
+auth.json
+npm-debug.log
+yarn-error.log
+/.fleet
+/.idea
+/.vscode
diff --git a/think-backend.greaterchiangmai.com/.htaccess b/think-backend.greaterchiangmai.com/.htaccess
new file mode 100644
index 0000000..1190d1d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/.htaccess
@@ -0,0 +1,9 @@
+
+
+ RewriteEngine On
+ RewriteRule ^.well-known/ - [L,NC]
+ RewriteCond %{HTTPS} !=on
+ RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
+ RewriteRule ^(.*)$ public/$1 [L]
+
+
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/README.md b/think-backend.greaterchiangmai.com/README.md
new file mode 100644
index 0000000..1a4c26b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/README.md
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+## About Laravel
+
+Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
+
+- [Simple, fast routing engine](https://laravel.com/docs/routing).
+- [Powerful dependency injection container](https://laravel.com/docs/container).
+- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
+- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
+- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
+- [Robust background job processing](https://laravel.com/docs/queues).
+- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
+
+Laravel is accessible, powerful, and provides tools required for large, robust applications.
+
+## Learning Laravel
+
+Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
+
+You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch.
+
+If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains thousands of video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
+
+## Laravel Sponsors
+
+We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the [Laravel Partners program](https://partners.laravel.com).
+
+### Premium Partners
+
+- **[Vehikl](https://vehikl.com/)**
+- **[Tighten Co.](https://tighten.co)**
+- **[WebReinvent](https://webreinvent.com/)**
+- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
+- **[64 Robots](https://64robots.com)**
+- **[Curotec](https://www.curotec.com/services/technologies/laravel/)**
+- **[Cyber-Duck](https://cyber-duck.co.uk)**
+- **[DevSquad](https://devsquad.com/hire-laravel-developers)**
+- **[Jump24](https://jump24.co.uk)**
+- **[Redberry](https://redberry.international/laravel/)**
+- **[Active Logic](https://activelogic.com)**
+- **[byte5](https://byte5.de)**
+- **[OP.GG](https://op.gg)**
+
+## Contributing
+
+Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
+
+## Code of Conduct
+
+In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
+
+## Security Vulnerabilities
+
+If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
+
+## License
+
+The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
diff --git a/think-backend.greaterchiangmai.com/app/.DS_Store b/think-backend.greaterchiangmai.com/app/.DS_Store
new file mode 100644
index 0000000..cab28ab
Binary files /dev/null and b/think-backend.greaterchiangmai.com/app/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/app/Console/Kernel.php b/think-backend.greaterchiangmai.com/app/Console/Kernel.php
new file mode 100644
index 0000000..e6b9960
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Console/Kernel.php
@@ -0,0 +1,27 @@
+command('inspire')->hourly();
+ }
+
+ /**
+ * Register the commands for the application.
+ */
+ protected function commands(): void
+ {
+ $this->load(__DIR__.'/Commands');
+
+ require base_path('routes/console.php');
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Exceptions/Handler.php b/think-backend.greaterchiangmai.com/app/Exceptions/Handler.php
new file mode 100644
index 0000000..56af264
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Exceptions/Handler.php
@@ -0,0 +1,30 @@
+
+ */
+ protected $dontFlash = [
+ 'current_password',
+ 'password',
+ 'password_confirmation',
+ ];
+
+ /**
+ * Register the exception handling callbacks for the application.
+ */
+ public function register(): void
+ {
+ $this->reportable(function (Throwable $e) {
+ //
+ });
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/.DS_Store b/think-backend.greaterchiangmai.com/app/Http/.DS_Store
new file mode 100644
index 0000000..fe38c0c
Binary files /dev/null and b/think-backend.greaterchiangmai.com/app/Http/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/AdminController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/AdminController.php
new file mode 100644
index 0000000..b01d38d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/AdminController.php
@@ -0,0 +1,77 @@
+where('category_id', 1)->get();
+ foreach ($subCateNoWhereElse as $item) {
+ $subCateId = $item->id;
+
+ $articleCount = ArticleModel::where('active', 1)
+ ->where('category_id', 1)
+ ->whereRaw('FIND_IN_SET(?, sub_category_ids)', [$subCateId])
+ ->count();
+
+ $data["sub_category_no_where_else"][] = [
+ 'id' => $subCateId,
+ 'name' => $item->name,
+ 'article_count' => $articleCount,
+ ];
+ }
+
+ // Query for subcategories where category_id is 2
+ $subCateQueryWhereElse = SubCategoryModel::where('active', 1)->where('category_id', 2)->get();
+ foreach ($subCateQueryWhereElse as $item) {
+ $subCateId = $item->id;
+
+ $articleCount = ArticleModel::where('active', 1)
+ ->where('category_id', 2)
+ ->whereRaw('FIND_IN_SET(?, sub_category_ids)', [$subCateId])
+ ->count();
+
+ $data["sub_category_where_else"][] = [
+ 'id' => $subCateId,
+ 'name' => $item->name,
+ 'article_count' => $articleCount,
+ ];
+ }
+
+
+ // Optionally, you can calculate the total number of articles for each set
+ $data["total_articles_no_where_else"] = array_sum(array_column($data["sub_category_no_where_else"], 'article_count'));
+ $data["total_articles_where_else"] = array_sum(array_column($data["sub_category_where_else"], 'article_count'));
+
+ $cVideo = FileVideoModel::count();
+ $cSound = FileSoundModel::count();
+ $cImage = FileImageModel::count();
+ $cDocument = FileDocumentModel::count();
+
+ return View::make('backend/dashboard')
+ ->with('countVideoView', $cVideo)
+ ->with('countSoundView', $cSound)
+ ->with('countImageView', $cImage)
+ ->with('countDocumentView', $cDocument)
+ ->with('itemView', $data);
+ }
+
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ArticleController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ArticleController.php
new file mode 100644
index 0000000..d683afd
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ArticleController.php
@@ -0,0 +1,353 @@
+fileHelper = $fileHelperAccess;
+ }
+
+ public function index($subId = null, $fromDate = null, $toDate = null)
+ {
+ $fromDateFormatted = $fromDate ? date('Y-m-d', strtotime($fromDate)) . ' 00:00:00' : null;
+ $toDateFormatted = $toDate ? date('Y-m-d', strtotime($toDate)) . ' 23:59:59' : null;
+
+ $query = ArticleModel::where('active', 1);
+
+ if ($subId != null) {
+ $query->whereRaw('FIND_IN_SET(?, sub_category_ids)', [$subId]);
+ }
+
+ if ($fromDate || $toDate) {
+ $dateConditions = [];
+ if ($fromDate) {
+ $dateConditions[] = ['article.due_date', '>=', $fromDateFormatted];
+ }
+ if ($toDate) {
+ $dateConditions[] = ['article.due_date', '<=', $toDateFormatted];
+ }
+ $query->where($dateConditions);
+ }
+
+
+ // Execute the query and get the results
+ $data = $query
+ ->where('category_id', 1)
+ ->orderBy('id', 'DESC')
+ ->get();
+
+ return View::make("backend/article/index")
+ ->with('itemView', $data)
+ ->with('fromDateView', $fromDate)
+ ->with('toDateView', $toDate);
+ }
+
+ public function add()
+ {
+ $subCategories = SubCategoryModel::where('category_id', 1)->where('active', 1)->get();
+ return View::make("backend/article/add")
+ ->with('subCategoriesView', $subCategories);
+ }
+
+ public function insert(Request $request)
+ {
+ // keep data en
+ $avatar = $request->file('avatar');
+ $sub_categories = $request->input('sub_categories');
+ $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ $description = $request->input('description');
+ $description_en = $request->input('description_en');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'sub_categories' => 'required',
+ 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ 'description' => 'required',
+ 'description_en' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("no-where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Data can't empty");
+ }
+
+ if (empty($avatar)) {
+ return Redirect::to("no-where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Please choose picture");
+ }
+ // check file
+ if (!empty($avatar)) {
+ $isFileTooLarge = $this->fileHelper->checkFileSize5MB($avatar->getSize());
+ if ($isFileTooLarge) {
+ return Redirect::to("no-where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'File too large, file less then 10MB');
+ }
+ }
+
+ $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+
+
+ // prepared data
+ $data = [
+ 'category_id' => 1,
+ 'sub_category_ids' => implode(", ", $sub_categories),
+ 'due_date' => $formattedDate,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ 'description' => $description,
+ 'description_en' => $description_en,
+ 'created_at' => new DateTime(),
+ 'updated_at' => new DateTime(),
+ ];
+
+ // insert to database
+ $result = ArticleModel::insertGetId($data);
+ if ($result > 0) { // insert success then return ID
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $result);
+ }
+
+ // redirect with message
+ return Redirect::to("no-where-else/article")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Added success');
+ } else { // insert fail
+ return Redirect::to("no-where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Added category fail');
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = ArticleModel::where('id', $id)->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("no-where-else/article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ $sub_categories = SubCategoryModel::where('category_id', 1)->where('active', 1)->get();
+ return View::make('backend/article/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data)
+ ->with('subCategoriesView', $sub_categories);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $sub_categories = $request->input('sub_categories');
+ $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ $description = $request->input('description');
+ $description_en = $request->input('description_en');
+
+ $active = $request->input('active');
+
+ $avatar = $request->file('avatar');
+ $imgReq = $avatar ? 'required|image|mimes:jpeg,png,jpg|max:10240' : '';
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'sub_categories' => 'required',
+ 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ 'description' => 'required',
+ 'description_en' => 'required',
+ 'avatar' => $imgReq
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("no-where-else/edit-article/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data cannot be empty');
+ }
+
+
+ $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+ $data = [
+ 'category_id' => 1,
+ 'sub_category_ids' => implode(", ", $sub_categories),
+ 'due_date' => $formattedDate,
+ 'active' => $active,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ 'description' => $description,
+ 'description_en' => $description_en,
+ 'active' => $active,
+ 'updated_at' => new DateTime(),
+ ];
+
+ // update to database
+ ArticleModel::where('id', $id)
+ ->update($data);
+
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $id);
+ }
+
+ // redirect with message
+ return Redirect::to("no-where-else/article")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+ ArticleModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+ public function uploadImageAvatar($request, $id)
+ {
+ // local path
+ $localPath = '/uploads/article/' . $id;
+
+ // request
+ $image = $request->file('avatar');
+
+ // rename
+ $imgName = time() . '.' . $image->extension();
+
+ // destination
+ $destinationUrl = url($localPath);
+ $destinationPath = public_path($localPath);
+
+ // create folder
+ if (File::isDirectory($destinationPath . '/original') == false) {
+ File::makeDirectory($destinationPath . '/original', 0777, true);
+ }
+ if (File::isDirectory($destinationPath . '/thumbnail') == false) {
+ File::makeDirectory($destinationPath . '/thumbnail', 0777, true);
+ }
+
+ // call lib
+ $img = Image::make($image->path());
+
+ // save original
+ $img->save($destinationPath . '/original/' . $imgName);
+
+ // save thumbnail
+ $img->resize(1200, 1200, function ($constraint) {
+ $constraint->aspectRatio();
+ })->save($destinationPath . '/thumbnail/' . $imgName);
+
+ // update db
+ $dataImage = [
+ 'image_url' => $destinationUrl,
+ 'image_name' => $imgName
+ ];
+ ArticleModel::where('id', $id)
+ ->update($dataImage);
+ }
+
+
+ // Handle file or URL upload based on ImageTool configuration
+ public function uploadImage(Request $request)
+ {
+ if ($request->hasFile('image')) {
+ return $this->handleFileUpload($request);
+ } elseif ($request->has('url')) {
+ return $this->handleUrlUpload($request->input('url'));
+ }
+
+ return response()->json(['error' => 'No valid input provided'], 400);
+ }
+
+ // Handle file upload
+ private function handleFileUpload($request)
+ {
+ $image = $request->file('image');
+ $imgName = uniqid() . time() . '.' . $image->extension();
+ $localPath = '/uploads/article/';
+
+ $destinationUrl = url($localPath . $imgName);
+ $destinationPath = public_path($localPath);
+
+ // Ensure directory exists
+ if (!File::isDirectory($destinationPath)) {
+ File::makeDirectory($destinationPath, 0777, true);
+ }
+
+ // Save original image
+ $img = Image::make($image->path());
+ $img->save($destinationPath . $imgName);
+
+ return response()->json([
+ 'success' => 1,
+ 'file' => [
+ 'url' => $destinationUrl
+ ]
+ ]);
+ }
+
+ // Handle image upload by URL
+ private function handleUrlUpload($url)
+ {
+ $imgName = uniqid() . time() . '.jpg';
+ $localPath = '/uploads/article/';
+ $destinationUrl = url($localPath . $imgName);
+ $destinationPath = public_path($localPath);
+
+ // Ensure directory exists
+ if (!File::isDirectory($destinationPath)) {
+ File::makeDirectory($destinationPath, 0777, true);
+ }
+
+ // Download image from the provided URL
+ $img = Image::make($url);
+ $img->save($destinationPath . $imgName);
+
+ return response()->json([
+ 'success' => 1,
+ 'file' => [
+ 'url' => $destinationUrl
+ ]
+ ]);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ArticleWhereElseController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ArticleWhereElseController.php
new file mode 100644
index 0000000..0ed44bc
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ArticleWhereElseController.php
@@ -0,0 +1,353 @@
+fileHelper = $fileHelperAccess;
+ }
+
+ public function index($subId = null, $fromDate = null, $toDate = null)
+ {
+ $fromDateFormatted = date('Y-m-d', strtotime($fromDate ?? date('Y-m-d'))) . ' 00:00:00';
+ $toDateFormatted = date('Y-m-d', strtotime($toDate ?? date('Y-m-d'))) . ' 23:59:59';
+
+ $query = ArticleModel::where('active', 1);
+
+ if ($subId != null) {
+ $query->whereRaw('FIND_IN_SET(?, sub_category_ids)', [$subId]);
+ }
+
+ if ($fromDate || $toDate) {
+ $dateConditions = [];
+ if ($fromDate) {
+ $dateConditions[] = ['article.due_date', '>=', $fromDateFormatted];
+ }
+ if ($toDate) {
+ $dateConditions[] = ['article.due_date', '<=', $toDateFormatted];
+ }
+ $query->where($dateConditions);
+ }
+
+ // Execute the query and get the results
+ $data = $query
+ ->where('category_id', 2)
+ ->orderBy('id', 'DESC')
+ ->get();
+
+ return View::make("backend/article-where-else/index")
+ ->with('itemView', $data)
+ ->with('fromDateView', $fromDate)
+ ->with('toDateView', $toDate);
+ }
+
+ public function add()
+ {
+ $subCategories = SubCategoryModel::where('category_id', 2)->where('active', 1)->get();
+ return View::make("backend/article-where-else/add")
+ ->with('subCategoriesView', $subCategories);
+ }
+
+ public function insert(Request $request)
+ {
+ // keep data en
+ $avatar = $request->file('avatar');
+ $sub_categories = $request->input('sub_categories');
+ $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ $description = $request->input('description');
+ $description_en = $request->input('description_en');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'sub_categories' => 'required',
+ 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ 'description' => 'required',
+ 'description_en' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Data can't empty");
+ }
+
+ if (empty($avatar)) {
+ return Redirect::to("where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Please choose picture");
+ }
+ // check file
+ if (!empty($avatar)) {
+ $isFileTooLarge = $this->fileHelper->checkFileSize5MB($avatar->getSize());
+ if ($isFileTooLarge) {
+ return Redirect::to("where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'File too large, file less then 10MB');
+ }
+ }
+
+
+ $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+
+ // prepared data
+ $data = [
+ 'category_id' => 2,
+ 'sub_category_ids' => implode(", ", $sub_categories),
+ 'due_date' => $formattedDate,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ 'description' => $description,
+ 'description_en' => $description_en,
+ 'created_at' => new DateTime(),
+ 'updated_at' => new DateTime(),
+ ];
+
+ // insert to database
+ $result = ArticleModel::insertGetId($data);
+ if ($result > 0) { // insert success then return ID
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $result);
+ }
+
+ // redirect with message
+ return Redirect::to("where-else/article")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Added success');
+ } else { // insert fail
+ return Redirect::to("where-else/add-article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Added category fail');
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = ArticleModel::where('id', $id)->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("where-else/article")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ $sub_categories = SubCategoryModel::where('category_id', 2)->where('active', 1)->get();
+ return View::make('backend/article-where-else/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data)
+ ->with('subCategoriesView', $sub_categories);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $sub_categories = $request->input('sub_categories');
+ $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ $description = $request->input('description');
+ $description_en = $request->input('description_en');
+
+ $active = $request->input('active');
+
+ $avatar = $request->file('avatar');
+ $imgReq = $avatar ? 'required|image|mimes:jpeg,png,jpg|max:10240' : '';
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'sub_categories' => 'required',
+ 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ 'description' => 'required',
+ 'description_en' => 'required',
+ 'avatar' => $imgReq
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("where-else/edit-article/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data cannot be empty');
+ }
+
+
+ $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+ $data = [
+ 'category_id' => 2,
+ 'sub_category_ids' => implode(", ", $sub_categories),
+ 'due_date' => $formattedDate,
+ 'active' => $active,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ 'description' => $description,
+ 'description_en' => $description_en,
+ 'active' => $active,
+ 'updated_at' => new DateTime(),
+ ];
+
+ // update to database
+ ArticleModel::where('id', $id)
+ ->update($data);
+
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $id);
+ }
+
+ // redirect with message
+ return Redirect::to("where-else/article")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+ ArticleModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+ public function uploadImageAvatar($request, $id)
+ {
+ // local path
+ $localPath = '/uploads/article/' . $id;
+
+ // request
+ $image = $request->file('avatar');
+
+ // rename
+ $imgName = time() . '.' . $image->extension();
+
+ // destination
+ $destinationUrl = url($localPath);
+ $destinationPath = public_path($localPath);
+
+ // create folder
+ if (File::isDirectory($destinationPath . '/original') == false) {
+ File::makeDirectory($destinationPath . '/original', 0777, true);
+ }
+ if (File::isDirectory($destinationPath . '/thumbnail') == false) {
+ File::makeDirectory($destinationPath . '/thumbnail', 0777, true);
+ }
+
+ // call lib
+ $img = Image::make($image->path());
+
+ // save original
+ $img->save($destinationPath . '/original/' . $imgName);
+
+ // save thumbnail
+ $img->resize(1200, 1200, function ($constraint) {
+ $constraint->aspectRatio();
+ })->save($destinationPath . '/thumbnail/' . $imgName);
+
+ // update db
+ $dataImage = [
+ 'image_url' => $destinationUrl,
+ 'image_name' => $imgName
+ ];
+ ArticleModel::where('id', $id)
+ ->update($dataImage);
+ }
+
+
+ // Handle file or URL upload based on ImageTool configuration
+ public function uploadImage(Request $request)
+ {
+ if ($request->hasFile('image')) {
+ return $this->handleFileUpload($request);
+ } elseif ($request->has('url')) {
+ return $this->handleUrlUpload($request->input('url'));
+ }
+
+ return response()->json(['error' => 'No valid input provided'], 400);
+ }
+
+ // Handle file upload
+ private function handleFileUpload($request)
+ {
+ $image = $request->file('image');
+ $imgName = uniqid() . time() . '.' . $image->extension();
+ $localPath = '/uploads/article/';
+
+ $destinationUrl = url($localPath . $imgName);
+ $destinationPath = public_path($localPath);
+
+ // Ensure directory exists
+ if (!File::isDirectory($destinationPath)) {
+ File::makeDirectory($destinationPath, 0777, true);
+ }
+
+ // Save original image
+ $img = Image::make($image->path());
+ $img->save($destinationPath . $imgName);
+
+ return response()->json([
+ 'success' => 1,
+ 'file' => [
+ 'url' => $destinationUrl
+ ]
+ ]);
+ }
+
+ // Handle image upload by URL
+ private function handleUrlUpload($url)
+ {
+ $imgName = uniqid() . time() . '.jpg';
+ $localPath = '/uploads/article/';
+ $destinationUrl = url($localPath . $imgName);
+ $destinationPath = public_path($localPath);
+
+ // Ensure directory exists
+ if (!File::isDirectory($destinationPath)) {
+ File::makeDirectory($destinationPath, 0777, true);
+ }
+
+ // Download image from the provided URL
+ $img = Image::make($url);
+ $img->save($destinationPath . $imgName);
+
+ return response()->json([
+ 'success' => 1,
+ 'file' => [
+ 'url' => $destinationUrl
+ ]
+ ]);
+ }
+
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/AuthenticateController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/AuthenticateController.php
new file mode 100644
index 0000000..47d43bf
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/AuthenticateController.php
@@ -0,0 +1,226 @@
+exceptionPage = response()->view('errors/500', [], 500);
+ $this->emailHelper = $emailHelpAccess;
+ }
+
+ public function index()
+ {
+ if (!Auth::check()) {
+ return Redirect::to('login');
+ } else {
+ return Redirect::to('dashboard');
+ }
+ }
+
+ /* Login */
+ public function login()
+ {
+ // logged
+ if (!Auth::check()) {
+ return View::make('backend/login');
+ } else {
+ return Redirect::to('dashboard');
+ }
+ }
+
+ /* Authenticate */
+ public function authenticate(Request $request)
+ {
+ $email = $request->input('email');
+ $password = $request->input('password');
+ $rememberMe = $request->input('remember_me');
+
+ if ($email == '' && $password == '') {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Email and Password is required"
+ ]);
+ } else if ($email == '') {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Email is required"
+ ]);
+ } else if ($password == '') {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Password is required"
+ ]);
+ }
+
+ $us = UserModel::where('email', $email)
+ ->first();
+ if ($us == null) {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Email was not found"
+ ]);
+ }
+
+ if (Auth::attempt(['email' => $email, 'password' => $password], $rememberMe)) {
+ return response()->json([
+ 'status' => "Success",
+ 'message' => "Success"
+ ]);
+ } else {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Email or Password was incorrect"
+ ]);
+ }
+ }
+
+ public function logout()
+ {
+ Auth::logout();
+ return Redirect::to('');
+ }
+
+ public function forgotPassword()
+ {
+ return View::make('backend/forgot_password');
+ }
+
+ public function updateForgotPassword(Request $request)
+ {
+ if ($request->isMethod('post')) {
+
+ // get data
+ $email = $request->input('email');
+
+ // get user by email
+ try {
+
+ $userObject = UserModel::where('email', $email)
+ ->first();
+
+ // not found with email
+ if (is_null($userObject)) {
+
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Not found an Email"
+ ]);
+ }
+
+ // not an admin
+ if ($userObject->role == 1) {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "No permission"
+ ]);
+ }
+
+ // create token
+ $token = Str::random(10);
+ $dataUpdate = [
+ 'forgot_password_token' => $token,
+ 'forgot_password_date' => new DateTime()
+ ];
+
+ // update token
+ UserModel::where('id', $userObject->id)->update($dataUpdate);
+
+ // send Email
+ if (!env('TEST_LOCAL')) {
+ $this->emailHelper->sendEmailForgotPassword($email, $token);
+ }
+
+ return response()->json([
+ 'status' => "Success",
+ 'message' => "Please check your email"
+ ]);
+ } catch (Exception $e) {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Forgot password unsuccessfully"
+ ]);
+ }
+ } else {
+ return View::make('backend/forgot_password');
+ }
+ }
+
+ public function resetPassword($token)
+ {
+ // check token in database
+ try {
+ $userObjectByToken = UserModel::where('forgot_password_token', $token)
+ ->first();
+
+ // not found with email
+ if ($userObjectByToken == null) {
+ return redirect('no-permission')
+ ->with('messageFail', 'Fail')
+ ->with('messageDetail', 'No have permission');
+ }
+
+ return View::make('backend/reset_password')
+ ->with('userIdView', $userObjectByToken->id ?? 1);
+ } catch (Exception $e) {
+ // return response()->json([
+ // 'status' => "Fail",
+ // 'message' => "Reset password unsuccessfully"
+ // ]);
+ }
+ }
+
+ public function updateResetPassword(Request $request)
+ {
+ $userId = $request->input('userId');
+ $newPassword = $request->input('password');
+
+ try {
+ $userObj = UserModel::where('id', $userId)
+ ->first();
+
+ $data = [
+ 'password' => Hash::make($newPassword),
+ 'forgot_password_token' => '',
+ 'forgot_password_date' => null
+ ];
+
+
+ // set new password
+ UserModel::where('id', $userId)->update($data);
+
+ // send Email new password
+ if (!env('TEST_LOCAL')) {
+ $this->emailHelper->sendEmailResetPassword($userObj->email, $newPassword);
+ }
+
+ return response()->json([
+ 'status' => "Success",
+ 'message' => "Reset password success"
+ ]);
+ } catch (Exception $e) {
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Reset password unsuccessfully"
+ ]);
+ }
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/CategoryController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/CategoryController.php
new file mode 100644
index 0000000..a1307d8
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/CategoryController.php
@@ -0,0 +1,275 @@
+fileHelper = $fileHelperAccess;
+ }
+
+ public function index()
+ {
+ $data = CategoryModel::get();
+ return View::make("backend/category/index")
+ ->with('itemView', $data);
+ }
+
+ public function add()
+ {
+ return View::make("backend/category/add");
+ }
+
+ public function insert(Request $request)
+ {
+ // keep data en
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ $avatar = $request->file('avatar');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'name' => 'required',
+ 'name_en' => 'required',
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("category/add")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Data can't empty");
+ }
+
+ // Image empty
+ if (empty($avatar)) {
+ return Redirect::to("category/add")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Please choose picture");
+ }
+
+ // Check name exist
+ $countExist = CategoryModel::where('name', '=', $name)
+ ->orWhere('name_en', '=', $name_en)
+ ->count();
+
+ if ($countExist > 0) {
+ return Redirect::to("category/add")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Name already exist');
+ }
+
+ // check file
+ if (!empty($avatar)) {
+ $isFileTooLarge = $this->fileHelper->checkFileSize5MB($avatar->getSize());
+ if ($isFileTooLarge) {
+ return Redirect::to("category/add")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'File too large, file less then 10MB');
+ }
+ }
+
+
+ // prepared data
+ $data = [
+ 'name' => $name,
+ 'name_en' => $name_en,
+ 'active' => 1,
+ 'created_at' => new DateTime(),
+ 'updated_at' => new DateTime(),
+ ];
+
+
+ // insert to database
+ $result = CategoryModel::insertGetId($data);
+ if ($result > 0) { // insert success then return ID
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImage($request, $result);
+ }
+
+ // redirect with message
+ return Redirect::to("category")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Added success');
+ } else { // insert fail
+ return Redirect::to("category/add")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Added category fail');
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = CategoryModel::where('id', $id)->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/category/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ $active = $request->input('active');
+
+ $avatar = $request->file('avatar');
+ $imgReq = $avatar ? 'required|image|mimes:jpeg,png,jpg|max:10240' : '';
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'name' => 'required',
+ 'name_en' => 'required',
+ 'avatar' => $imgReq
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("category/edit/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data cannot be empty');
+ }
+
+ // Exist
+ $countExist = CategoryModel::where('id', '!=', $id)
+ ->where(function ($query) use ($name, $name_en) {
+ $query->where('name', '=', $name)
+ ->orWhere('name_en', '=', $name_en);
+ })
+ ->count();
+
+
+ if ($countExist > 0) {
+
+ return Redirect::to("category/edit/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Name already exist');
+ }
+
+ $data = [
+ 'name' => $name,
+ 'name_en' => $name_en,
+ 'active' => $active,
+ 'updated_at' => new DateTime(),
+ ];
+
+ // update to database
+ CategoryModel::where('id', $id)
+ ->update($data);
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImage($request, $id);
+ }
+
+ // redirect with message
+ return Redirect::to("category")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+
+ // delete category in database
+ $result = CategoryModel::where('id', '=', $id)
+ ->delete();
+ if ($result) { // return true, success
+
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+
+ // return Redirect::to("category")
+ // ->with("messageSuccess", "Success")
+ // ->with("messageDetail", 'Deleted success');
+ } else { // return false, fail
+ return response()->json([
+ 'status' => false,
+ 'message' => "Deleted fail"
+ ]);
+ // return Redirect::to("category")
+ // ->withInput()
+ // ->with("messageFail", "Fail")
+ // ->with("messageDetail", 'Deleted fail');
+ }
+ }
+
+ public function uploadImage($request, $id)
+ {
+ // local path
+ $localPath = '/uploads/category/' . $id;
+
+ // request
+ $image = $request->file('avatar');
+
+ // rename
+ $imgName = time() . '.' . $image->extension();
+
+ // destination
+ $destinationUrl = url($localPath);
+ $destinationPath = public_path($localPath);
+
+ // create folder
+ if (File::isDirectory($destinationPath . '/original') == false) {
+ File::makeDirectory($destinationPath . '/original', 0777, true);
+ }
+ if (File::isDirectory($destinationPath . '/thumbnail') == false) {
+ File::makeDirectory($destinationPath . '/thumbnail', 0777, true);
+ }
+
+ // call lib
+ $img = Image::make($image->path());
+
+ // save original
+ $img->save($destinationPath . '/original/' . $imgName);
+
+ // save thumbnail
+ $img->resize(1200, 1200, function ($constraint) {
+ $constraint->aspectRatio();
+ })->save($destinationPath . '/thumbnail/' . $imgName);
+
+ // update db
+ $dataImage = [
+ 'image_url' => $destinationUrl,
+ 'image_name' => $imgName
+ ];
+ CategoryModel::where('id', $id)
+ ->update($dataImage);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/DocumentController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/DocumentController.php
new file mode 100644
index 0000000..b20e083
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/DocumentController.php
@@ -0,0 +1,300 @@
+orderBy('id', 'DESC')
+ ->get();
+
+ $data = FileDocumentModel::where('folder_id', '=', null)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urlsDocument = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/document/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urlsDocument);
+ }
+
+ public function folder($folderId)
+ {
+ $folder = FolderModel::where('id', $folderId)->first();
+ $data = FileDocumentModel::where('folder_id', $folderId)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urls = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/document/folder/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urls);
+ }
+
+ public function add($folderId = null)
+ {
+ return View::make("backend/document/add")
+ ->with('folderIdView', $folderId);
+ }
+
+ public function insert(Request $request)
+ {
+ $validated = $request->validate([
+ 'fileName' => 'required|string'
+ ]);
+
+ // prepared data
+ $folderId = $request->input('folderId');
+
+ $data = [
+ 'folder_id' => null,
+ 'user_id' => Auth::user()->id,
+ 'name' => $validated['fileName'],
+ 'created_at' => new DateTime(),
+ ];
+
+ // If $folderId is not null, add it to the $data array
+ if ($folderId !== null) {
+ $data['folder_id'] = $folderId;
+ }
+
+ $id = FileDocumentModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return response()->json(['message' => 'File name saved successfully'], 200);
+ } else { // insert fail
+ return response()->json(['message' => 'Failed to save file name'], 500);
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = FileDocumentModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("document")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/document/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function view($id)
+ {
+ // get by id
+ $data = FileDocumentModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("document")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/document/view')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+
+ // redirect with message
+ return Redirect::to("document")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+ FileDocumentModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+ // Folder
+
+ public function addFolder()
+ {
+ return View::make("backend/document/folder/add");
+ }
+
+ public function insertFolder(Request $request)
+ {
+ $validated = $request->validate([
+ 'name' => 'required|string'
+ ]);
+
+ // exist folder name
+ $exist = FolderModel::where('name', $validated['name'])->where('folder_type', 4)->first();
+ if ($exist != null) {
+ return Redirect::to("document")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Folder already exist');
+ }
+
+
+ // prepared data
+ $data = [
+ 'name' => $validated['name'],
+ 'folder_type' => 4,
+ 'created_at' => new DateTime(),
+ ];
+ $id = FolderModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return Redirect::to("document")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Create folder success');
+ } else { // insert fail
+ return Redirect::to("document")
+ ->withInput()
+ ->with("messageSuccess", "Fail")
+ ->with("messageDetail", 'Create folder unsuccess');
+ }
+ }
+
+ public function editFolder($id)
+ {
+ // get by id
+ $data = FolderModel::where('id', $id)
+ ->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("document/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/document/folder/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function updateFolder(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $name = $request->input('name');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'name' => 'required'
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("document/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data can not be empty');
+ }
+
+ // check existing
+ $exist = FolderModel::where('id', '!=', $id)
+ ->where('folder_type', 4)
+ ->where('name', $name)
+ ->count();
+ if ($exist > 0
+ ) {
+ return Redirect::to("document/edit-folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Name already exist');
+ }
+
+ $data = [
+ 'name' => $name,
+ ];
+
+ FolderModel::where('id', $id)->update($data);
+
+ return Redirect::to("document")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function deleteFolder(Request $request)
+ {
+ $id = $request->input('item_id');
+ $hasFilesInFolder = FileDocumentModel::where('folder_id', $id)->count();
+ if ($hasFilesInFolder > 0) { // not found
+ return response()->json([
+ 'status' => false,
+ 'message' => "Can not delete already in folder"
+ ]);
+ } else {
+
+ // delete user in database
+ FolderModel::where('id', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Delete successfully"
+ ]);
+ }
+
+ }
+
+ public function downloadFolder($folderId)
+ {
+ $files = FileDocumentModel::where('folder_id', $folderId)->get();
+ $zip = new ZipArchive;
+ $folder = FolderModel::where('id', $folderId)->first();
+ $zipFileName = $folder->name . '.zip';
+ $zipPath = storage_path('app/' . $zipFileName);
+
+ if ($zip->open($zipPath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
+ foreach ($files as $file) {
+ $filePath = env('R2_SCHEMA_URL') . $file->name;
+ $fileContents = file_get_contents($filePath); // Download each file from R2
+ $zip->addFromString($file->name, $fileContents);
+ }
+ $zip->close();
+ }
+
+ return response()->download($zipPath)->deleteFileAfterSend(true);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ImageController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ImageController.php
new file mode 100644
index 0000000..35d81ab
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/ImageController.php
@@ -0,0 +1,304 @@
+orderBy('id', 'DESC')
+ ->get();
+
+ $data = FileImageModel::orderBy('id', 'DESC')
+ ->where('folder_id', '=', null)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urlsImage = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/image/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urlsImage);
+ }
+
+ public function folder($folderId)
+ {
+ $folder = FolderModel::where('id', $folderId)->first();
+ $data = FileImageModel::where('folder_id', $folderId)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urls = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/image/folder/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urls);
+ }
+
+ public function add($folderId = null)
+ {
+ return View::make("backend/image/add")
+ ->with('folderIdView', $folderId);
+ }
+
+ public function insert(Request $request)
+ {
+ $validated = $request->validate([
+ 'fileName' => 'required|string'
+ ]);
+
+ // prepared data
+ $folderId = $request->input('folderId');
+ $data = [
+ 'folder_id' => null,
+ 'user_id' => Auth::user()->id,
+ 'name' => $validated['fileName'],
+ 'created_at' => new DateTime(),
+ ];
+ // If $folderId is not null, add it to the $data array
+ if ($folderId !== null) {
+ $data['folder_id'] = $folderId;
+ }
+
+ $id = FileImageModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return response()->json(['message' => 'File name saved successfully'], 200);
+ } else { // insert fail
+ return response()->json(['message' => 'Failed to save file name'], 500);
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = FileImageModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("image")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/image/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function view($id)
+ {
+ // get by id
+ $data = FileImageModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("image")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/image/view')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+
+ // redirect with message
+ return Redirect::to("image")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+ FileImageModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+
+ // Folder
+
+ public function addFolder()
+ {
+ return View::make("backend/image/folder/add");
+ }
+
+ public function insertFolder(Request $request)
+ {
+ $validated = $request->validate([
+ 'name' => 'required|string'
+ ]);
+
+ // exist folder name
+ $exist = FolderModel::where('name', $validated['name'])
+ ->where('folder_type', 3)
+ ->first();
+
+ if ($exist != null) {
+ return Redirect::to("image")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Folder already exist');
+ }
+
+
+ // prepared data
+ $data = [
+ 'name' => $validated['name'],
+ 'folder_type' => 3,
+ 'created_at' => new DateTime(),
+ ];
+
+ $id = FolderModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return Redirect::to("image")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Create folder success');
+ } else { // insert fail
+ return Redirect::to("image")
+ ->withInput()
+ ->with("messageSuccess", "Fail")
+ ->with("messageDetail", 'Create folder unsuccess');
+ }
+ }
+
+ public function editFolder($id)
+ {
+ // get by id
+ $data = FolderModel::where('id', $id)
+ ->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("image/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/image/folder/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function updateFolder(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $name = $request->input('name');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'name' => 'required'
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("image/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data can not be empty');
+ }
+
+ // check existing
+ $exist = FolderModel::where('id', '!=', $id)
+ ->where('folder_type', 3)
+ ->where('name', $name)
+ ->count();
+
+ if (
+ $exist > 0
+ ) {
+ return Redirect::to("image/edit-folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Name already exist');
+ }
+
+ $data = [
+ 'name' => $name,
+ ];
+
+ FolderModel::where('id', $id)->update($data);
+
+ return Redirect::to("image")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function deleteFolder(Request $request)
+ {
+ $id = $request->input('item_id');
+ $hasFilesInFolder = FileImageModel::where('folder_id', $id)->count();
+ if ($hasFilesInFolder > 0) { // not found
+ return response()->json([
+ 'status' => false,
+ 'message' => "Can not delete already in folder"
+ ]);
+ } else {
+ // delete user in database
+ FolderModel::where('id', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Delete successfully"
+ ]);
+ }
+ }
+
+ public function downloadFolder($folderId)
+ {
+ $files = FileImageModel::where('folder_id', $folderId)->get();
+ $zip = new ZipArchive;
+ $folder = FolderModel::where('id', $folderId)->first();
+ $zipFileName = $folder->name . '.zip';
+ $zipPath = storage_path('app/' . $zipFileName);
+
+ if ($zip->open($zipPath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
+ foreach ($files as $file) {
+ $filePath = env('R2_SCHEMA_URL') . $file->name;
+ $fileContents = file_get_contents($filePath); // Download each file from R2
+ $zip->addFromString($file->name, $fileContents);
+ }
+ $zip->close();
+ }
+
+ return response()->download($zipPath)->deleteFileAfterSend(true);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SoundController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SoundController.php
new file mode 100644
index 0000000..90e6991
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SoundController.php
@@ -0,0 +1,303 @@
+orderBy('id', 'DESC')
+ ->get();
+
+ $data = FileSoundModel::orderBy('id', 'DESC')
+ ->where('folder_id', '=', null)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urlsSound = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/sound/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urlsSound);
+ }
+
+ public function folder($folderId)
+ {
+ $folder = FolderModel::where('id', $folderId)->first();
+ $data = FileSoundModel::where('folder_id', $folderId)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urls = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/sound/folder/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urls);
+ }
+
+ public function add($folderId = null)
+ {
+ return View::make("backend/sound/add")
+ ->with('folderIdView', $folderId);
+ }
+
+ public function insert(Request $request)
+ {
+ $validated = $request->validate([
+ 'fileName' => 'required|string'
+ ]);
+
+ // prepared data
+ $folderId = $request->input('folderId');
+ $data = [
+ 'folder_id' => null,
+ 'user_id' => Auth::user()->id,
+ 'name' => $validated['fileName'],
+ 'created_at' => new DateTime(),
+ ];
+ // If $folderId is not null, add it to the $data array
+ if ($folderId !== null) {
+ $data['folder_id'] = $folderId;
+ }
+
+ $id = FileSoundModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return response()->json(['message' => 'File name saved successfully'], 200);
+ } else { // insert fail
+ return response()->json(['message' => 'Failed to save file name'], 500);
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = FileSoundModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("sound")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/sound/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function view($id)
+ {
+ // get by id
+ $data = FileSoundModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("sound")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/sound/view')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+
+ // redirect with message
+ return Redirect::to("sound")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+ FileSoundModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+
+ // Folder
+ public function addFolder()
+ {
+ return View::make("backend/sound/folder/add");
+ }
+
+ public function insertFolder(Request $request)
+ {
+ $validated = $request->validate([
+ 'name' => 'required|string'
+ ]);
+
+ // exist folder name
+ $exist = FolderModel::where('name', $validated['name'])
+ ->where('folder_type', 2)
+ ->first();
+
+ if ($exist != null) {
+ return Redirect::to("sound")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Folder already exist');
+ }
+
+
+ // prepared data
+ $data = [
+ 'name' => $validated['name'],
+ 'folder_type' => 2,
+ 'created_at' => new DateTime(),
+ ];
+ $id = FolderModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return Redirect::to("sound")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Create folder success');
+ } else { // insert fail
+ return Redirect::to("sound")
+ ->withInput()
+ ->with("messageSuccess", "Fail")
+ ->with("messageDetail", 'Create folder unsuccess');
+ }
+ }
+
+ public function editFolder($id)
+ {
+ // get by id
+ $data = FolderModel::where('id', $id)
+ ->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("sound/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/sound/folder/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function updateFolder(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $name = $request->input('name');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'name' => 'required'
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("sound/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data can not be empty');
+ }
+
+ // check existing
+ $exist = FolderModel::where('id', '!=', $id)
+ ->where('folder_type', 2)
+ ->where('name', $name)
+ ->count();
+ if ($exist > 0
+ ) {
+ return Redirect::to("sound/edit-folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Name already exist');
+ }
+
+ $data = [
+ 'name' => $name,
+ ];
+
+ FolderModel::where('id', $id)->update($data);
+
+ return Redirect::to("sound")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function deleteFolder(Request $request)
+ {
+ $id = $request->input('item_id');
+ $hasFilesInFolder = FileSoundModel::where('folder_id', $id)->count();
+ if ($hasFilesInFolder > 0) { // not found
+ return response()->json([
+ 'status' => false,
+ 'message' => "Can not delete already in folder"
+ ]);
+ } else {
+
+ // delete user in database
+ FolderModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Delete successfully"
+ ]);
+ }
+
+ }
+
+ public function downloadFolder($folderId)
+ {
+ $files = FileSoundModel::where('folder_id', $folderId)->get();
+ $zip = new ZipArchive;
+ $folder = FolderModel::where('id', $folderId)->first();
+ $zipFileName = $folder->name . '.zip';
+ $zipPath = storage_path('app/' . $zipFileName);
+
+ if ($zip->open($zipPath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
+ foreach ($files as $file) {
+ $filePath = env('R2_SCHEMA_URL') . $file->name;
+ $fileContents = file_get_contents($filePath); // Download each file from R2
+ $zip->addFromString($file->name, $fileContents);
+ }
+ $zip->close();
+ }
+
+ return response()->download($zipPath)->deleteFileAfterSend(true);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SubCategoryController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SubCategoryController.php
new file mode 100644
index 0000000..32a5402
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SubCategoryController.php
@@ -0,0 +1,278 @@
+fileHelper = $fileHelperAccess;
+ }
+
+ public function index($fromDate = null, $toDate = null)
+ {
+ // $fromDateFormatted = date('Y-m-d', strtotime($fromDate ?? date('Y-m-d'))) . ' 00:0:00';
+ // $toDateFormatted = date('Y-m-d', strtotime($toDate ?? date('Y-m-d'))) . ' 23:59:59';
+
+ // $dateConditions = [
+ // ['sub_category.created_at', '>=', $fromDateFormatted],
+ // ['sub_category.created_at', '<=', $toDateFormatted],
+ // ];
+
+ $data = SubCategoryModel::
+ where('category_id', 1)
+ ->where('active', 1)
+ // ->where($dateConditions)
+ ->get();
+
+ return View::make("backend/sub-category/index")
+ ->with('itemView', $data)
+ ->with('fromDateView', $fromDate)
+ ->with('toDateView', $toDate);
+ }
+
+ public function add()
+ {
+ return View::make("backend/sub-category/add");
+ }
+
+ public function insert(Request $request)
+ {
+ // keep data en
+ $avatar = $request->file('avatar');
+ // $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ // $description = $request->input('description');
+ // $description_en = $request->input('description_en');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ // 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ // 'description' => 'required',
+ // 'description_en' => 'required',
+ ]);
+
+
+ // $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ // $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+
+ if ($validator->fails()) {
+ return Redirect::to("no-where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Data can't empty");
+ }
+
+ if (empty($avatar)) {
+ return Redirect::to("no-where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Please choose picture");
+ }
+
+ // check file
+ if (!empty($avatar)) {
+ $isFileTooLarge = $this->fileHelper->checkFileSize5MB($avatar->getSize());
+ if ($isFileTooLarge) {
+ return Redirect::to("no-where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'File too large, file less then 10MB');
+ }
+ }
+
+ // prepared data
+ $data = [
+ 'category_id' => 1,
+ // 'due_date' => $formattedDate,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ // 'description' => $description,
+ // 'description_en' => $description_en,
+ 'created_at' => new DateTime(),
+ 'updated_at' => new DateTime(),
+ ];
+
+ // insert to database
+ $result = SubCategoryModel::insertGetId($data);
+ if ($result > 0) { // insert success then return ID
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $result);
+ }
+
+ // redirect with message
+ return Redirect::to("no-where-else/sub-category")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Added success');
+ } else { // insert fail
+ return Redirect::to("no-where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Added category fail');
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = SubCategoryModel::where('id', $id)->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("no-where-else/sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/sub-category/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ // $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ // $description = $request->input('description');
+ // $description_en = $request->input('description_en');
+
+ $active = $request->input('active');
+
+ $avatar = $request->file('avatar');
+ $imgReq = $avatar ? 'required|image|mimes:jpeg,png,jpg|max:10240' : '';
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ // 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ // 'description' => 'required',
+ // 'description_en' => 'required',
+ 'avatar' => $imgReq
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("edit-sub-category/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data cannot be empty');
+ }
+
+
+ // $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ // $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+
+ $data = [
+ 'category_id' => 1,
+ // 'due_date' => $formattedDate,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ // 'description' => $description,
+ // 'description_en' => $description_en,
+ 'active' => $active,
+ 'updated_at' => new DateTime(),
+ ];
+
+ // update to database
+ SubCategoryModel::where('id', $id)
+ ->update($data);
+
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $id);
+ }
+
+ // redirect with message
+ return Redirect::to("no-where-else/sub-category")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+
+ // delete category in database
+ $result = SubCategoryModel::where('id', '=', $id)
+ ->update(['active' => 0]);
+
+ if ($result) { // return true, success
+
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+
+ return response()->json([
+ 'status' => false,
+ 'message' => "Deleted fail"
+ ]);
+
+ }
+ }
+
+ public function uploadImageAvatar($request, $id)
+ {
+ // local path
+ $localPath = '/uploads/no-where-else/sub-category/' . $id;
+
+ // request
+ $image = $request->file('avatar');
+
+ // rename
+ $imgName = time() . '.' . $image->extension();
+
+ // destination
+ $destinationUrl = url($localPath);
+ $destinationPath = public_path($localPath);
+
+ // create folder
+ if (File::isDirectory($destinationPath . '/original') == false) {
+ File::makeDirectory($destinationPath . '/original', 0777, true);
+ }
+ if (File::isDirectory($destinationPath . '/thumbnail') == false) {
+ File::makeDirectory($destinationPath . '/thumbnail', 0777, true);
+ }
+
+ // call lib
+ $img = Image::make($image->path());
+
+ // save original
+ $img->save($destinationPath . '/original/' . $imgName);
+
+ // save thumbnail
+ $img->resize(1200, 1200, function ($constraint) {
+ $constraint->aspectRatio();
+ })->save($destinationPath . '/thumbnail/' . $imgName);
+
+ // update db
+ $dataImage = [
+ 'image_url' => $destinationUrl,
+ 'image_name' => $imgName
+ ];
+ SubCategoryModel::where('id', $id)
+ ->update($dataImage);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SubCategoryWhereElseController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SubCategoryWhereElseController.php
new file mode 100644
index 0000000..330f344
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/SubCategoryWhereElseController.php
@@ -0,0 +1,268 @@
+fileHelper = $fileHelperAccess;
+ }
+
+ public function index($fromDate = null, $toDate = null)
+ {
+ // $fromDateFormatted = date('Y-m-d', strtotime($fromDate ?? date('Y-m-d'))) . ' 00:0:00';
+ // $toDateFormatted = date('Y-m-d', strtotime($toDate ?? date('Y-m-d'))) . ' 23:59:59';
+
+ // $dateConditions = [
+ // ['sub_category.created_at', '>=', $fromDateFormatted],
+ // ['sub_category.created_at', '<=', $toDateFormatted],
+ // ];
+
+ $data = SubCategoryModel::where('category_id', '2')
+ ->where('active', '1')
+ // ->where($dateConditions)
+ ->get();
+
+ return View::make("backend/sub-category-where-else/index")
+ ->with('itemView', $data)
+ ->with('fromDateView', $fromDate)
+ ->with('toDateView', $toDate);
+ }
+
+ public function add()
+ {
+ return View::make("backend/sub-category-where-else/add");
+ }
+
+ public function insert(Request $request)
+ {
+ // keep data en
+ $avatar = $request->file('avatar');
+ // $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ // $description = $request->input('description');
+ // $description_en = $request->input('description_en');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ // 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ // 'description' => 'required',
+ // 'description_en' => 'required',
+ ]);
+
+
+ // $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ // $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+
+ if ($validator->fails()) {
+ return Redirect::to("where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Data can't empty");
+ }
+
+ if (empty($avatar)) {
+ return Redirect::to("where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Please choose picture");
+ }
+
+ // check file
+ if (!empty($avatar)) {
+ $isFileTooLarge = $this->fileHelper->checkFileSize5MB($avatar->getSize());
+ if ($isFileTooLarge) {
+ return Redirect::to("where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'File too large, file less then 10MB');
+ }
+ }
+
+ // prepared data
+ $data = [
+ 'category_id' => 2,
+ // 'due_date' => $formattedDate,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ // 'description' => $description,
+ // 'description_en' => $description_en,
+ 'created_at' => new DateTime(),
+ 'updated_at' => new DateTime(),
+ ];
+
+ // insert to database
+ $result = SubCategoryModel::insertGetId($data);
+ if ($result > 0) { // insert success then return ID
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $result);
+ }
+
+ // redirect with message
+ return Redirect::to("where-else/sub-category")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Added success');
+ } else { // insert fail
+ return Redirect::to("where-else/add-sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Added category fail');
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = SubCategoryModel::where('id', $id)->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("where-else/sub-category")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/sub-category-where-else/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ // $due_date = $request->input('due_date');
+ $name = $request->input('name');
+ $name_en = $request->input('name_en');
+ // $description = $request->input('description');
+ // $description_en = $request->input('description_en');
+
+ $active = $request->input('active');
+
+ $avatar = $request->file('avatar');
+ $imgReq = $avatar ? 'required|image|mimes:jpeg,png,jpg|max:10240' : '';
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ // 'due_date' => 'required',
+ 'name' => 'required',
+ 'name_en' => 'required',
+ // 'description' => 'required',
+ // 'description_en' => 'required',
+ 'avatar' => $imgReq
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("edit-sub-category/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data cannot be empty');
+ }
+
+
+ // $dateObject = DateTime::createFromFormat('d-m-Y', $due_date);
+ // $formattedDate = $dateObject->format('Y-m-d'); // Convert to YYYY-MM-DD
+ $data = [
+ 'category_id' => 2,
+ // 'due_date' => $formattedDate,
+ 'name' => $name,
+ 'name_en' => $name_en,
+ // 'description' => $description,
+ // 'description_en' => $description_en,
+ 'active' => $active,
+ 'updated_at' => new DateTime(),
+ ];
+
+ // update to database
+ SubCategoryModel::where('id', $id)
+ ->update($data);
+
+ if (!empty($avatar)) {
+ $this->uploadImageAvatar($request, $id);
+ }
+
+ // redirect with message
+ return Redirect::to("where-else/sub-category")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+
+ // delete sub
+ SubCategoryModel::where('id', '=', $id)->delete();
+
+ // delete article
+
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+ public function uploadImageAvatar($request, $id)
+ {
+ // local path
+ $localPath = '/uploads/where-else/sub-category/' . $id;
+
+ // request
+ $image = $request->file('avatar');
+
+ // rename
+ $imgName = time() . '.' . $image->extension();
+
+ // destination
+ $destinationUrl = url($localPath);
+ $destinationPath = public_path($localPath);
+
+ // create folder
+ if (File::isDirectory($destinationPath . '/original') == false) {
+ File::makeDirectory($destinationPath . '/original', 0777, true);
+ }
+ if (File::isDirectory($destinationPath . '/thumbnail') == false) {
+ File::makeDirectory($destinationPath . '/thumbnail', 0777, true);
+ }
+
+ // call lib
+ $img = Image::make($image->path());
+
+ // save original
+ $img->save($destinationPath . '/original/' . $imgName);
+
+ // save thumbnail
+ $img->resize(1200, 1200, function ($constraint) {
+ $constraint->aspectRatio();
+ })->save($destinationPath . '/thumbnail/' . $imgName);
+
+ // update db
+ $dataImage = [
+ 'image_url' => $destinationUrl,
+ 'image_name' => $imgName
+ ];
+ SubCategoryModel::where('id', $id)
+ ->update($dataImage);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/UserController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/UserController.php
new file mode 100644
index 0000000..5723df3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/UserController.php
@@ -0,0 +1,304 @@
+with('userView', $userObj);
+ }
+
+ public function add()
+ {
+ return View::make("backend/user/add");
+ }
+
+ public function insert(Request $request)
+ {
+ // keep data en
+ $role = $request->input('role');
+ $first_name = $request->input('first_name');
+ $last_name = $request->input('last_name');
+ $email = $request->input('email');
+ $password = $request->input('password');
+
+ $avatar = $request->file('avatar');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'email' => 'required|email',
+ 'first_name' => 'required',
+ 'last_name' => 'required',
+ 'password' => 'required',
+ 'avatar' => 'required|image|mimes:jpeg,png,jpg|max:10240',
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data can not be empty');
+ }
+
+ // check existing email
+ $e = UserModel::where('email', $email)->count();
+ if ($e > 0) {
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Email already exist');
+ }
+
+ // prepared data
+ $data = [
+ 'first_name' => $first_name,
+ 'last_name' => $last_name,
+ 'email' => $email,
+ 'password' => Hash::make($password),
+ 'role' => $role,
+ 'created_at' => new DateTime(),
+ 'updated_at' => new DateTime(),
+ ];
+
+ // insert to database
+ $result = UserModel::insertGetId($data);
+
+ if ($result > 0) { // insert success then return ID
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImage($request, $result);
+ }
+
+
+ return Redirect::to("user")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Added success');
+ } else { // insert fail
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Add unsuccessfully');
+ }
+ }
+
+ public function edit($userId)
+ {
+ // get by id
+ $data = UserModel::where('id', $userId)
+ ->first();
+ if (is_null($data)) { // not found
+
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/user/edit')
+ ->with('userIdView', $userId)
+ ->with('userView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $role = $request->input('role');
+ $userId = $request->input('userId');
+ $active = $request->input('active');
+ $first_name = $request->input('first_name');
+ $last_name = $request->input('last_name');
+ $email = $request->input('email');
+ $password = $request->input('password');
+
+ $avatar = $request->file('avatar');
+ $imgReq = $avatar ? 'required|image|mimes:jpeg,png,jpg|max:10240' : '';
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'first_name' => 'required',
+ 'last_name' => 'required',
+ 'email' => 'required|email',
+ 'avatar' => $imgReq,
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data can not be empty');
+ }
+
+
+ // check existing email
+ if (UserModel::where('id', '!=', $userId)
+ ->where('email', '=', $email)->count() > 0) {
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Email already exist');
+ }
+
+ if ($password == "") {
+ $data = [
+ 'active' => $active,
+ 'first_name' => $first_name,
+ 'last_name' => $last_name,
+ 'email' => $email,
+ 'role' => $role,
+ 'updated_at' => new DateTime(),
+ ];
+ } else {
+ $data = [
+ 'active' => $active,
+ 'first_name' => $first_name,
+ 'last_name' => $last_name,
+ 'email' => $email,
+ 'role' => $role,
+ 'updated_at' => new DateTime(),
+ 'password' => Hash::make($password)
+ ];
+ }
+
+ UserModel::where('id', $userId)
+ ->update($data);
+
+ // Image
+ if (!empty($avatar)) {
+ $this->uploadImage($request, $userId);
+ }
+
+ return Redirect::to("user")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $userId = $request->input('item_id');
+
+ $hasUser = UserModel::where('id', $userId)
+ ->first();
+
+ if (!$hasUser) { // not found
+ return Redirect::to("user")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", "Not found");
+ }
+
+ // delete user in database
+ $result = UserModel::where('id', '=', $userId)
+ ->delete();
+ if ($result) { // return true, success
+
+ // delete folder
+ File::deleteDirectory('uploads/user/' . $userId);
+
+
+ return response()->json([
+ 'status' => "Success",
+ 'message' => "Delete successfully"
+ ]);
+ } else { // return false, fail
+ return response()->json([
+ 'status' => "Fail",
+ 'message' => "Delete unsuccessfully"
+ ]);
+ }
+ }
+
+ public function uploadImage($request, $result)
+ {
+ $localPath = '/uploads/user/' . $result;
+ $image = $request->file('avatar');
+ $imgName = uniqid() . time() . '.' . $image->extension();
+
+ // destination
+ $destinationUrl = url($localPath);
+ $destinationPath = public_path($localPath);
+
+ // create folder
+ if (File::isDirectory($destinationPath . '/original/') == false) {
+ File::makeDirectory($destinationPath . '/original/', 0777, true);
+ }
+ if (File::isDirectory($destinationPath . '/thumbnail/') == false) {
+ File::makeDirectory($destinationPath . '/thumbnail/', 0777, true);
+ }
+
+ $img = Image::make($image->path());
+
+ // remove old
+ $userObj = UserModel::where('id', $result)
+ ->first();
+ if ($userObj != null) {
+ $oldPathO = $destinationPath . '/original/' . $userObj->image_name;
+ $oldPathT = $destinationPath . '/thumbnail/' . $userObj->image_name;
+
+ if (File::exists($oldPathO)) {
+ File::delete($oldPathO);
+ }
+
+ if (File::exists($oldPathT)) {
+ File::delete($oldPathT);
+ }
+ }
+
+ // original
+ $img->save($destinationPath . '/original/' . $imgName);
+
+ // thumbnail
+ $img->resize(300, 300, function ($constraint) {
+ $constraint->aspectRatio();
+ })->save($destinationPath . '/thumbnail/' . $imgName);
+
+ // update
+ $dataImage = [
+ 'image_url' => $destinationUrl,
+ 'image_name' => $imgName
+ ];
+
+ UserModel::where('id', $result)
+ ->update($dataImage);
+ }
+
+
+ public function returnJsonFieldEmpty($fieldName)
+ {
+ return response()->json([
+ 'status' => 'Fail',
+ 'message' => $fieldName . ' ' . "can not be empty"
+ ]);
+ }
+
+ public function returnJsonErrorMsg($message)
+ {
+ return response()->json([
+ 'status' => 'Fail',
+ 'message' => $message
+ ]);
+ }
+
+ public function returnJsonSuccessMsg($message)
+ {
+ return response()->json([
+ 'status' => 'Success',
+ 'message' => $message
+ ]);
+ }
+
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/VideoController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/VideoController.php
new file mode 100644
index 0000000..ff0febe
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Backend/VideoController.php
@@ -0,0 +1,298 @@
+orderBy('id', 'DESC')
+ ->get();
+
+ $data = FileVideoModel::where('folder_id', '=', null)->orderBy('id', 'DESC')->paginate(100);
+ $urlsVideo = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/video/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urlsVideo);
+ }
+
+ public function folder($folderId)
+ {
+ $folder = FolderModel::where('id', $folderId)->first();
+ $data = FileVideoModel::where('folder_id', $folderId)
+ ->orderBy('id', 'DESC')
+ ->paginate(100);
+
+ $urls = $data->map(function ($fileObj) {
+ return [
+ 'id' => $fileObj->id,
+ 'url' => env('R2_SCHEMA_URL') . $fileObj->name,
+ 'name' => $fileObj->name,
+ 'created_at' => $fileObj->created_at,
+ ];
+ });
+
+ return View::make("backend/video/folder/index")
+ ->with('folderView', $folder)
+ ->with('itemView', $urls);
+ }
+
+ public function add($folderId = null)
+ {
+ return View::make("backend/video/add")
+ ->with('folderIdView', $folderId);
+ }
+
+ public function insert(Request $request)
+ {
+ $validated = $request->validate([
+ 'fileName' => 'required|string'
+ ]);
+
+ // prepared data
+ $folderId = $request->input('folderId');
+ $data = [
+ 'folder_id' => null,
+ 'user_id' => Auth::user()->id,
+ 'name' => $validated['fileName'],
+ 'created_at' => new DateTime(),
+ ];
+ // If $folderId is not null, add it to the $data array
+ if ($folderId !== null) {
+ $data['folder_id'] = $folderId;
+ }
+
+ $id = FileVideoModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return response()->json(['message' => 'File name saved successfully'], 200);
+ } else { // insert fail
+ return response()->json(['message' => 'Failed to save file name'], 500);
+ }
+ }
+
+ public function edit($id)
+ {
+ // get by id
+ $data = FileVideoModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("video")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/video/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function view($id)
+ {
+ // get by id
+ $data = FileVideoModel::where('id', $id)->first();
+
+ if (is_null($data)) { // not found
+ return Redirect::to("video")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/video/view')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function update(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+
+ // redirect with message
+ return Redirect::to("video")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function delete(Request $request)
+ {
+ $id = $request->input('item_id');
+ FileVideoModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Deleted success"
+ ]);
+ }
+
+
+ // Folder
+ public function addFolder()
+ {
+ return View::make("backend/video/folder/add");
+ }
+
+ public function insertFolder(Request $request)
+ {
+ $validated = $request->validate([
+ 'name' => 'required|string'
+ ]);
+
+ // exist folder name
+ $exist = FolderModel::where('name', $validated['name'])
+ ->where('folder_type', 1)
+ ->first();
+
+ if ($exist != null) {
+ return Redirect::to("video")
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Folder already exist');
+ }
+
+
+ // prepared data
+ $data = [
+ 'name' => $validated['name'],
+ 'folder_type' => 1,
+ 'created_at' => new DateTime(),
+ ];
+ $id = FolderModel::insertGetId($data);
+
+ // insert to database
+ if ($id > 0) { // insert success then return ID
+ return Redirect::to("video")
+ ->withInput()
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Create folder success');
+ } else { // insert fail
+ return Redirect::to("video")
+ ->withInput()
+ ->with("messageSuccess", "Fail")
+ ->with("messageDetail", 'Create folder unsuccess');
+ }
+ }
+
+ public function editFolder($id)
+ {
+ // get by id
+ $data = FolderModel::where('id', $id)
+ ->first();
+ if (is_null($data)) { // not found
+ return Redirect::to("video/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Not found data');
+ }
+
+ return View::make('backend/video/folder/edit')
+ ->with('idView', $id)
+ ->with('itemView', $data);
+ }
+
+ public function updateFolder(Request $request)
+ {
+ // keep data en
+ $id = $request->input('id');
+ $name = $request->input('name');
+
+ // validate
+ $validator = Validator::make($request->all(), [
+ 'name' => 'required'
+ ]);
+
+ if ($validator->fails()) {
+ return Redirect::to("video/folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Data can not be empty');
+ }
+
+ // check existing
+ $exist = FolderModel::where('id', '!=', $id)
+ ->where('folder_type', 1)
+ ->where('name', $name)
+ ->count();
+ if (
+ $exist > 0
+ ) {
+ return Redirect::to("video/edit-folder/" . $id)
+ ->withInput()
+ ->with("messageFail", "Fail")
+ ->with("messageDetail", 'Name already exist');
+ }
+
+ $data = [
+ 'name' => $name,
+ ];
+
+ FolderModel::where('id', $id)->update($data);
+
+ return Redirect::to("video")
+ ->with("messageSuccess", "Success")
+ ->with("messageDetail", 'Updated success');
+ }
+
+ public function deleteFolder(Request $request)
+ {
+ $id = $request->input('item_id');
+ $hasFilesInFolder = FileVideoModel::where('folder_id', $id)->count();
+ if ($hasFilesInFolder > 0) { // not found
+ return response()->json([
+ 'status' => false,
+ 'message' => "Can not delete already in folder"
+ ]);
+ } else {
+
+ // delete user in database
+ FolderModel::where('id', '=', $id)->delete();
+ return response()->json([
+ 'status' => true,
+ 'message' => "Delete successfully"
+ ]);
+ }
+ }
+
+ public function downloadFolder($folderId)
+ {
+ $files = FileVideoModel::where('folder_id', $folderId)->get();
+ $zip = new ZipArchive;
+ $folder = FolderModel::where('id', $folderId)->first();
+ $zipFileName = $folder->name . '.zip';
+ $zipPath = storage_path('app/' . $zipFileName);
+
+ if ($zip->open($zipPath, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
+ foreach ($files as $file) {
+ $filePath = env('R2_SCHEMA_URL') . $file->name;
+ $fileContents = file_get_contents($filePath); // Download each file from R2
+ $zip->addFromString($file->name, $fileContents);
+ }
+ $zip->close();
+ }
+
+ return response()->download($zipPath)->deleteFileAfterSend(true);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Controller.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Controller.php
new file mode 100644
index 0000000..77ec359
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Controller.php
@@ -0,0 +1,12 @@
+hasFile('upload')) {
+ $originName = $request->file('upload')->getClientOriginalName();
+ $fileName = pathinfo($originName, PATHINFO_FILENAME);
+ $extension = $request->file('upload')->getClientOriginalExtension();
+ $fileName = $fileName . '_' . time() . '.' . $extension;
+
+ $request->file('upload')->move(public_path('/uploads/ck-editor/'), $fileName);
+
+ $url = asset('/uploads/ck-editor/' . $fileName);
+
+ return response()->json(['fileName' => $fileName, 'uploaded' => 1, 'url' => $url]);
+ }
+ }
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/EmailHelperController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/EmailHelperController.php
new file mode 100644
index 0000000..c6bb2c9
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/EmailHelperController.php
@@ -0,0 +1,73 @@
+ $emailTo,
+ 'link' => url('reset-password/' . $token),
+ ];
+
+ Mail::send('emails.forgot-password', $details, function ($message) use ($subject, $details) {
+ $message->to($details['email'])
+ ->subject($subject);
+ });
+ }
+
+ public function sendEmailResetPassword($emailTo, $newPassword)
+ {
+ // subject
+ $subject = 'Reset Password: The Greater Chiangmai : Has Sent You a Message! No reply This email';
+
+ $details = [
+ 'email' => $emailTo,
+ 'password' => $newPassword,
+ ];
+
+ Mail::send('emails.reset-password', $details, function ($message) use ($subject, $details) {
+ $message->to($details['email'])
+ ->subject($subject);
+ });
+ }
+
+ public function sendEmailCancelBooking($details)
+ {
+
+ // subject
+ $subject = 'Cancel Booking: The Greater Chiangmai : Has Sent You a Message! No reply This email';
+
+
+ Mail::send('emails.cancel-booking', $details, function ($message) use ($subject, $details) {
+ $message->to($details['email'])
+ ->subject($subject);
+ });
+ }
+
+
+ public function sendEmailApproveBooking($details)
+ {
+
+ // subject
+ $subject = 'Approve Booking: The Greater Chiangmai : Has Sent You a Message! No reply This email';
+
+
+ Mail::send('emails.approve-booking', $details, function ($message) use ($subject, $details) {
+ $message->to($details['email'])
+ ->subject($subject);
+ });
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/EmailPhpHelperController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/EmailPhpHelperController.php
new file mode 100644
index 0000000..e06a7d5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/EmailPhpHelperController.php
@@ -0,0 +1,140 @@
+
+
+
+ The Greater Chiangmai.com
+
+
+
+ Hi, ' . 'The Greater Chiangmai' . ' ,
+
+ You have new contact from Contact page, please see the detail below:
+ Name: ' . $name . '
+ Phone: ' . $phone . '
+ อีเมล: ' . $email . '
+ ข้อความ: ' . $comment . '
+
+
+
+ Thanks,
+ The Greater Chiangmai
+
+
+
+ ';
+
+ // To send HTML mail, the Content-type header must be set
+ $headers = 'MIME-Version: 1.0' . "\r\n";
+ $headers .= 'Content-Type: text/html; charset=utf-8' . "\r\n";
+
+ // Additional headers
+ $headers .= 'From:' . $mailSender . "\r\n";
+ $headers .= "Reply-To:" . $mailSender . "\r\n";
+ $headers .= "Return-Path:" . $mailSender . "\r\n";
+
+ // Mail it
+ mail($mailReceiver, $subject, $message, $headers);
+ }
+
+ public function sendEmailForgotPassword($emailTo, $token)
+ {
+ $mailSender = env('MAIL_SENDER');
+
+ // subject
+ $subject = 'Forgot Password: The Greater Chiangmai : Has Sent You a Message! No reply This email';
+
+ $link = url('reset-password/' . $token);
+
+ // message
+ $message = '
+
+
+
+
+
+
+ สวัสดี, ' . $emailTo . ' ,
+
+ เราได้รับคำขอให้รีเซ็ตรหัสผ่านสำหรับบัญชีของคุณ: ' . $emailTo . '
+ ' . $link . '
+
+
+ Thanks,
+
+ Thai Tourism Volunteers
+
+
+
+ ';
+
+ // To send HTML mail, the Content-type header must be set
+ $headers = 'MIME-Version: 1.0' . "\r\n";
+ $headers .= 'Content-Type: text/html; charset=utf-8' . "\r\n";
+ $headers .= 'From:' . $mailSender . "\r\n";
+
+ // Mail it
+ mail($emailTo, $subject, $message, $headers);
+ }
+
+ public function sendEmailResetPassword($emailTo, $newPassword)
+ {
+ $mailSender = env('MAIL_SENDER');
+
+ // subject
+ $subject = 'Reset Password: The Greater Chiangmai : Has Sent You a Message! No reply This email';
+
+ // message
+ $message = '
+
+
+
+
+
+
+ สวัสดี, ' . $emailTo . ' ,
+
+ คุณรีเซ็ตรหัสผ่านสำเร็จแล้ว
+ รหัสผ่านใหม่ของคุณคือ: ' . $newPassword . '
+
+
+ Thanks,
+ The Greater Chiangmai
+
+
+
+ ';
+
+ // To send HTML mail, the Content-type header must be set
+ $headers = 'MIME-Version: 1.0' . "\r\n";
+ $headers .= 'Content-Type: text/html; charset=utf-8' . "\r\n";
+
+ // Additional headers
+ $headers .= 'From:' . $mailSender . "\r\n";
+
+ // Mail it
+ mail($emailTo, $subject, $message, $headers);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/FileHelperController.php b/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/FileHelperController.php
new file mode 100644
index 0000000..45e38c5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Controllers/Helpers/FileHelperController.php
@@ -0,0 +1,286 @@
+IMAGE_TYPE_JPEG = "jpeg";
+ $this->IMAGE_TYPE_JPG = 'jpg';
+ $this->IMAGE_TYPE_PNG = 'png';
+ $this->PDF_TYPE = "pdf";
+ $this->DOC_TYPE = 'doc';
+ $this->DOCX_TYPE = 'docx';
+ $this->XLS_TYPE = 'xls';
+ $this->XLSX_TYPE = 'xlsx';
+ }
+
+ /* ================== Global ================== */
+ public function checkImageType($imageType)
+ {
+ return strtolower($imageType) != $this->IMAGE_TYPE_JPEG && strtolower($imageType) != $this->IMAGE_TYPE_JPG && strtolower($imageType) != $this->IMAGE_TYPE_PNG;
+ }
+
+ public function checkMixType($fileType)
+ {
+ return strtolower($fileType) != $this->IMAGE_TYPE_JPEG &&
+ strtolower($fileType) != $this->IMAGE_TYPE_JPG &&
+ strtolower($fileType) != $this->IMAGE_TYPE_PNG &&
+ strtolower($fileType) != $this->PDF_TYPE &&
+ strtolower($fileType) != $this->DOC_TYPE &&
+ strtolower($fileType) != $this->DOCX_TYPE &&
+ strtolower($fileType) != $this->XLS_TYPE &&
+ strtolower($fileType) != $this->XLSX_TYPE;
+ }
+
+ public function checkImageSize($fileSize)
+ {
+ $customFileSize = 20; // able to change here: //Your file size is bigger than 20mb please upload file again
+ $limitMaxFileSize = 1024 * 1024 * $customFileSize;
+ return $fileSize > $limitMaxFileSize;
+ }
+
+ public function checkFileType($fileType)
+ {
+ return strtolower($fileType) != $this->PDF_TYPE &&
+ strtolower($fileType) != $this->DOC_TYPE &&
+ strtolower($fileType) != $this->DOCX_TYPE &&
+ strtolower($fileType) != $this->XLS_TYPE &&
+ strtolower($fileType) != $this->XLSX_TYPE;
+ }
+
+ public function checkFileTypePdfOnly($fileType)
+ {
+ return $fileType != $this->PDF_TYPE;
+ }
+
+ public function checkFileSize($fileSize)
+ {
+ $customFileSize = 20; // able to change here: //Your file size is bigger than 20mb please upload file again
+ $limitMaxFileSize = 1024 * 1024 * $customFileSize;
+ return $fileSize > $limitMaxFileSize;
+ }
+
+ public function checkFileSize3MB($fileSize)
+ {
+ $customFileSize = 3; // able to change here: //Your file size is bigger than 3mb please upload file again
+ $limitMaxFileSize = 1024 * 1024 * $customFileSize;
+ return $fileSize > $limitMaxFileSize;
+ }
+
+ public function checkFileSize5MB($fileSize)
+ {
+ $customFileSize = 5; // able to change here: //Your file size is bigger than 3mb please upload file again
+ $limitMaxFileSize = 1024 * 1024 * $customFileSize;
+ return $fileSize > $limitMaxFileSize;
+ }
+
+
+ /* ================== CK Editor ================== */
+
+ public function uploadImageCkEditor(Request $request)
+ {
+ $image = $request->file('upload');
+ $url = $this->uploadImg($image);
+ $funcNum = $_GET['CKEditorFuncNum'];
+ if ($url == 'errors') {
+ return "";
+ } else {
+ return "";
+ }
+ }
+
+ public function uploadImg($file)
+ {
+ try {
+ $folder = "uploads/ckeditor/images";
+
+ if (File::isDirectory($folder) == false) {
+ Storage::makeDirectory($folder, 0777, true);
+ }
+
+ $name = $file->getClientOriginalName();
+ $ext = pathinfo($name, PATHINFO_EXTENSION);
+ $rdStr = rand();
+ $date = new DateTime();
+ $format = $date->format('Ymdhms');
+ $newName = $format . '_' . $rdStr . '.' . $ext;
+ $file->move($folder, $newName);
+ return $folder . "/" . $newName;
+ } catch (Exception $e) {
+ return 'errors';
+ }
+ }
+
+ public function mimeContentTypeFile($type)
+ {
+ $typeLower = strtolower($type);
+ if ($typeLower === 'pdf') {
+ return 'application/pdf';
+ } else if ($typeLower === 'xls' || $typeLower === 'xlsx') {
+ return 'application/octet-stream';
+ } else if ($typeLower === 'doc' || $typeLower === 'docx') {
+ return 'application/octet-stream';
+ } else {
+ return 'jpg';
+ }
+ }
+
+ public function mimeContentTypeImage($type)
+ {
+ $typeLower = strtolower($type);
+ if ($typeLower === 'png') {
+ return 'image/png';
+ } else if ($typeLower === 'jpg') {
+ return 'image/jpeg';
+ } else if ($typeLower === 'jpeg') {
+ return 'image/jpeg';
+ } else {
+ return 'image/jpeg';
+ }
+ }
+
+ /*
+ public function uploadImageCkEditorOld($file)
+ {
+ try {
+ $folder = "uploads/files/ckeditor/images";
+
+ $name = $file->getClientOriginalName();
+ $ext = pathinfo($name, PATHINFO_EXTENSION);
+ $rdStr = Uuid::generate();
+ $date = new DateTime();
+ $format = $date->format('Ymdhms');
+ $newName = $format . '_' . $rdStr . '.' . $ext;
+ $file->move($folder, $newName);
+
+ return $folder . "/" . $newName;
+ } catch (\Exception $e) {
+ return 'errors';
+ }
+ }
+ */
+}
+/* File Types */
+//[
+// '3gp' => 'video/3gpp',
+// '7z' => 'application/x-7z-compressed',
+// 'aac' => 'audio/x-aac',
+// 'ai' => 'application/postscript',
+// 'aif' => 'audio/x-aiff',
+// 'asc' => 'text/plain',
+// 'asf' => 'video/x-ms-asf',
+// 'atom' => 'application/atom+xml',
+// 'avi' => 'video/x-msvideo',
+// 'bmp' => 'image/bmp',
+// 'bz2' => 'application/x-bzip2',
+// 'cer' => 'application/pkix-cert',
+// 'crl' => 'application/pkix-crl',
+// 'crt' => 'application/x-x509-ca-cert',
+// 'css' => 'text/css',
+// 'csv' => 'text/csv',
+// 'cu' => 'application/cu-seeme',
+// 'deb' => 'application/x-debian-package',
+// 'doc' => 'application/msword',
+// 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+// 'dvi' => 'application/x-dvi',
+// 'eot' => 'application/vnd.ms-fontobject',
+// 'eps' => 'application/postscript',
+// 'epub' => 'application/epub+zip',
+// 'etx' => 'text/x-setext',
+// 'flac' => 'audio/flac',
+// 'flv' => 'video/x-flv',
+// 'gif' => 'image/gif',
+// 'gz' => 'application/gzip',
+// 'htm' => 'text/html',
+// 'html' => 'text/html',
+// 'ico' => 'image/x-icon',
+// 'ics' => 'text/calendar',
+// 'ini' => 'text/plain',
+// 'iso' => 'application/x-iso9660-image',
+// 'jar' => 'application/java-archive',
+// 'jpe' => 'image/jpeg',
+// 'jpeg' => 'image/jpeg',
+// 'jpg' => 'image/jpeg',
+// 'js' => 'text/javascript',
+// 'json' => 'application/json',
+// 'latex' => 'application/x-latex',
+// 'log' => 'text/plain',
+// 'm4a' => 'audio/mp4',
+// 'm4v' => 'video/mp4',
+// 'mid' => 'audio/midi',
+// 'midi' => 'audio/midi',
+// 'mov' => 'video/quicktime',
+// 'mkv' => 'video/x-matroska',
+// 'mp3' => 'audio/mpeg',
+// 'mp4' => 'video/mp4',
+// 'mp4a' => 'audio/mp4',
+// 'mp4v' => 'video/mp4',
+// 'mpe' => 'video/mpeg',
+// 'mpeg' => 'video/mpeg',
+// 'mpg' => 'video/mpeg',
+// 'mpg4' => 'video/mp4',
+// 'oga' => 'audio/ogg',
+// 'ogg' => 'audio/ogg',
+// 'ogv' => 'video/ogg',
+// 'ogx' => 'application/ogg',
+// 'pbm' => 'image/x-portable-bitmap',
+// 'pdf' => 'application/pdf',
+// 'pgm' => 'image/x-portable-graymap',
+// 'png' => 'image/png',
+// 'pnm' => 'image/x-portable-anymap',
+// 'ppm' => 'image/x-portable-pixmap',
+// 'ppt' => 'application/vnd.ms-powerpoint',
+// 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
+// 'ps' => 'application/postscript',
+// 'qt' => 'video/quicktime',
+// 'rar' => 'application/x-rar-compressed',
+// 'ras' => 'image/x-cmu-raster',
+// 'rss' => 'application/rss+xml',
+// 'rtf' => 'application/rtf',
+// 'sgm' => 'text/sgml',
+// 'sgml' => 'text/sgml',
+// 'svg' => 'image/svg+xml',
+// 'swf' => 'application/x-shockwave-flash',
+// 'tar' => 'application/x-tar',
+// 'tif' => 'image/tiff',
+// 'tiff' => 'image/tiff',
+// 'torrent' => 'application/x-bittorrent',
+// 'ttf' => 'application/x-font-ttf',
+// 'txt' => 'text/plain',
+// 'wav' => 'audio/x-wav',
+// 'webm' => 'video/webm',
+// 'webp' => 'image/webp',
+// 'wma' => 'audio/x-ms-wma',
+// 'wmv' => 'video/x-ms-wmv',
+// 'woff' => 'application/x-font-woff',
+// 'wsdl' => 'application/wsdl+xml',
+// 'xbm' => 'image/x-xbitmap',
+// 'xls' => 'application/vnd.ms-excel',
+// 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+// 'xml' => 'application/xml',
+// 'xpm' => 'image/x-xpixmap',
+// 'xwd' => 'image/x-xwindowdump',
+// 'yaml' => 'text/yaml',
+// 'yml' => 'text/yaml',
+// 'zip' => 'application/zip',
+//];
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/app/Http/Kernel.php b/think-backend.greaterchiangmai.com/app/Http/Kernel.php
new file mode 100644
index 0000000..37d4009
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Kernel.php
@@ -0,0 +1,69 @@
+
+ */
+ protected $middleware = [
+ // \App\Http\Middleware\TrustHosts::class,
+ \App\Http\Middleware\TrustProxies::class,
+ \Illuminate\Http\Middleware\HandleCors::class,
+ \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
+ \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
+ \App\Http\Middleware\TrimStrings::class,
+ \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ ];
+
+ /**
+ * The application's route middleware groups.
+ *
+ * @var array>
+ */
+ protected $middlewareGroups = [
+ 'web' => [
+ \App\Http\Middleware\EncryptCookies::class,
+ \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
+ \Illuminate\Session\Middleware\StartSession::class,
+ \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+ \App\Http\Middleware\VerifyCsrfToken::class,
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+
+ 'api' => [
+ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+ \Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
+ \Illuminate\Routing\Middleware\SubstituteBindings::class,
+ ],
+ ];
+
+ /**
+ * The application's middleware aliases.
+ *
+ * Aliases may be used instead of class names to conveniently assign middleware to routes and groups.
+ *
+ * @var array
+ */
+ protected $middlewareAliases = [
+ 'auth' => \App\Http\Middleware\Authenticate::class,
+ 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
+ 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
+ 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
+ 'can' => \Illuminate\Auth\Middleware\Authorize::class,
+ 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
+ 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
+ 'precognitive' => \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class,
+ 'signed' => \App\Http\Middleware\ValidateSignature::class,
+ 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+ 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
+ 'role' => \App\Http\Middleware\RoleMiddleware::class,
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/Authenticate.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/Authenticate.php
new file mode 100644
index 0000000..d4ef644
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/Authenticate.php
@@ -0,0 +1,17 @@
+expectsJson() ? null : route('login');
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/EncryptCookies.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/EncryptCookies.php
new file mode 100644
index 0000000..867695b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/EncryptCookies.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/PreventRequestsDuringMaintenance.php
new file mode 100644
index 0000000..74cbd9a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/PreventRequestsDuringMaintenance.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/RedirectIfAuthenticated.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/RedirectIfAuthenticated.php
new file mode 100644
index 0000000..afc78c4
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/RedirectIfAuthenticated.php
@@ -0,0 +1,30 @@
+check()) {
+ return redirect(RouteServiceProvider::HOME);
+ }
+ }
+
+ return $next($request);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/RoleMiddleware.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/RoleMiddleware.php
new file mode 100644
index 0000000..316973d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/RoleMiddleware.php
@@ -0,0 +1,32 @@
+role, $explode)) {
+ return $next($request);
+ }
+ }
+
+ return Redirect::to('login')
+ ->with('messageFail', 'Fail')
+ ->with('messageDetail', 'No permission please contact Administrator');
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/TrimStrings.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/TrimStrings.php
new file mode 100644
index 0000000..88cadca
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/TrimStrings.php
@@ -0,0 +1,19 @@
+
+ */
+ protected $except = [
+ 'current_password',
+ 'password',
+ 'password_confirmation',
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/TrustHosts.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/TrustHosts.php
new file mode 100644
index 0000000..c9c58bd
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/TrustHosts.php
@@ -0,0 +1,20 @@
+
+ */
+ public function hosts(): array
+ {
+ return [
+ $this->allSubdomainsOfApplicationUrl(),
+ ];
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/TrustProxies.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/TrustProxies.php
new file mode 100644
index 0000000..3391630
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/TrustProxies.php
@@ -0,0 +1,28 @@
+|string|null
+ */
+ protected $proxies;
+
+ /**
+ * The headers that should be used to detect proxies.
+ *
+ * @var int
+ */
+ protected $headers =
+ Request::HEADER_X_FORWARDED_FOR |
+ Request::HEADER_X_FORWARDED_HOST |
+ Request::HEADER_X_FORWARDED_PORT |
+ Request::HEADER_X_FORWARDED_PROTO |
+ Request::HEADER_X_FORWARDED_AWS_ELB;
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/ValidateSignature.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/ValidateSignature.php
new file mode 100644
index 0000000..093bf64
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/ValidateSignature.php
@@ -0,0 +1,22 @@
+
+ */
+ protected $except = [
+ // 'fbclid',
+ // 'utm_campaign',
+ // 'utm_content',
+ // 'utm_medium',
+ // 'utm_source',
+ // 'utm_term',
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Middleware/VerifyCsrfToken.php b/think-backend.greaterchiangmai.com/app/Http/Middleware/VerifyCsrfToken.php
new file mode 100644
index 0000000..9e86521
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Middleware/VerifyCsrfToken.php
@@ -0,0 +1,17 @@
+
+ */
+ protected $except = [
+ //
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Http/Models/ArticleModel.php b/think-backend.greaterchiangmai.com/app/Http/Models/ArticleModel.php
new file mode 100644
index 0000000..de534e5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Http/Models/ArticleModel.php
@@ -0,0 +1,38 @@
+
+ */
+ protected $fillable = [
+ 'name',
+ 'email',
+ 'password',
+ ];
+
+ /**
+ * The attributes that should be hidden for serialization.
+ *
+ * @var array
+ */
+ protected $hidden = [
+ 'password',
+ 'remember_token',
+ ];
+
+ /**
+ * The attributes that should be cast.
+ *
+ * @var array
+ */
+ protected $casts = [
+ 'email_verified_at' => 'datetime',
+ 'password' => 'hashed',
+ ];
+}
diff --git a/think-backend.greaterchiangmai.com/app/Providers/AppServiceProvider.php b/think-backend.greaterchiangmai.com/app/Providers/AppServiceProvider.php
new file mode 100644
index 0000000..452e6b6
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Providers/AppServiceProvider.php
@@ -0,0 +1,24 @@
+
+ */
+ protected $policies = [
+ //
+ ];
+
+ /**
+ * Register any authentication / authorization services.
+ */
+ public function boot(): void
+ {
+ //
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Providers/BroadcastServiceProvider.php b/think-backend.greaterchiangmai.com/app/Providers/BroadcastServiceProvider.php
new file mode 100644
index 0000000..2be04f5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Providers/BroadcastServiceProvider.php
@@ -0,0 +1,19 @@
+>
+ */
+ protected $listen = [
+ Registered::class => [
+ SendEmailVerificationNotification::class,
+ ],
+ ];
+
+ /**
+ * Register any events for your application.
+ */
+ public function boot(): void
+ {
+ //
+ }
+
+ /**
+ * Determine if events and listeners should be automatically discovered.
+ */
+ public function shouldDiscoverEvents(): bool
+ {
+ return false;
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/app/Providers/RouteServiceProvider.php b/think-backend.greaterchiangmai.com/app/Providers/RouteServiceProvider.php
new file mode 100644
index 0000000..1cf5f15
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/app/Providers/RouteServiceProvider.php
@@ -0,0 +1,40 @@
+by($request->user()?->id ?: $request->ip());
+ });
+
+ $this->routes(function () {
+ Route::middleware('api')
+ ->prefix('api')
+ ->group(base_path('routes/api.php'));
+
+ Route::middleware('web')
+ ->group(base_path('routes/web.php'));
+ });
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/artisan b/think-backend.greaterchiangmai.com/artisan
new file mode 100644
index 0000000..67a3329
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/artisan
@@ -0,0 +1,53 @@
+#!/usr/bin/env php
+make(Illuminate\Contracts\Console\Kernel::class);
+
+$status = $kernel->handle(
+ $input = new Symfony\Component\Console\Input\ArgvInput,
+ new Symfony\Component\Console\Output\ConsoleOutput
+);
+
+/*
+|--------------------------------------------------------------------------
+| Shutdown The Application
+|--------------------------------------------------------------------------
+|
+| Once Artisan has finished running, we will fire off the shutdown events
+| so that any final work may be done by the application before we shut
+| down the process. This is the last thing to happen to the request.
+|
+*/
+
+$kernel->terminate($input, $status);
+
+exit($status);
diff --git a/think-backend.greaterchiangmai.com/bootstrap/app.php b/think-backend.greaterchiangmai.com/bootstrap/app.php
new file mode 100644
index 0000000..037e17d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/bootstrap/app.php
@@ -0,0 +1,55 @@
+singleton(
+ Illuminate\Contracts\Http\Kernel::class,
+ App\Http\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Console\Kernel::class,
+ App\Console\Kernel::class
+);
+
+$app->singleton(
+ Illuminate\Contracts\Debug\ExceptionHandler::class,
+ App\Exceptions\Handler::class
+);
+
+/*
+|--------------------------------------------------------------------------
+| Return The Application
+|--------------------------------------------------------------------------
+|
+| This script returns the application instance. The instance is given to
+| the calling script so we can separate the building of the instances
+| from the actual running of the application and sending responses.
+|
+*/
+
+return $app;
diff --git a/think-backend.greaterchiangmai.com/bootstrap/cache/.gitignore b/think-backend.greaterchiangmai.com/bootstrap/cache/.gitignore
new file mode 100644
index 0000000..d6b7ef3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/bootstrap/cache/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/think-backend.greaterchiangmai.com/composer.json b/think-backend.greaterchiangmai.com/composer.json
new file mode 100644
index 0000000..31837ce
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/composer.json
@@ -0,0 +1,71 @@
+{
+ "name": "laravel/laravel",
+ "type": "project",
+ "description": "The skeleton application for the Laravel framework.",
+ "keywords": [
+ "laravel",
+ "framework"
+ ],
+ "license": "MIT",
+ "require": {
+ "php": "^8.1",
+ "guzzlehttp/guzzle": "^7.2",
+ "intervention/image": "^2.7",
+ "laravel/framework": "^10.10",
+ "laravel/sanctum": "^3.3",
+ "laravel/tinker": "^2.8",
+ "league/flysystem-aws-s3-v3": "^3.0"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.9.1",
+ "laravel/pint": "^1.0",
+ "laravel/sail": "^1.18",
+ "mockery/mockery": "^1.4.4",
+ "nunomaduro/collision": "^7.0",
+ "phpunit/phpunit": "^10.1",
+ "spatie/laravel-ignition": "^2.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Factories\\": "database/factories/",
+ "Database\\Seeders\\": "database/seeders/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "post-autoload-dump": [
+ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
+ "@php artisan package:discover --ansi"
+ ],
+ "post-update-cmd": [
+ "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
+ ],
+ "post-root-package-install": [
+ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
+ ],
+ "post-create-project-cmd": [
+ "@php artisan key:generate --ansi"
+ ]
+ },
+ "extra": {
+ "laravel": {
+ "dont-discover": []
+ }
+ },
+ "config": {
+ "optimize-autoloader": true,
+ "preferred-install": "dist",
+ "sort-packages": true,
+ "allow-plugins": {
+ "pestphp/pest-plugin": true,
+ "php-http/discovery": true
+ }
+ },
+ "minimum-stability": "stable",
+ "prefer-stable": true
+}
diff --git a/think-backend.greaterchiangmai.com/composer.lock b/think-backend.greaterchiangmai.com/composer.lock
new file mode 100644
index 0000000..6af1ea2
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/composer.lock
@@ -0,0 +1,8486 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "335a4847db64241c13c62313c53588fd",
+ "packages": [
+ {
+ "name": "aws/aws-crt-php",
+ "version": "v1.2.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/awslabs/aws-crt-php.git",
+ "reference": "a63485b65b6b3367039306496d49737cf1995408"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/a63485b65b6b3367039306496d49737cf1995408",
+ "reference": "a63485b65b6b3367039306496d49737cf1995408",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "AWS SDK Common Runtime Team",
+ "email": "aws-sdk-common-runtime@amazon.com"
+ }
+ ],
+ "description": "AWS Common Runtime for PHP",
+ "homepage": "https://github.com/awslabs/aws-crt-php",
+ "keywords": [
+ "amazon",
+ "aws",
+ "crt",
+ "sdk"
+ ],
+ "support": {
+ "issues": "https://github.com/awslabs/aws-crt-php/issues",
+ "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.6"
+ },
+ "time": "2024-06-13T17:21:28+00:00"
+ },
+ {
+ "name": "aws/aws-sdk-php",
+ "version": "3.322.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aws/aws-sdk-php.git",
+ "reference": "6a329cf111a4e54f2ca0e87ce07dd0b9e0befdad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/6a329cf111a4e54f2ca0e87ce07dd0b9e0befdad",
+ "reference": "6a329cf111a4e54f2ca0e87ce07dd0b9e0befdad",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-crt-php": "^1.2.3",
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-simplexml": "*",
+ "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
+ "guzzlehttp/promises": "^1.4.0 || ^2.0",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
+ "mtdowling/jmespath.php": "^2.6",
+ "php": ">=7.2.5",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "andrewsville/php-token-reflection": "^1.4",
+ "aws/aws-php-sns-message-validator": "~1.0",
+ "behat/behat": "~3.0",
+ "composer/composer": "^1.10.22",
+ "dms/phpunit-arraysubset-asserts": "^0.4.0",
+ "doctrine/cache": "~1.4",
+ "ext-dom": "*",
+ "ext-openssl": "*",
+ "ext-pcntl": "*",
+ "ext-sockets": "*",
+ "nette/neon": "^2.3",
+ "paragonie/random_compat": ">= 2",
+ "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
+ "psr/cache": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "sebastian/comparator": "^1.2.3 || ^4.0",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
+ "doctrine/cache": "To use the DoctrineCacheAdapter",
+ "ext-curl": "To send requests using cURL",
+ "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
+ "ext-sockets": "To use client-side monitoring"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Aws\\": "src/"
+ },
+ "exclude-from-classmap": [
+ "src/data/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Amazon Web Services",
+ "homepage": "http://aws.amazon.com"
+ }
+ ],
+ "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
+ "homepage": "http://aws.amazon.com/sdkforphp",
+ "keywords": [
+ "amazon",
+ "aws",
+ "cloud",
+ "dynamodb",
+ "ec2",
+ "glacier",
+ "s3",
+ "sdk"
+ ],
+ "support": {
+ "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
+ "issues": "https://github.com/aws/aws-sdk-php/issues",
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.322.2"
+ },
+ "time": "2024-09-20T18:08:53+00:00"
+ },
+ {
+ "name": "brick/math",
+ "version": "0.12.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/math.git",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/brick/math/zipball/f510c0a40911935b77b86859eb5223d58d660df1",
+ "reference": "f510c0a40911935b77b86859eb5223d58d660df1",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.2",
+ "phpunit/phpunit": "^10.1",
+ "vimeo/psalm": "5.16.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Brick\\Math\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Arbitrary-precision arithmetic library",
+ "keywords": [
+ "Arbitrary-precision",
+ "BigInteger",
+ "BigRational",
+ "arithmetic",
+ "bigdecimal",
+ "bignum",
+ "bignumber",
+ "brick",
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
+ ],
+ "support": {
+ "issues": "https://github.com/brick/math/issues",
+ "source": "https://github.com/brick/math/tree/0.12.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/BenMorel",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-29T23:19:16+00:00"
+ },
+ {
+ "name": "carbonphp/carbon-doctrine-types",
+ "version": "2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<3.7.0 || >=4.0.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^3.7.0",
+ "nesbot/carbon": "^2.71.0 || ^3.0.0",
+ "phpunit/phpunit": "^10.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "KyleKatarn",
+ "email": "kylekatarnls@gmail.com"
+ }
+ ],
+ "description": "Types to use Carbon in Doctrine",
+ "keywords": [
+ "carbon",
+ "date",
+ "datetime",
+ "doctrine",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-11T17:09:12+00:00"
+ },
+ {
+ "name": "dflydev/dot-access-data",
+ "version": "v3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.42",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
+ "scrutinizer/ocular": "1.6.0",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dflydev\\DotAccessData\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Dragonfly Development Inc.",
+ "email": "info@dflydev.com",
+ "homepage": "http://dflydev.com"
+ },
+ {
+ "name": "Beau Simensen",
+ "email": "beau@dflydev.com",
+ "homepage": "http://beausimensen.com"
+ },
+ {
+ "name": "Carlos Frutos",
+ "email": "carlos@kiwing.it",
+ "homepage": "https://github.com/cfrutos"
+ },
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com"
+ }
+ ],
+ "description": "Given a deep data structure, access data by dot notation.",
+ "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
+ "keywords": [
+ "access",
+ "data",
+ "dot",
+ "notation"
+ ],
+ "support": {
+ "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
+ },
+ "time": "2024-07-08T12:26:09+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "2.0.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+ "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+ "keywords": [
+ "inflection",
+ "inflector",
+ "lowercase",
+ "manipulation",
+ "php",
+ "plural",
+ "singular",
+ "strings",
+ "uppercase",
+ "words"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/inflector/issues",
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-18T20:23:39+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "https://www.doctrine-project.org/projects/lexer.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "lexer",
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/lexer/issues",
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-02-05T11:56:58+00:00"
+ },
+ {
+ "name": "dragonmantank/cron-expression",
+ "version": "v3.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dragonmantank/cron-expression.git",
+ "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0",
+ "webmozart/assert": "^1.0"
+ },
+ "replace": {
+ "mtdowling/cron-expression": "^1.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0",
+ "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Cron\\": "src/Cron/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Tankersley",
+ "email": "chris@ctankersley.com",
+ "homepage": "https://github.com/dragonmantank"
+ }
+ ],
+ "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
+ "keywords": [
+ "cron",
+ "schedule"
+ ],
+ "support": {
+ "issues": "https://github.com/dragonmantank/cron-expression/issues",
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/dragonmantank",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-10T19:36:49+00:00"
+ },
+ {
+ "name": "egulias/email-validator",
+ "version": "4.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/egulias/EmailValidator.git",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.2",
+ "vimeo/psalm": "^5.12"
+ },
+ "suggest": {
+ "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Egulias\\EmailValidator\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Eduardo Gulias Davis"
+ }
+ ],
+ "description": "A library for validating emails against several RFCs",
+ "homepage": "https://github.com/egulias/EmailValidator",
+ "keywords": [
+ "email",
+ "emailvalidation",
+ "emailvalidator",
+ "validation",
+ "validator"
+ ],
+ "support": {
+ "issues": "https://github.com/egulias/EmailValidator/issues",
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/egulias",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-06T06:47:41+00:00"
+ },
+ {
+ "name": "fruitcake/php-cors",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fruitcake/php-cors.git",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4|^8.0",
+ "symfony/http-foundation": "^4.4|^5.4|^6|^7"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^3.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fruitcake\\Cors\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
+ {
+ "name": "Barryvdh",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+ "homepage": "https://github.com/fruitcake/php-cors",
+ "keywords": [
+ "cors",
+ "laravel",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/fruitcake/php-cors/issues",
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2023-10-12T05:21:21+00:00"
+ },
+ {
+ "name": "graham-campbell/result-type",
+ "version": "v1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945",
+ "reference": "3ba905c11371512af9d9bdd27d99b782216b6945",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:45:45+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.9.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+ "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+ "guzzlehttp/psr7": "^2.7.0",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-curl": "*",
+ "guzzle/client-integration-tests": "3.0.2",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-24T11:22:20+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-18T10:29:17+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "http-interop/http-factory-tests": "0.9.0",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+ },
+ "suggest": {
+ "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-18T11:15:46+00:00"
+ },
+ {
+ "name": "guzzlehttp/uri-template",
+ "version": "v1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/uri-template.git",
+ "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "uri-template/tests": "1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\UriTemplate\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ }
+ ],
+ "description": "A polyfill class for uri_template of PHP",
+ "keywords": [
+ "guzzlehttp",
+ "uri-template"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/uri-template/issues",
+ "source": "https://github.com/guzzle/uri-template/tree/v1.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-03T19:50:20+00:00"
+ },
+ {
+ "name": "intervention/image",
+ "version": "2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Intervention/image.git",
+ "reference": "04be355f8d6734c826045d02a1079ad658322dad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad",
+ "reference": "04be355f8d6734c826045d02a1079ad658322dad",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "guzzlehttp/psr7": "~1.1 || ^2.0",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.2",
+ "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
+ },
+ "suggest": {
+ "ext-gd": "to use GD library based image processing.",
+ "ext-imagick": "to use Imagick based image processing.",
+ "intervention/imagecache": "Caching extension for the Intervention Image library"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Intervention\\Image\\ImageServiceProvider"
+ ],
+ "aliases": {
+ "Image": "Intervention\\Image\\Facades\\Image"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Intervention\\Image\\": "src/Intervention/Image"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Oliver Vogel",
+ "email": "oliver@intervention.io",
+ "homepage": "https://intervention.io/"
+ }
+ ],
+ "description": "Image handling and manipulation library with support for Laravel integration",
+ "homepage": "http://image.intervention.io/",
+ "keywords": [
+ "gd",
+ "image",
+ "imagick",
+ "laravel",
+ "thumbnail",
+ "watermark"
+ ],
+ "support": {
+ "issues": "https://github.com/Intervention/image/issues",
+ "source": "https://github.com/Intervention/image/tree/2.7.2"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/interventionio",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/Intervention",
+ "type": "github"
+ }
+ ],
+ "time": "2022-05-21T17:30:32+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v10.48.22",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "c4ea52bb044faef4a103d7dd81746c01b2ec860e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/c4ea52bb044faef4a103d7dd81746c01b2ec860e",
+ "reference": "c4ea52bb044faef4a103d7dd81746c01b2ec860e",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12",
+ "composer-runtime-api": "^2.2",
+ "doctrine/inflector": "^2.0.5",
+ "dragonmantank/cron-expression": "^3.3.2",
+ "egulias/email-validator": "^3.2.1|^4.0",
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-hash": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "ext-session": "*",
+ "ext-tokenizer": "*",
+ "fruitcake/php-cors": "^1.2",
+ "guzzlehttp/uri-template": "^1.0",
+ "laravel/prompts": "^0.1.9",
+ "laravel/serializable-closure": "^1.3",
+ "league/commonmark": "^2.2.1",
+ "league/flysystem": "^3.8.0",
+ "monolog/monolog": "^3.0",
+ "nesbot/carbon": "^2.67",
+ "nunomaduro/termwind": "^1.13",
+ "php": "^8.1",
+ "psr/container": "^1.1.1|^2.0.1",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "ramsey/uuid": "^4.7",
+ "symfony/console": "^6.2",
+ "symfony/error-handler": "^6.2",
+ "symfony/finder": "^6.2",
+ "symfony/http-foundation": "^6.4",
+ "symfony/http-kernel": "^6.2",
+ "symfony/mailer": "^6.2",
+ "symfony/mime": "^6.2",
+ "symfony/process": "^6.2",
+ "symfony/routing": "^6.2",
+ "symfony/uid": "^6.2",
+ "symfony/var-dumper": "^6.2",
+ "tijsverkoyen/css-to-inline-styles": "^2.2.5",
+ "vlucas/phpdotenv": "^5.4.1",
+ "voku/portable-ascii": "^2.0"
+ },
+ "conflict": {
+ "carbonphp/carbon-doctrine-types": ">=3.0",
+ "doctrine/dbal": ">=4.0",
+ "mockery/mockery": "1.6.8",
+ "phpunit/phpunit": ">=11.0.0",
+ "tightenco/collect": "<5.5.33"
+ },
+ "provide": {
+ "psr/container-implementation": "1.1|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/collections": "self.version",
+ "illuminate/conditionable": "self.version",
+ "illuminate/config": "self.version",
+ "illuminate/console": "self.version",
+ "illuminate/container": "self.version",
+ "illuminate/contracts": "self.version",
+ "illuminate/cookie": "self.version",
+ "illuminate/database": "self.version",
+ "illuminate/encryption": "self.version",
+ "illuminate/events": "self.version",
+ "illuminate/filesystem": "self.version",
+ "illuminate/hashing": "self.version",
+ "illuminate/http": "self.version",
+ "illuminate/log": "self.version",
+ "illuminate/macroable": "self.version",
+ "illuminate/mail": "self.version",
+ "illuminate/notifications": "self.version",
+ "illuminate/pagination": "self.version",
+ "illuminate/pipeline": "self.version",
+ "illuminate/process": "self.version",
+ "illuminate/queue": "self.version",
+ "illuminate/redis": "self.version",
+ "illuminate/routing": "self.version",
+ "illuminate/session": "self.version",
+ "illuminate/support": "self.version",
+ "illuminate/testing": "self.version",
+ "illuminate/translation": "self.version",
+ "illuminate/validation": "self.version",
+ "illuminate/view": "self.version"
+ },
+ "require-dev": {
+ "ably/ably-php": "^1.0",
+ "aws/aws-sdk-php": "^3.235.5",
+ "doctrine/dbal": "^3.5.1",
+ "ext-gmp": "*",
+ "fakerphp/faker": "^1.21",
+ "guzzlehttp/guzzle": "^7.5",
+ "league/flysystem-aws-s3-v3": "^3.0",
+ "league/flysystem-ftp": "^3.0",
+ "league/flysystem-path-prefixing": "^3.3",
+ "league/flysystem-read-only": "^3.3",
+ "league/flysystem-sftp-v3": "^3.0",
+ "mockery/mockery": "^1.5.1",
+ "nyholm/psr7": "^1.2",
+ "orchestra/testbench-core": "^8.23.4",
+ "pda/pheanstalk": "^4.0",
+ "phpstan/phpstan": "^1.4.7",
+ "phpunit/phpunit": "^10.0.7",
+ "predis/predis": "^2.0.2",
+ "symfony/cache": "^6.2",
+ "symfony/http-client": "^6.2.4",
+ "symfony/psr-http-message-bridge": "^2.0"
+ },
+ "suggest": {
+ "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
+ "brianium/paratest": "Required to run tests in parallel (^6.0).",
+ "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).",
+ "ext-apcu": "Required to use the APC cache driver.",
+ "ext-fileinfo": "Required to use the Filesystem class.",
+ "ext-ftp": "Required to use the Flysystem FTP driver.",
+ "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
+ "ext-memcached": "Required to use the memcache cache driver.",
+ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
+ "ext-pdo": "Required to use all database features.",
+ "ext-posix": "Required to use all features of the queue worker.",
+ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
+ "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
+ "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
+ "laravel/tinker": "Required to use the tinker console command (^2.0).",
+ "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+ "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+ "mockery/mockery": "Required to use mocking (^1.5.1).",
+ "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).",
+ "predis/predis": "Required to use the predis connector (^2.0.2).",
+ "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^6.2).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "10.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Collections/helpers.php",
+ "src/Illuminate/Events/functions.php",
+ "src/Illuminate/Filesystem/functions.php",
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/",
+ "Illuminate\\Support\\": [
+ "src/Illuminate/Macroable/",
+ "src/Illuminate/Collections/",
+ "src/Illuminate/Conditionable/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Laravel Framework.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2024-09-12T15:00:09+00:00"
+ },
+ {
+ "name": "laravel/prompts",
+ "version": "v0.1.25",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/prompts.git",
+ "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/7b4029a84c37cb2725fc7f011586e2997040bc95",
+ "reference": "7b4029a84c37cb2725fc7f011586e2997040bc95",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "illuminate/collections": "^10.0|^11.0",
+ "php": "^8.1",
+ "symfony/console": "^6.2|^7.0"
+ },
+ "conflict": {
+ "illuminate/console": ">=10.17.0 <10.25.0",
+ "laravel/framework": ">=10.17.0 <10.25.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "pestphp/pest": "^2.3",
+ "phpstan/phpstan": "^1.11",
+ "phpstan/phpstan-mockery": "^1.1"
+ },
+ "suggest": {
+ "ext-pcntl": "Required for the spinner to be animated."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Laravel\\Prompts\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Add beautiful and user-friendly forms to your command-line applications.",
+ "support": {
+ "issues": "https://github.com/laravel/prompts/issues",
+ "source": "https://github.com/laravel/prompts/tree/v0.1.25"
+ },
+ "time": "2024-08-12T22:06:33+00:00"
+ },
+ {
+ "name": "laravel/sanctum",
+ "version": "v3.3.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sanctum.git",
+ "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5",
+ "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "illuminate/console": "^9.21|^10.0",
+ "illuminate/contracts": "^9.21|^10.0",
+ "illuminate/database": "^9.21|^10.0",
+ "illuminate/support": "^9.21|^10.0",
+ "php": "^8.0.2"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^7.28.2|^8.8.3",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Sanctum\\SanctumServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Sanctum\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.",
+ "keywords": [
+ "auth",
+ "laravel",
+ "sanctum"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/sanctum/issues",
+ "source": "https://github.com/laravel/sanctum"
+ },
+ "time": "2023-12-19T18:44:48+00:00"
+ },
+ {
+ "name": "laravel/serializable-closure",
+ "version": "v1.3.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/serializable-closure.git",
+ "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/61b87392d986dc49ad5ef64e75b1ff5fee24ef81",
+ "reference": "61b87392d986dc49ad5ef64e75b1ff5fee24ef81",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
+ "nesbot/carbon": "^2.61|^3.0",
+ "pestphp/pest": "^1.21.3",
+ "phpstan/phpstan": "^1.8.2",
+ "symfony/var-dumper": "^5.4.11|^6.2.0|^7.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\SerializableClosure\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Nuno Maduro",
+ "email": "nuno@laravel.com"
+ }
+ ],
+ "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
+ "keywords": [
+ "closure",
+ "laravel",
+ "serializable"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/serializable-closure/issues",
+ "source": "https://github.com/laravel/serializable-closure"
+ },
+ "time": "2024-08-02T07:48:17+00:00"
+ },
+ {
+ "name": "laravel/tinker",
+ "version": "v2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/tinker.git",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "reference": "502e0fe3f0415d06d5db1f83a472f0f3b754bafe",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
+ "php": "^7.2.5|^8.0",
+ "psy/psysh": "^0.11.1|^0.12.0",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.3|^1.4.2",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5.8|^9.3.3"
+ },
+ "suggest": {
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)."
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Tinker\\TinkerServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Tinker\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Powerful REPL for the Laravel framework.",
+ "keywords": [
+ "REPL",
+ "Tinker",
+ "laravel",
+ "psysh"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/tinker/issues",
+ "source": "https://github.com/laravel/tinker/tree/v2.9.0"
+ },
+ "time": "2024-01-04T16:10:04+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "2.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "b650144166dfa7703e62a22e493b853b58d874b0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0",
+ "reference": "b650144166dfa7703e62a22e493b853b58d874b0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "league/config": "^1.1.1",
+ "php": "^7.4 || ^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "cebe/markdown": "^1.0",
+ "commonmark/cmark": "0.31.1",
+ "commonmark/commonmark.js": "0.31.1",
+ "composer/package-versions-deprecated": "^1.8",
+ "embed/embed": "^4.4",
+ "erusev/parsedown": "^1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "^1.4 || ^2.0",
+ "nyholm/psr7": "^1.5",
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
+ "scrutinizer/ocular": "^1.8.1",
+ "symfony/finder": "^5.3 | ^6.0 || ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0",
+ "unleashedtech/php-coding-standard": "^3.1.1",
+ "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ },
+ "suggest": {
+ "symfony/yaml": "v2.3+ required if using the Front Matter extension"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\CommonMark\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
+ "homepage": "https://commonmark.thephpleague.com",
+ "keywords": [
+ "commonmark",
+ "flavored",
+ "gfm",
+ "github",
+ "github-flavored",
+ "markdown",
+ "md",
+ "parser"
+ ],
+ "support": {
+ "docs": "https://commonmark.thephpleague.com/",
+ "forum": "https://github.com/thephpleague/commonmark/discussions",
+ "issues": "https://github.com/thephpleague/commonmark/issues",
+ "rss": "https://github.com/thephpleague/commonmark/releases.atom",
+ "source": "https://github.com/thephpleague/commonmark"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-16T11:46:16+00:00"
+ },
+ {
+ "name": "league/config",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/config.git",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "shasum": ""
+ },
+ "require": {
+ "dflydev/dot-access-data": "^3.0.1",
+ "nette/schema": "^1.2",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.5",
+ "scrutinizer/ocular": "^1.8.1",
+ "unleashedtech/php-coding-standard": "^3.1",
+ "vimeo/psalm": "^4.7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Config\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Define configuration arrays with strict schemas and access values with dot notation",
+ "homepage": "https://config.thephpleague.com",
+ "keywords": [
+ "array",
+ "config",
+ "configuration",
+ "dot",
+ "dot-access",
+ "nested",
+ "schema"
+ ],
+ "support": {
+ "docs": "https://config.thephpleague.com/",
+ "issues": "https://github.com/thephpleague/config/issues",
+ "rss": "https://github.com/thephpleague/config/releases.atom",
+ "source": "https://github.com/thephpleague/config"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-11T20:36:23+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "3.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c",
+ "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c",
+ "shasum": ""
+ },
+ "require": {
+ "league/flysystem-local": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "async-aws/core": "<1.19.0",
+ "async-aws/s3": "<1.14.0",
+ "aws/aws-sdk-php": "3.209.31 || 3.210.0",
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1",
+ "phpseclib/phpseclib": "3.0.15",
+ "symfony/http-client": "<5.2"
+ },
+ "require-dev": {
+ "async-aws/s3": "^1.5 || ^2.0",
+ "async-aws/simple-s3": "^1.1 || ^2.0",
+ "aws/aws-sdk-php": "^3.295.10",
+ "composer/semver": "^3.0",
+ "ext-fileinfo": "*",
+ "ext-ftp": "*",
+ "ext-mongodb": "^1.3",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.5",
+ "google/cloud-storage": "^1.23",
+ "guzzlehttp/psr7": "^2.6",
+ "microsoft/azure-storage-blob": "^1.1",
+ "mongodb/mongodb": "^1.2",
+ "phpseclib/phpseclib": "^3.0.36",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.5.11|^10.0",
+ "sabre/dav": "^4.6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "File storage abstraction for PHP",
+ "keywords": [
+ "WebDAV",
+ "aws",
+ "cloud",
+ "file",
+ "files",
+ "filesystem",
+ "filesystems",
+ "ftp",
+ "s3",
+ "sftp",
+ "storage"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem/issues",
+ "source": "https://github.com/thephpleague/flysystem/tree/3.28.0"
+ },
+ "time": "2024-05-22T10:09:12+00:00"
+ },
+ {
+ "name": "league/flysystem-aws-s3-v3",
+ "version": "3.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
+ "reference": "22071ef1604bc776f5ff2468ac27a752514665c8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/22071ef1604bc776f5ff2468ac27a752514665c8",
+ "reference": "22071ef1604bc776f5ff2468ac27a752514665c8",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-sdk-php": "^3.295.10",
+ "league/flysystem": "^3.10.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\AwsS3V3\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "AWS S3 filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "aws",
+ "file",
+ "files",
+ "filesystem",
+ "s3",
+ "storage"
+ ],
+ "support": {
+ "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.28.0"
+ },
+ "time": "2024-05-06T20:05:52+00:00"
+ },
+ {
+ "name": "league/flysystem-local",
+ "version": "3.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-local.git",
+ "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/13f22ea8be526ea58c2ddff9e158ef7c296e4f40",
+ "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "league/flysystem": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\Local\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Local filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "file",
+ "files",
+ "filesystem",
+ "local"
+ ],
+ "support": {
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.28.0"
+ },
+ "time": "2024-05-06T20:05:52+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "phpstan/phpstan": "^0.12.68",
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\MimeTypeDetection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Mime-type detection for Flysystem",
+ "support": {
+ "issues": "https://github.com/thephpleague/mime-type-detection/issues",
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-01-28T23:22:08+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "3.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8",
+ "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^2.0 || ^3.0"
+ },
+ "provide": {
+ "psr/log-implementation": "3.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7 || ^8",
+ "ext-json": "*",
+ "graylog2/gelf-php": "^1.4.2 || ^2.0",
+ "guzzlehttp/guzzle": "^7.4.5",
+ "guzzlehttp/psr7": "^2.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4 || ^3",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpunit/phpunit": "^10.5.17",
+ "predis/predis": "^1.1 || ^2",
+ "ruflin/elastica": "^7",
+ "symfony/mailer": "^5.4 || ^6",
+ "symfony/mime": "^5.4 || ^6"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "ext-openssl": "Required to send log messages using SSL",
+ "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/3.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-28T09:40:51+00:00"
+ },
+ {
+ "name": "mtdowling/jmespath.php",
+ "version": "2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jmespath/jmespath.php.git",
+ "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
+ "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.17"
+ },
+ "require-dev": {
+ "composer/xdebug-handler": "^3.0.3",
+ "phpunit/phpunit": "^8.5.33"
+ },
+ "bin": [
+ "bin/jp.php"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.8-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/JmesPath.php"
+ ],
+ "psr-4": {
+ "JmesPath\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "Declaratively specify how to extract elements from a JSON document",
+ "keywords": [
+ "json",
+ "jsonpath"
+ ],
+ "support": {
+ "issues": "https://github.com/jmespath/jmespath.php/issues",
+ "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0"
+ },
+ "time": "2024-09-04T18:46:31+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.72.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "shasum": ""
+ },
+ "require": {
+ "carbonphp/carbon-doctrine-types": "*",
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "psr/clock": "^1.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
+ "doctrine/orm": "^2.7 || ^3.0",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "kylekatarnls/multi-tester": "^2.0",
+ "ondrejmirtes/better-reflection": "*",
+ "phpmd/phpmd": "^2.9",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.99 || ^1.7.14",
+ "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "https://markido.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "https://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "https://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "docs": "https://carbon.nesbot.com/docs",
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon#sponsor",
+ "type": "opencollective"
+ },
+ {
+ "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-03T19:18:41+00:00"
+ },
+ {
+ "name": "nette/schema",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/schema.git",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/schema/zipball/a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "reference": "a6d3a6d1f545f01ef38e60f375d1cf1f4de98188",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.4",
+ "phpstan/phpstan-nette": "^1.0",
+ "tracy/tracy": "^2.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "📐 Nette Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/schema/issues",
+ "source": "https://github.com/nette/schema/tree/v1.3.0"
+ },
+ "time": "2023-12-11T11:54:22+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
+ "shasum": ""
+ },
+ "require": {
+ "php": "8.0 - 8.4"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.5",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.5"
+ },
+ "time": "2024-08-07T15:39:19+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v5.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb",
+ "reference": "23c79fbbfb725fb92af9bcf41065c8e9a0d49ddb",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": ">=7.4"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.2.0"
+ },
+ "time": "2024-09-15T16:40:33+00:00"
+ },
+ {
+ "name": "nunomaduro/termwind",
+ "version": "v1.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "symfony/console": "^5.3.0|^6.0.0"
+ },
+ "require-dev": {
+ "ergebnis/phpstan-rules": "^1.0.",
+ "illuminate/console": "^8.0|^9.0",
+ "illuminate/support": "^8.0|^9.0",
+ "laravel/pint": "^1.0.0",
+ "pestphp/pest": "^1.21.0",
+ "pestphp/pest-plugin-mock": "^1.0",
+ "phpstan/phpstan": "^1.4.6",
+ "phpstan/phpstan-strict-rules": "^1.1.0",
+ "symfony/var-dumper": "^5.2.7|^6.0.0",
+ "thecodingmachine/phpstan-strict-rules": "^1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Termwind\\Laravel\\TermwindServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Functions.php"
+ ],
+ "psr-4": {
+ "Termwind\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Its like Tailwind CSS, but for the console.",
+ "keywords": [
+ "cli",
+ "console",
+ "css",
+ "package",
+ "php",
+ "style"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/termwind/issues",
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/xiCO2k",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-08T01:06:31+00:00"
+ },
+ {
+ "name": "phpoption/phpoption",
+ "version": "1.9.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28"
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "1.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpOption\\": "src/PhpOption/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com",
+ "homepage": "https://github.com/schmittjoh"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "Option Type for PHP",
+ "keywords": [
+ "language",
+ "option",
+ "php",
+ "type"
+ ],
+ "support": {
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:41:07+00:00"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
+ },
+ "time": "2021-11-05T16:47:00+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/http-client",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
+ "keywords": [
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-client"
+ },
+ "time": "2023-09-23T14:17:50+00:00"
+ },
+ {
+ "name": "psr/http-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
+ "keywords": [
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-factory"
+ },
+ "time": "2024-04-15T12:06:14+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
+ "keywords": [
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
+ },
+ "time": "2023-04-04T09:54:51+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
+ },
+ "time": "2024-09-11T13:17:53+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+ },
+ "time": "2021-10-29T13:26:27+00:00"
+ },
+ {
+ "name": "psy/psysh",
+ "version": "v0.12.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/2fd717afa05341b4f8152547f142cd2f130f6818",
+ "reference": "2fd717afa05341b4f8152547f142cd2f130f6818",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
+ },
+ "bin": [
+ "bin/psysh"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
+ },
+ "bamarni-bin": {
+ "bin-links": false,
+ "forward-command": false
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Psy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
+ }
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
+ "keywords": [
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
+ ],
+ "support": {
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.4"
+ },
+ "time": "2024-06-10T01:18:23+00:00"
+ },
+ {
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.6"
+ },
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/getallheaders.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
+ }
+ ],
+ "description": "A polyfill for getallheaders.",
+ "support": {
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ },
+ "time": "2019-03-08T08:55:37+00:00"
+ },
+ {
+ "name": "ramsey/collection",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.28.3",
+ "fakerphp/faker": "^1.21",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "mockery/mockery": "^1.5",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpcsstandards/phpcsutils": "^1.0.0-rc1",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "ramsey/coding-standard": "^2.0.3",
+ "ramsey/conventional-commits": "^1.3",
+ "vimeo/psalm": "^5.4"
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Ramsey\\Collection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
+ }
+ ],
+ "description": "A PHP library for representing and manipulating collections.",
+ "keywords": [
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/collection/issues",
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-31T21:50:55+00:00"
+ },
+ {
+ "name": "ramsey/uuid",
+ "version": "4.7.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088",
+ "reference": "91039bc1faa45ba123c4328958e620d382ec7088",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12",
+ "ext-json": "*",
+ "php": "^8.0",
+ "ramsey/collection": "^1.2 || ^2.0"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "captainhook/captainhook": "^5.10",
+ "captainhook/plugin-composer": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "doctrine/annotations": "^1.8",
+ "ergebnis/composer-normalize": "^2.15",
+ "mockery/mockery": "^1.3",
+ "paragonie/random-lib": "^2",
+ "php-mock/php-mock": "^2.2",
+ "php-mock/php-mock-mockery": "^1.3",
+ "php-parallel-lint/php-parallel-lint": "^1.1",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "ramsey/composer-repl": "^1.4",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.9"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ },
+ "type": "library",
+ "extra": {
+ "captainhook": {
+ "force-install": true
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Ramsey\\Uuid\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "keywords": [
+ "guid",
+ "identifier",
+ "uuid"
+ ],
+ "support": {
+ "issues": "https://github.com/ramsey/uuid/issues",
+ "source": "https://github.com/ramsey/uuid/tree/4.7.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-27T21:32:50+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998",
+ "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-15T22:48:29+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/error-handler",
+ "version": "v6.4.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "231f1b2ee80f72daa1972f7340297d67439224f0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/231f1b2ee80f72daa1972f7340297d67439224f0",
+ "reference": "231f1b2ee80f72daa1972f7340297d67439224f0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5",
+ "symfony/http-kernel": "<6.4"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/serializer": "^5.4|^6.0|^7.0"
+ },
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to manage errors and ease debugging PHP code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.10"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-26T12:30:32+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v7.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<6.4",
+ "symfony/service-contracts": "<2.5"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:57:53+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\EventDispatcher\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
+ "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-13T14:27:37+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v6.4.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/117f1f20a7ade7bcea28b861fb79160a21a1e37b",
+ "reference": "117f1f20a7ade7bcea28b861fb79160a21a1e37b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "symfony/cache": "<6.3"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^6.3|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.10"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-26T12:36:27+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1ba6b89d781cb47448155cc70dd2e0f1b0584c79",
+ "reference": "1ba6b89d781cb47448155cc70dd2e0f1b0584c79",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<6.4",
+ "symfony/var-dumper": "<6.3",
+ "twig/twig": "<2.13"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "symfony/clock": "^6.2|^7.0",
+ "symfony/config": "^6.1|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/css-selector": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4.4|^7.0.4",
+ "symfony/stopwatch": "^5.4|^6.0|^7.0",
+ "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "symfony/validator": "^6.4|^7.0",
+ "symfony/var-dumper": "^5.4|^6.4|^7.0",
+ "symfony/var-exporter": "^6.2|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a structured process for converting a Request into a Response",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-30T16:57:20+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v6.4.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45",
+ "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/mime": "^6.2|^7.0",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/http-client": "^5.4|^6.0|^7.0",
+ "symfony/messenger": "^6.2|^7.0",
+ "symfony/twig-bridge": "^6.2|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v6.4.9"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-28T07:59:05+00:00"
+ },
+ {
+ "name": "symfony/mime",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/dba5d5f6073baf7a3576b580cc4a208b4ca00553",
+ "reference": "dba5d5f6073baf7a3576b580cc4a208b4ca00553",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "egulias/email-validator": "~3.0.0",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
+ },
+ "require-dev": {
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.4|^7.0",
+ "symfony/property-access": "^5.4|^6.0|^7.0",
+ "symfony/property-info": "^5.4|^6.0|^7.0",
+ "symfony/serializer": "^6.4.3|^7.0.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows manipulating MIME messages",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "mime",
+ "mime-type"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/mime/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-13T12:15:02+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Trevor Rowbotham",
+ "email": "trevor.rowbotham@pm.me"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
+ "reference": "3833d7255cc303546435cb650316bff708a1c75c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
+ "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Uuid\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for uuid functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-09T11:45:10+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5",
+ "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Executes commands in sub-processes",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/process/tree/v6.4.8"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-05-31T14:49:08+00:00"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a",
+ "reference": "8ee0c24c1bf61c263a26f1b9b6d19e83b1121f2a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.12|^2",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^6.2|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Maps an HTTP request to a set of configuration variables",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/routing/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-29T08:15:38+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v7.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/6cd670a6d968eaeb1c77c2e76091c45c56bc367b",
+ "reference": "6cd670a6d968eaeb1c77c2e76091c45c56bc367b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.5"
+ },
+ "require-dev": {
+ "symfony/emoji": "^7.1",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v7.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-12T09:59:40+00:00"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v6.4.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/94041203f8ac200ae9e7c6a18fa6137814ccecc9",
+ "reference": "94041203f8ac200ae9e7c6a18fa6137814ccecc9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2.5|^3.0"
+ },
+ "conflict": {
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "provide": {
+ "symfony/translation-implementation": "2.3|3.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/translation/tree/v6.4.10"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-26T12:30:32+00:00"
+ },
+ {
+ "name": "symfony/translation-contracts",
+ "version": "v3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T09:32:20+00:00"
+ },
+ {
+ "name": "symfony/uid",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "6a0394ad707de386547223948fac1e0f2805bc0b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/6a0394ad707de386547223948fac1e0f2805bc0b",
+ "reference": "6a0394ad707de386547223948fac1e0f2805bc0b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/polyfill-uuid": "^1.15"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Uid\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to generate and represent UIDs",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "UID",
+ "ulid",
+ "uuid"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/uid/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-12T09:55:28+00:00"
+ },
+ {
+ "name": "symfony/var-dumper",
+ "version": "v6.4.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "ee14c8254a480913268b1e3b1cba8045ed122694"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ee14c8254a480913268b1e3b1cba8045ed122694",
+ "reference": "ee14c8254a480913268b1e3b1cba8045ed122694",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/error-handler": "^6.3|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/uid": "^5.4|^6.0|^7.0",
+ "twig/twig": "^2.13|^3.0.4"
+ },
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "debug",
+ "dump"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-30T16:03:21+00:00"
+ },
+ {
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "v2.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0 || ^8.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "TijsVerkoyen\\CssToInlineStyles\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Tijs Verkoyen",
+ "email": "css_to_inline_styles@verkoyen.eu",
+ "role": "Developer"
+ }
+ ],
+ "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
+ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
+ "support": {
+ "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
+ },
+ "time": "2023-12-08T13:03:43+00:00"
+ },
+ {
+ "name": "vlucas/phpdotenv",
+ "version": "v5.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.1.3",
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.3",
+ "symfony/polyfill-ctype": "^1.24",
+ "symfony/polyfill-mbstring": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "ext-filter": "*",
+ "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ },
+ "suggest": {
+ "ext-filter": "Required to use the boolean validator."
+ },
+ "type": "library",
+ "extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
+ },
+ "branch-alias": {
+ "dev-master": "5.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dotenv\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://github.com/vlucas"
+ }
+ ],
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "support": {
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-07-20T21:52:34+00:00"
+ },
+ {
+ "name": "voku/portable-ascii",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+ },
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
+ "keywords": [
+ "ascii",
+ "clean",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/voku/portable-ascii/issues",
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/portable-ascii",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-08T17:03:00+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.10-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Webmozart\\Assert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
+ "keywords": [
+ "assert",
+ "check",
+ "validate"
+ ],
+ "support": {
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
+ },
+ "time": "2022-06-03T18:03:27+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "fakerphp/faker",
+ "version": "v1.23.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FakerPHP/Faker.git",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "conflict": {
+ "fzaninotto/faker": "*"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "doctrine/persistence": "^1.3 || ^2.0",
+ "ext-intl": "*",
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
+ },
+ "suggest": {
+ "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
+ "ext-curl": "Required by Faker\\Provider\\Image to download images.",
+ "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
+ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
+ "ext-mbstring": "Required for multibyte Unicode string functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "support": {
+ "issues": "https://github.com/FakerPHP/Faker/issues",
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
+ },
+ "time": "2024-01-02T13:46:09+00:00"
+ },
+ {
+ "name": "filp/whoops",
+ "version": "2.15.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/filp/whoops.git",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.5.9 || ^7.0 || ^8.0",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^0.9 || ^1.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
+ "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ },
+ "suggest": {
+ "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
+ "whoops/soap": "Formats errors as SOAP responses"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Whoops\\": "src/Whoops/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Filipe Dobreira",
+ "homepage": "https://github.com/filp",
+ "role": "Developer"
+ }
+ ],
+ "description": "php error handling for cool kids",
+ "homepage": "https://filp.github.io/whoops/",
+ "keywords": [
+ "error",
+ "exception",
+ "handling",
+ "library",
+ "throwable",
+ "whoops"
+ ],
+ "support": {
+ "issues": "https://github.com/filp/whoops/issues",
+ "source": "https://github.com/filp/whoops/tree/2.15.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/denis-sokolov",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-03T12:00:00+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3|^7.0|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ },
+ "time": "2020-07-09T08:09:16+00:00"
+ },
+ {
+ "name": "laravel/pint",
+ "version": "v1.17.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/pint.git",
+ "reference": "9d77be916e145864f10788bb94531d03e1f7b482"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/9d77be916e145864f10788bb94531d03e1f7b482",
+ "reference": "9d77be916e145864f10788bb94531d03e1f7b482",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "ext-xml": "*",
+ "php": "^8.1.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.64.0",
+ "illuminate/view": "^10.48.20",
+ "larastan/larastan": "^2.9.8",
+ "laravel-zero/framework": "^10.4.0",
+ "mockery/mockery": "^1.6.12",
+ "nunomaduro/termwind": "^1.15.1",
+ "pestphp/pest": "^2.35.1"
+ },
+ "bin": [
+ "builds/pint"
+ ],
+ "type": "project",
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Seeders\\": "database/seeders/",
+ "Database\\Factories\\": "database/factories/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "An opinionated code formatter for PHP.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "format",
+ "formatter",
+ "lint",
+ "linter",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/pint/issues",
+ "source": "https://github.com/laravel/pint"
+ },
+ "time": "2024-09-03T15:00:28+00:00"
+ },
+ {
+ "name": "laravel/sail",
+ "version": "v1.32.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sail.git",
+ "reference": "4a7e41d280861ca7e35710cea011a07669b4003b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/4a7e41d280861ca7e35710cea011a07669b4003b",
+ "reference": "4a7e41d280861ca7e35710cea011a07669b4003b",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^9.52.16|^10.0|^11.0",
+ "illuminate/contracts": "^9.52.16|^10.0|^11.0",
+ "illuminate/support": "^9.52.16|^10.0|^11.0",
+ "php": "^8.0",
+ "symfony/console": "^6.0|^7.0",
+ "symfony/yaml": "^6.0|^7.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^7.0|^8.0|^9.0",
+ "phpstan/phpstan": "^1.10"
+ },
+ "bin": [
+ "bin/sail"
+ ],
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Sail\\SailServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Sail\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Docker files for running a basic Laravel application.",
+ "keywords": [
+ "docker",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/sail/issues",
+ "source": "https://github.com/laravel/sail"
+ },
+ "time": "2024-09-11T20:14:29+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.6.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
+ "shasum": ""
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "^2.0.1",
+ "lib-pcre": ">=7.0",
+ "php": ">=7.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5 || ^9.6.17",
+ "symplify/easy-coding-standard": "^12.1.14"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "support": {
+ "docs": "https://docs.mockery.io/",
+ "issues": "https://github.com/mockery/mockery/issues",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
+ },
+ "time": "2024-05-16T03:13:13+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-06-12T14:39:25+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v7.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2",
+ "reference": "49ec67fa7b002712da8526678abd651c09f375b2",
+ "shasum": ""
+ },
+ "require": {
+ "filp/whoops": "^2.15.3",
+ "nunomaduro/termwind": "^1.15.1",
+ "php": "^8.1.0",
+ "symfony/console": "^6.3.4"
+ },
+ "conflict": {
+ "laravel/framework": ">=11.0.0"
+ },
+ "require-dev": {
+ "brianium/paratest": "^7.3.0",
+ "laravel/framework": "^10.28.0",
+ "laravel/pint": "^1.13.3",
+ "laravel/sail": "^1.25.0",
+ "laravel/sanctum": "^3.3.1",
+ "laravel/tinker": "^2.8.2",
+ "nunomaduro/larastan": "^2.6.4",
+ "orchestra/testbench-core": "^8.13.0",
+ "pestphp/pest": "^2.23.2",
+ "phpunit/phpunit": "^10.4.1",
+ "sebastian/environment": "^6.0.1",
+ "spatie/laravel-ignition": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "./src/Adapters/Phpunit/Autoload.php"
+ ],
+ "psr-4": {
+ "NunoMaduro\\Collision\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Cli error handling for console/command-line PHP applications.",
+ "keywords": [
+ "artisan",
+ "cli",
+ "command-line",
+ "console",
+ "error",
+ "handling",
+ "laravel",
+ "laravel-zero",
+ "php",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/collision/issues",
+ "source": "https://github.com/nunomaduro/collision"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-10-11T15:45:01+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "10.1.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "7e308268858ed6baedc8704a304727d20bc07c77"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77",
+ "reference": "7e308268858ed6baedc8704a304727d20bc07c77",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
+ "php": ">=8.1",
+ "phpunit/php-file-iterator": "^4.1.0",
+ "phpunit/php-text-template": "^3.0.1",
+ "sebastian/code-unit-reverse-lookup": "^3.0.0",
+ "sebastian/complexity": "^3.2.0",
+ "sebastian/environment": "^6.1.0",
+ "sebastian/lines-of-code": "^2.0.2",
+ "sebastian/version": "^4.0.1",
+ "theseer/tokenizer": "^1.2.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.1"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "10.1.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T04:31:57+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "4.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-31T06:24:48+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^10.0"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:56:09+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-08-31T14:07:24+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:57:52+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "10.5.35",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "7ac8b4e63f456046dcb4c9787da9382831a1874b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7ac8b4e63f456046dcb4c9787da9382831a1874b",
+ "reference": "7ac8b4e63f456046dcb4c9787da9382831a1874b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.12.0",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=8.1",
+ "phpunit/php-code-coverage": "^10.1.16",
+ "phpunit/php-file-iterator": "^4.1.0",
+ "phpunit/php-invoker": "^4.0.0",
+ "phpunit/php-text-template": "^3.0.1",
+ "phpunit/php-timer": "^6.0.0",
+ "sebastian/cli-parser": "^2.0.1",
+ "sebastian/code-unit": "^2.0.0",
+ "sebastian/comparator": "^5.0.2",
+ "sebastian/diff": "^5.1.1",
+ "sebastian/environment": "^6.1.0",
+ "sebastian/exporter": "^5.1.2",
+ "sebastian/global-state": "^6.0.2",
+ "sebastian/object-enumerator": "^5.0.0",
+ "sebastian/recursion-context": "^5.0.0",
+ "sebastian/type": "^4.0.0",
+ "sebastian/version": "^4.0.1"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "10.5-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.35"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-19T10:52:21+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+ "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:12:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:58:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:59:15+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "5.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53",
+ "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/diff": "^5.0",
+ "sebastian/exporter": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-12T06:03:08+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T08:37:17+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "5.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
+ "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0",
+ "symfony/process": "^6.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:15:17+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "6.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
+ "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "https://github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "security": "https://github.com/sebastianbergmann/environment/security/policy",
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-23T08:47:14+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "5.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+ "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:17:12+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "6.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+ "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "6.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "https://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T07:19:19+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-21T08:38:20+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:08:32+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:06:18+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "5.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:05:40+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T07:10:45+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-07T11:34:05+00:00"
+ },
+ {
+ "name": "spatie/backtrace",
+ "version": "1.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/1a9a145b044677ae3424693f7b06479fc8c137a9",
+ "reference": "1a9a145b044677ae3424693f7b06479fc8c137a9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "laravel/serializable-closure": "^1.3",
+ "phpunit/phpunit": "^9.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2",
+ "symfony/var-dumper": "^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Backtrace\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van de Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A better backtrace",
+ "homepage": "https://github.com/spatie/backtrace",
+ "keywords": [
+ "Backtrace",
+ "spatie"
+ ],
+ "support": {
+ "source": "https://github.com/spatie/backtrace/tree/1.6.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/spatie",
+ "type": "github"
+ },
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
+ }
+ ],
+ "time": "2024-07-22T08:21:24+00:00"
+ },
+ {
+ "name": "spatie/error-solutions",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/error-solutions.git",
+ "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/error-solutions/zipball/ae7393122eda72eed7cc4f176d1e96ea444f2d67",
+ "reference": "ae7393122eda72eed7cc4f176d1e96ea444f2d67",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "illuminate/broadcasting": "^10.0|^11.0",
+ "illuminate/cache": "^10.0|^11.0",
+ "illuminate/support": "^10.0|^11.0",
+ "livewire/livewire": "^2.11|^3.3.5",
+ "openai-php/client": "^0.10.1",
+ "orchestra/testbench": "^7.0|8.22.3|^9.0",
+ "pestphp/pest": "^2.20",
+ "phpstan/phpstan": "^1.11",
+ "psr/simple-cache": "^3.0",
+ "psr/simple-cache-implementation": "^3.0",
+ "spatie/ray": "^1.28",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "legacy/ignition",
+ "Spatie\\ErrorSolutions\\": "src",
+ "Spatie\\LaravelIgnition\\": "legacy/laravel-ignition"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ruben Van Assche",
+ "email": "ruben@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "This is my package error-solutions",
+ "homepage": "https://github.com/spatie/error-solutions",
+ "keywords": [
+ "error-solutions",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/error-solutions/issues",
+ "source": "https://github.com/spatie/error-solutions/tree/1.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-07-25T11:06:04+00:00"
+ },
+ {
+ "name": "spatie/flare-client-php",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/flare-client-php.git",
+ "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122",
+ "reference": "180f8ca4c0d0d6fc51477bd8c53ce37ab5a96122",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.6.1",
+ "symfony/http-foundation": "^5.2|^6.0|^7.0",
+ "symfony/mime": "^5.2|^6.0|^7.0",
+ "symfony/process": "^5.2|^6.0|^7.0",
+ "symfony/var-dumper": "^5.2|^6.0|^7.0"
+ },
+ "require-dev": {
+ "dms/phpunit-arraysubset-asserts": "^0.5.0",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/pest-plugin-snapshots": "^1.0|^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\FlareClient\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/spatie/flare-client-php",
+ "keywords": [
+ "exception",
+ "flare",
+ "reporting",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/flare-client-php/issues",
+ "source": "https://github.com/spatie/flare-client-php/tree/1.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-01T08:27:26+00:00"
+ },
+ {
+ "name": "spatie/ignition",
+ "version": "1.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/ignition.git",
+ "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/e3a68e137371e1eb9edc7f78ffa733f3b98991d2",
+ "reference": "e3a68e137371e1eb9edc7f78ffa733f3b98991d2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "spatie/error-solutions": "^1.0",
+ "spatie/flare-client-php": "^1.7",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ },
+ "require-dev": {
+ "illuminate/cache": "^9.52|^10.0|^11.0",
+ "mockery/mockery": "^1.4",
+ "pestphp/pest": "^1.20|^2.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "psr/simple-cache-implementation": "*",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for PHP applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/ignition/issues",
+ "source": "https://github.com/spatie/ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-12T14:55:22+00:00"
+ },
+ {
+ "name": "spatie/laravel-ignition",
+ "version": "2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/laravel-ignition.git",
+ "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/3c067b75bfb50574db8f7e2c3978c65eed71126c",
+ "reference": "3c067b75bfb50574db8f7e2c3978c65eed71126c",
+ "shasum": ""
+ },
+ "require": {
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "illuminate/support": "^10.0|^11.0",
+ "php": "^8.1",
+ "spatie/ignition": "^1.15",
+ "symfony/console": "^6.2.3|^7.0",
+ "symfony/var-dumper": "^6.2.3|^7.0"
+ },
+ "require-dev": {
+ "livewire/livewire": "^2.11|^3.3.5",
+ "mockery/mockery": "^1.5.1",
+ "openai-php/client": "^0.8.1",
+ "orchestra/testbench": "8.22.3|^9.0",
+ "pestphp/pest": "^2.34",
+ "phpstan/extension-installer": "^1.3.1",
+ "phpstan/phpstan-deprecation-rules": "^1.1.1",
+ "phpstan/phpstan-phpunit": "^1.3.16",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "psr/simple-cache-implementation": "Needed to cache solutions from OpenAI"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
+ }
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Spatie\\LaravelIgnition\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
+ "support": {
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/laravel-ignition/issues",
+ "source": "https://github.com/spatie/laravel-ignition"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2024-06-12T15:01:18+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v7.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "92e080b851c1c655c786a2da77f188f2dccd0f4b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/92e080b851c1c655c786a2da77f188f2dccd0f4b",
+ "reference": "92e080b851c1c655c786a2da77f188f2dccd0f4b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v7.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-08-12T09:59:40+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:36:25+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": {
+ "php": "^8.1"
+ },
+ "platform-dev": [],
+ "plugin-api-version": "2.6.0"
+}
diff --git a/think-backend.greaterchiangmai.com/config/app.php b/think-backend.greaterchiangmai.com/config/app.php
new file mode 100644
index 0000000..b5f97d0
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/app.php
@@ -0,0 +1,190 @@
+ env('APP_NAME', 'Laravel'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Environment
+ |--------------------------------------------------------------------------
+ |
+ | This value determines the "environment" your application is currently
+ | running in. This may determine how you prefer to configure various
+ | services the application utilizes. Set this in your ".env" file.
+ |
+ */
+
+ 'env' => env('APP_ENV', 'production'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Debug Mode
+ |--------------------------------------------------------------------------
+ |
+ | When your application is in debug mode, detailed error messages with
+ | stack traces will be shown on every error that occurs within your
+ | application. If disabled, a simple generic error page is shown.
+ |
+ */
+
+ 'debug' => (bool) env('APP_DEBUG', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application URL
+ |--------------------------------------------------------------------------
+ |
+ | This URL is used by the console to properly generate URLs when using
+ | the Artisan command line tool. You should set this to the root of
+ | your application so that it is used when running Artisan tasks.
+ |
+ */
+
+ 'url' => env('APP_URL', 'http://localhost'),
+
+ 'asset_url' => env('ASSET_URL'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Timezone
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the default timezone for your application, which
+ | will be used by the PHP date and date-time functions. We have gone
+ | ahead and set this to a sensible default for you out of the box.
+ |
+ */
+
+ 'timezone' => 'UTC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Locale Configuration
+ |--------------------------------------------------------------------------
+ |
+ | The application locale determines the default locale that will be used
+ | by the translation service provider. You are free to set this value
+ | to any of the locales which will be supported by the application.
+ |
+ */
+
+ 'locale' => 'en',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Application Fallback Locale
+ |--------------------------------------------------------------------------
+ |
+ | The fallback locale determines the locale to use when the current one
+ | is not available. You may change the value to correspond to any of
+ | the language folders that are provided through your application.
+ |
+ */
+
+ 'fallback_locale' => 'en',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Faker Locale
+ |--------------------------------------------------------------------------
+ |
+ | This locale will be used by the Faker PHP library when generating fake
+ | data for your database seeds. For example, this will be used to get
+ | localized telephone numbers, street address information and more.
+ |
+ */
+
+ 'faker_locale' => 'en_US',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Encryption Key
+ |--------------------------------------------------------------------------
+ |
+ | This key is used by the Illuminate encrypter service and should be set
+ | to a random, 32 character string, otherwise these encrypted strings
+ | will not be safe. Please do this before deploying an application!
+ |
+ */
+
+ 'key' => env('APP_KEY'),
+
+ 'cipher' => 'AES-256-CBC',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Maintenance Mode Driver
+ |--------------------------------------------------------------------------
+ |
+ | These configuration options determine the driver used to determine and
+ | manage Laravel's "maintenance mode" status. The "cache" driver will
+ | allow maintenance mode to be controlled across multiple machines.
+ |
+ | Supported drivers: "file", "cache"
+ |
+ */
+
+ 'maintenance' => [
+ 'driver' => 'file',
+ // 'store' => 'redis',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Autoloaded Service Providers
+ |--------------------------------------------------------------------------
+ |
+ | The service providers listed here will be automatically loaded on the
+ | request to your application. Feel free to add your own services to
+ | this array to grant expanded functionality to your applications.
+ |
+ */
+
+ 'providers' => ServiceProvider::defaultProviders()->merge([
+ /*
+ * Package Service Providers...
+ */
+
+ /*
+ * Application Service Providers...
+ */
+ App\Providers\AppServiceProvider::class,
+ App\Providers\AuthServiceProvider::class,
+ // App\Providers\BroadcastServiceProvider::class,
+ App\Providers\EventServiceProvider::class,
+ App\Providers\RouteServiceProvider::class,
+ Intervention\Image\ImageServiceProvider::class,
+ ])->toArray(),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Class Aliases
+ |--------------------------------------------------------------------------
+ |
+ | This array of class aliases will be registered when this application
+ | is started. However, feel free to register as many as you wish as
+ | the aliases are "lazy" loaded so they don't hinder performance.
+ |
+ */
+
+ 'aliases' => Facade::defaultAliases()->merge([
+ // 'Example' => App\Facades\Example::class,
+ 'Image' => Intervention\Image\Facades\Image::class,
+ ])->toArray(),
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/auth.php b/think-backend.greaterchiangmai.com/config/auth.php
new file mode 100644
index 0000000..9548c15
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/auth.php
@@ -0,0 +1,115 @@
+ [
+ 'guard' => 'web',
+ 'passwords' => 'users',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Guards
+ |--------------------------------------------------------------------------
+ |
+ | Next, you may define every authentication guard for your application.
+ | Of course, a great default configuration has been defined for you
+ | here which uses session storage and the Eloquent user provider.
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | Supported: "session"
+ |
+ */
+
+ 'guards' => [
+ 'web' => [
+ 'driver' => 'session',
+ 'provider' => 'users',
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | User Providers
+ |--------------------------------------------------------------------------
+ |
+ | All authentication drivers have a user provider. This defines how the
+ | users are actually retrieved out of your database or other storage
+ | mechanisms used by this application to persist your user's data.
+ |
+ | If you have multiple user tables or models you may configure multiple
+ | sources which represent each model / table. These sources may then
+ | be assigned to any extra authentication guards you have defined.
+ |
+ | Supported: "database", "eloquent"
+ |
+ */
+
+ 'providers' => [
+ 'users' => [
+ 'driver' => 'eloquent',
+ 'model' => App\Models\User::class,
+ ],
+
+ // 'users' => [
+ // 'driver' => 'database',
+ // 'table' => 'users',
+ // ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Resetting Passwords
+ |--------------------------------------------------------------------------
+ |
+ | You may specify multiple password reset configurations if you have more
+ | than one user table or model in the application and you want to have
+ | separate password reset settings based on the specific user types.
+ |
+ | The expiry time is the number of minutes that each reset token will be
+ | considered valid. This security feature keeps tokens short-lived so
+ | they have less time to be guessed. You may change this as needed.
+ |
+ | The throttle setting is the number of seconds a user must wait before
+ | generating more password reset tokens. This prevents the user from
+ | quickly generating a very large amount of password reset tokens.
+ |
+ */
+
+ 'passwords' => [
+ 'users' => [
+ 'provider' => 'users',
+ 'table' => 'password_reset_tokens',
+ 'expire' => 60,
+ 'throttle' => 60,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Password Confirmation Timeout
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the amount of seconds before a password confirmation
+ | times out and the user is prompted to re-enter their password via the
+ | confirmation screen. By default, the timeout lasts for three hours.
+ |
+ */
+
+ 'password_timeout' => 10800,
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/broadcasting.php b/think-backend.greaterchiangmai.com/config/broadcasting.php
new file mode 100644
index 0000000..2410485
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/broadcasting.php
@@ -0,0 +1,71 @@
+ env('BROADCAST_DRIVER', 'null'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Broadcast Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the broadcast connections that will be used
+ | to broadcast events to other systems or over websockets. Samples of
+ | each available type of connection are provided inside this array.
+ |
+ */
+
+ 'connections' => [
+
+ 'pusher' => [
+ 'driver' => 'pusher',
+ 'key' => env('PUSHER_APP_KEY'),
+ 'secret' => env('PUSHER_APP_SECRET'),
+ 'app_id' => env('PUSHER_APP_ID'),
+ 'options' => [
+ 'cluster' => env('PUSHER_APP_CLUSTER'),
+ 'host' => env('PUSHER_HOST') ?: 'api-'.env('PUSHER_APP_CLUSTER', 'mt1').'.pusher.com',
+ 'port' => env('PUSHER_PORT', 443),
+ 'scheme' => env('PUSHER_SCHEME', 'https'),
+ 'encrypted' => true,
+ 'useTLS' => env('PUSHER_SCHEME', 'https') === 'https',
+ ],
+ 'client_options' => [
+ // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html
+ ],
+ ],
+
+ 'ably' => [
+ 'driver' => 'ably',
+ 'key' => env('ABLY_KEY'),
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ ],
+
+ 'log' => [
+ 'driver' => 'log',
+ ],
+
+ 'null' => [
+ 'driver' => 'null',
+ ],
+
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/cache.php b/think-backend.greaterchiangmai.com/config/cache.php
new file mode 100644
index 0000000..d4171e2
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/cache.php
@@ -0,0 +1,111 @@
+ env('CACHE_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Stores
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define all of the cache "stores" for your application as
+ | well as their drivers. You may even define multiple stores for the
+ | same cache driver to group types of items stored in your caches.
+ |
+ | Supported drivers: "apc", "array", "database", "file",
+ | "memcached", "redis", "dynamodb", "octane", "null"
+ |
+ */
+
+ 'stores' => [
+
+ 'apc' => [
+ 'driver' => 'apc',
+ ],
+
+ 'array' => [
+ 'driver' => 'array',
+ 'serialize' => false,
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'cache',
+ 'connection' => null,
+ 'lock_connection' => null,
+ ],
+
+ 'file' => [
+ 'driver' => 'file',
+ 'path' => storage_path('framework/cache/data'),
+ 'lock_path' => storage_path('framework/cache/data'),
+ ],
+
+ 'memcached' => [
+ 'driver' => 'memcached',
+ 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
+ 'sasl' => [
+ env('MEMCACHED_USERNAME'),
+ env('MEMCACHED_PASSWORD'),
+ ],
+ 'options' => [
+ // Memcached::OPT_CONNECT_TIMEOUT => 2000,
+ ],
+ 'servers' => [
+ [
+ 'host' => env('MEMCACHED_HOST', '127.0.0.1'),
+ 'port' => env('MEMCACHED_PORT', 11211),
+ 'weight' => 100,
+ ],
+ ],
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'cache',
+ 'lock_connection' => 'default',
+ ],
+
+ 'dynamodb' => [
+ 'driver' => 'dynamodb',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
+ 'endpoint' => env('DYNAMODB_ENDPOINT'),
+ ],
+
+ 'octane' => [
+ 'driver' => 'octane',
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Cache Key Prefix
+ |--------------------------------------------------------------------------
+ |
+ | When utilizing the APC, database, memcached, Redis, or DynamoDB cache
+ | stores there might be other applications using the same cache. For
+ | that reason, you may prefix every cache key to avoid collisions.
+ |
+ */
+
+ 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'),
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/cors.php b/think-backend.greaterchiangmai.com/config/cors.php
new file mode 100644
index 0000000..8a39e6d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/cors.php
@@ -0,0 +1,34 @@
+ ['api/*', 'sanctum/csrf-cookie'],
+
+ 'allowed_methods' => ['*'],
+
+ 'allowed_origins' => ['*'],
+
+ 'allowed_origins_patterns' => [],
+
+ 'allowed_headers' => ['*'],
+
+ 'exposed_headers' => [],
+
+ 'max_age' => 0,
+
+ 'supports_credentials' => false,
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/database.php b/think-backend.greaterchiangmai.com/config/database.php
new file mode 100644
index 0000000..137ad18
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/database.php
@@ -0,0 +1,151 @@
+ env('DB_CONNECTION', 'mysql'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Database Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here are each of the database connections setup for your application.
+ | Of course, examples of configuring each database platform that is
+ | supported by Laravel is shown below to make development simple.
+ |
+ |
+ | All database work in Laravel is done through the PHP PDO facilities
+ | so make sure you have the driver for your particular database of
+ | choice installed on your machine before you begin development.
+ |
+ */
+
+ 'connections' => [
+
+ 'sqlite' => [
+ 'driver' => 'sqlite',
+ 'url' => env('DATABASE_URL'),
+ 'database' => env('DB_DATABASE', database_path('database.sqlite')),
+ 'prefix' => '',
+ 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
+ ],
+
+ 'mysql' => [
+ 'driver' => 'mysql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '3306'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'unix_socket' => env('DB_SOCKET', ''),
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'strict' => true,
+ 'engine' => null,
+ 'options' => extension_loaded('pdo_mysql') ? array_filter([
+ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ ]) : [],
+ ],
+
+ 'pgsql' => [
+ 'driver' => 'pgsql',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', '127.0.0.1'),
+ 'port' => env('DB_PORT', '5432'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ 'search_path' => 'public',
+ 'sslmode' => 'prefer',
+ ],
+
+ 'sqlsrv' => [
+ 'driver' => 'sqlsrv',
+ 'url' => env('DATABASE_URL'),
+ 'host' => env('DB_HOST', 'localhost'),
+ 'port' => env('DB_PORT', '1433'),
+ 'database' => env('DB_DATABASE', 'forge'),
+ 'username' => env('DB_USERNAME', 'forge'),
+ 'password' => env('DB_PASSWORD', ''),
+ 'charset' => 'utf8',
+ 'prefix' => '',
+ 'prefix_indexes' => true,
+ // 'encrypt' => env('DB_ENCRYPT', 'yes'),
+ // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Migration Repository Table
+ |--------------------------------------------------------------------------
+ |
+ | This table keeps track of all the migrations that have already run for
+ | your application. Using this information, we can determine which of
+ | the migrations on disk haven't actually been run in the database.
+ |
+ */
+
+ 'migrations' => 'migrations',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Redis Databases
+ |--------------------------------------------------------------------------
+ |
+ | Redis is an open source, fast, and advanced key-value store that also
+ | provides a richer body of commands than a typical key-value system
+ | such as APC or Memcached. Laravel makes it easy to dig right in.
+ |
+ */
+
+ 'redis' => [
+
+ 'client' => env('REDIS_CLIENT', 'phpredis'),
+
+ 'options' => [
+ 'cluster' => env('REDIS_CLUSTER', 'redis'),
+ 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
+ ],
+
+ 'default' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'username' => env('REDIS_USERNAME'),
+ 'password' => env('REDIS_PASSWORD'),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_DB', '0'),
+ ],
+
+ 'cache' => [
+ 'url' => env('REDIS_URL'),
+ 'host' => env('REDIS_HOST', '127.0.0.1'),
+ 'username' => env('REDIS_USERNAME'),
+ 'password' => env('REDIS_PASSWORD'),
+ 'port' => env('REDIS_PORT', '6379'),
+ 'database' => env('REDIS_CACHE_DB', '1'),
+ ],
+
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/filesystems.php b/think-backend.greaterchiangmai.com/config/filesystems.php
new file mode 100644
index 0000000..e88172b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/filesystems.php
@@ -0,0 +1,86 @@
+ env('FILESYSTEM_DISK', 'local'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Filesystem Disks
+ |--------------------------------------------------------------------------
+ |
+ | Below you may configure as many filesystem disks as necessary, and you
+ | may even configure multiple disks for the same driver. Examples for
+ | most supported storage drivers are configured here for reference.
+ |
+ | Supported drivers: "local", "ftp", "sftp", "s3"
+ |
+ */
+
+ 'disks' => [
+
+ 'local' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app'),
+ 'throw' => false,
+ ],
+
+ 'public' => [
+ 'driver' => 'local',
+ 'root' => storage_path('app/public'),
+ 'url' => env('APP_URL').'/storage',
+ 'visibility' => 'public',
+ 'throw' => false,
+ ],
+
+ 's3' => [
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'url' => env('AWS_URL'),
+ 'endpoint' => env('AWS_ENDPOINT'),
+ 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
+ 'throw' => false,
+ ],
+ 'r2' => [
+ 'driver' => 's3',
+ 'key' => env('R2_ACCESS_KEY_ID'),
+ 'secret' => env('R2_SECRET_ACCESS_KEY'),
+ 'region' => env('R2_REGION', 'auto'),
+ 'bucket' => env('R2_BUCKET'),
+ 'url' => env('R2_URL'),
+ 'endpoint' => env('R2_ENDPOINT'),
+ 'use_path_style_endpoint' => true,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Symbolic Links
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the symbolic links that will be created when the
+ | `storage:link` Artisan command is executed. The array keys should be
+ | the locations of the links and the values should be their targets.
+ |
+ */
+
+ 'links' => [
+ public_path('storage') => storage_path('app/public'),
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/hashing.php b/think-backend.greaterchiangmai.com/config/hashing.php
new file mode 100644
index 0000000..0e8a0bb
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/hashing.php
@@ -0,0 +1,54 @@
+ 'bcrypt',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Bcrypt Options
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the configuration options that should be used when
+ | passwords are hashed using the Bcrypt algorithm. This will allow you
+ | to control the amount of time it takes to hash the given password.
+ |
+ */
+
+ 'bcrypt' => [
+ 'rounds' => env('BCRYPT_ROUNDS', 12),
+ 'verify' => true,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Argon Options
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the configuration options that should be used when
+ | passwords are hashed using the Argon algorithm. These will allow you
+ | to control the amount of time it takes to hash the given password.
+ |
+ */
+
+ 'argon' => [
+ 'memory' => 65536,
+ 'threads' => 1,
+ 'time' => 4,
+ 'verify' => true,
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/logging.php b/think-backend.greaterchiangmai.com/config/logging.php
new file mode 100644
index 0000000..c44d276
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/logging.php
@@ -0,0 +1,131 @@
+ env('LOG_CHANNEL', 'stack'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Deprecations Log Channel
+ |--------------------------------------------------------------------------
+ |
+ | This option controls the log channel that should be used to log warnings
+ | regarding deprecated PHP and library features. This allows you to get
+ | your application ready for upcoming major versions of dependencies.
+ |
+ */
+
+ 'deprecations' => [
+ 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'),
+ 'trace' => false,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Channels
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the log channels for your application. Out of
+ | the box, Laravel uses the Monolog PHP logging library. This gives
+ | you a variety of powerful log handlers / formatters to utilize.
+ |
+ | Available Drivers: "single", "daily", "slack", "syslog",
+ | "errorlog", "monolog",
+ | "custom", "stack"
+ |
+ */
+
+ 'channels' => [
+ 'stack' => [
+ 'driver' => 'stack',
+ 'channels' => ['single'],
+ 'ignore_exceptions' => false,
+ ],
+
+ 'single' => [
+ 'driver' => 'single',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'daily' => [
+ 'driver' => 'daily',
+ 'path' => storage_path('logs/laravel.log'),
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'days' => 14,
+ 'replace_placeholders' => true,
+ ],
+
+ 'slack' => [
+ 'driver' => 'slack',
+ 'url' => env('LOG_SLACK_WEBHOOK_URL'),
+ 'username' => 'Laravel Log',
+ 'emoji' => ':boom:',
+ 'level' => env('LOG_LEVEL', 'critical'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'papertrail' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class),
+ 'handler_with' => [
+ 'host' => env('PAPERTRAIL_URL'),
+ 'port' => env('PAPERTRAIL_PORT'),
+ 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'),
+ ],
+ 'processors' => [PsrLogMessageProcessor::class],
+ ],
+
+ 'stderr' => [
+ 'driver' => 'monolog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'handler' => StreamHandler::class,
+ 'formatter' => env('LOG_STDERR_FORMATTER'),
+ 'with' => [
+ 'stream' => 'php://stderr',
+ ],
+ 'processors' => [PsrLogMessageProcessor::class],
+ ],
+
+ 'syslog' => [
+ 'driver' => 'syslog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'facility' => LOG_USER,
+ 'replace_placeholders' => true,
+ ],
+
+ 'errorlog' => [
+ 'driver' => 'errorlog',
+ 'level' => env('LOG_LEVEL', 'debug'),
+ 'replace_placeholders' => true,
+ ],
+
+ 'null' => [
+ 'driver' => 'monolog',
+ 'handler' => NullHandler::class,
+ ],
+
+ 'emergency' => [
+ 'path' => storage_path('logs/laravel.log'),
+ ],
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/mail.php b/think-backend.greaterchiangmai.com/config/mail.php
new file mode 100644
index 0000000..e894b2e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/mail.php
@@ -0,0 +1,134 @@
+ env('MAIL_MAILER', 'smtp'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Mailer Configurations
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure all of the mailers used by your application plus
+ | their respective settings. Several examples have been configured for
+ | you and you are free to add your own as your application requires.
+ |
+ | Laravel supports a variety of mail "transport" drivers to be used while
+ | sending an e-mail. You will specify which one you are using for your
+ | mailers below. You are free to add additional mailers as required.
+ |
+ | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
+ | "postmark", "log", "array", "failover", "roundrobin"
+ |
+ */
+
+ 'mailers' => [
+ 'smtp' => [
+ 'transport' => 'smtp',
+ 'url' => env('MAIL_URL'),
+ 'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+ 'port' => env('MAIL_PORT', 587),
+ 'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+ 'username' => env('MAIL_USERNAME'),
+ 'password' => env('MAIL_PASSWORD'),
+ 'timeout' => null,
+ 'local_domain' => env('MAIL_EHLO_DOMAIN'),
+ ],
+
+ 'ses' => [
+ 'transport' => 'ses',
+ ],
+
+ 'postmark' => [
+ 'transport' => 'postmark',
+ // 'message_stream_id' => null,
+ // 'client' => [
+ // 'timeout' => 5,
+ // ],
+ ],
+
+ 'mailgun' => [
+ 'transport' => 'mailgun',
+ // 'client' => [
+ // 'timeout' => 5,
+ // ],
+ ],
+
+ 'sendmail' => [
+ 'transport' => 'sendmail',
+ 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
+ ],
+
+ 'log' => [
+ 'transport' => 'log',
+ 'channel' => env('MAIL_LOG_CHANNEL'),
+ ],
+
+ 'array' => [
+ 'transport' => 'array',
+ ],
+
+ 'failover' => [
+ 'transport' => 'failover',
+ 'mailers' => [
+ 'smtp',
+ 'log',
+ ],
+ ],
+
+ 'roundrobin' => [
+ 'transport' => 'roundrobin',
+ 'mailers' => [
+ 'ses',
+ 'postmark',
+ ],
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Global "From" Address
+ |--------------------------------------------------------------------------
+ |
+ | You may wish for all e-mails sent by your application to be sent from
+ | the same address. Here, you may specify a name and address that is
+ | used globally for all e-mails that are sent by your application.
+ |
+ */
+
+ 'from' => [
+ 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
+ 'name' => env('MAIL_FROM_NAME', 'Example'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Markdown Mail Settings
+ |--------------------------------------------------------------------------
+ |
+ | If you are using Markdown based email rendering, you may configure your
+ | theme and component paths here, allowing you to customize the design
+ | of the emails. Or, you may simply stick with the Laravel defaults!
+ |
+ */
+
+ 'markdown' => [
+ 'theme' => 'default',
+
+ 'paths' => [
+ resource_path('views/vendor/mail'),
+ ],
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/queue.php b/think-backend.greaterchiangmai.com/config/queue.php
new file mode 100644
index 0000000..01c6b05
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/queue.php
@@ -0,0 +1,109 @@
+ env('QUEUE_CONNECTION', 'sync'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Connections
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure the connection information for each server that
+ | is used by your application. A default configuration has been added
+ | for each back-end shipped with Laravel. You are free to add more.
+ |
+ | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null"
+ |
+ */
+
+ 'connections' => [
+
+ 'sync' => [
+ 'driver' => 'sync',
+ ],
+
+ 'database' => [
+ 'driver' => 'database',
+ 'table' => 'jobs',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'after_commit' => false,
+ ],
+
+ 'beanstalkd' => [
+ 'driver' => 'beanstalkd',
+ 'host' => 'localhost',
+ 'queue' => 'default',
+ 'retry_after' => 90,
+ 'block_for' => 0,
+ 'after_commit' => false,
+ ],
+
+ 'sqs' => [
+ 'driver' => 'sqs',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'),
+ 'queue' => env('SQS_QUEUE', 'default'),
+ 'suffix' => env('SQS_SUFFIX'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ 'after_commit' => false,
+ ],
+
+ 'redis' => [
+ 'driver' => 'redis',
+ 'connection' => 'default',
+ 'queue' => env('REDIS_QUEUE', 'default'),
+ 'retry_after' => 90,
+ 'block_for' => null,
+ 'after_commit' => false,
+ ],
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Job Batching
+ |--------------------------------------------------------------------------
+ |
+ | The following options configure the database and table that store job
+ | batching information. These options can be updated to any database
+ | connection and table which has been defined by your application.
+ |
+ */
+
+ 'batching' => [
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'job_batches',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Failed Queue Jobs
+ |--------------------------------------------------------------------------
+ |
+ | These options configure the behavior of failed queue job logging so you
+ | can control which database and table are used to store the jobs that
+ | have failed. You may change them to any database / table you wish.
+ |
+ */
+
+ 'failed' => [
+ 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
+ 'database' => env('DB_CONNECTION', 'mysql'),
+ 'table' => 'failed_jobs',
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/sanctum.php b/think-backend.greaterchiangmai.com/config/sanctum.php
new file mode 100644
index 0000000..35d75b3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/sanctum.php
@@ -0,0 +1,83 @@
+ explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
+ '%s%s',
+ 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1',
+ Sanctum::currentApplicationUrlWithPort()
+ ))),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Sanctum Guards
+ |--------------------------------------------------------------------------
+ |
+ | This array contains the authentication guards that will be checked when
+ | Sanctum is trying to authenticate a request. If none of these guards
+ | are able to authenticate the request, Sanctum will use the bearer
+ | token that's present on an incoming request for authentication.
+ |
+ */
+
+ 'guard' => ['web'],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Expiration Minutes
+ |--------------------------------------------------------------------------
+ |
+ | This value controls the number of minutes until an issued token will be
+ | considered expired. This will override any values set in the token's
+ | "expires_at" attribute, but first-party sessions are not affected.
+ |
+ */
+
+ 'expiration' => null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Token Prefix
+ |--------------------------------------------------------------------------
+ |
+ | Sanctum can prefix new tokens in order to take advantage of numerous
+ | security scanning initiatives maintained by open source platforms
+ | that notify developers if they commit tokens into repositories.
+ |
+ | See: https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning
+ |
+ */
+
+ 'token_prefix' => env('SANCTUM_TOKEN_PREFIX', ''),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Sanctum Middleware
+ |--------------------------------------------------------------------------
+ |
+ | When authenticating your first-party SPA with Sanctum you may need to
+ | customize some of the middleware Sanctum uses while processing the
+ | request. You may change the middleware listed below as required.
+ |
+ */
+
+ 'middleware' => [
+ 'authenticate_session' => Laravel\Sanctum\Http\Middleware\AuthenticateSession::class,
+ 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class,
+ 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class,
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/services.php b/think-backend.greaterchiangmai.com/config/services.php
new file mode 100644
index 0000000..0ace530
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/services.php
@@ -0,0 +1,34 @@
+ [
+ 'domain' => env('MAILGUN_DOMAIN'),
+ 'secret' => env('MAILGUN_SECRET'),
+ 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
+ 'scheme' => 'https',
+ ],
+
+ 'postmark' => [
+ 'token' => env('POSTMARK_TOKEN'),
+ ],
+
+ 'ses' => [
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
+ ],
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/session.php b/think-backend.greaterchiangmai.com/config/session.php
new file mode 100644
index 0000000..e738cb3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/session.php
@@ -0,0 +1,214 @@
+ env('SESSION_DRIVER', 'file'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Lifetime
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify the number of minutes that you wish the session
+ | to be allowed to remain idle before it expires. If you want them
+ | to immediately expire on the browser closing, set that option.
+ |
+ */
+
+ 'lifetime' => env('SESSION_LIFETIME', 120),
+
+ 'expire_on_close' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Encryption
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to easily specify that all of your session data
+ | should be encrypted before it is stored. All encryption will be run
+ | automatically by Laravel and you can use the Session like normal.
+ |
+ */
+
+ 'encrypt' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session File Location
+ |--------------------------------------------------------------------------
+ |
+ | When using the native session driver, we need a location where session
+ | files may be stored. A default has been set for you but a different
+ | location may be specified. This is only needed for file sessions.
+ |
+ */
+
+ 'files' => storage_path('framework/sessions'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Connection
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" or "redis" session drivers, you may specify a
+ | connection that should be used to manage these sessions. This should
+ | correspond to a connection in your database configuration options.
+ |
+ */
+
+ 'connection' => env('SESSION_CONNECTION'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Database Table
+ |--------------------------------------------------------------------------
+ |
+ | When using the "database" session driver, you may specify the table we
+ | should use to manage the sessions. Of course, a sensible default is
+ | provided for you; however, you are free to change this as needed.
+ |
+ */
+
+ 'table' => 'sessions',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cache Store
+ |--------------------------------------------------------------------------
+ |
+ | While using one of the framework's cache driven session backends you may
+ | list a cache store that should be used for these sessions. This value
+ | must match with one of the application's configured cache "stores".
+ |
+ | Affects: "apc", "dynamodb", "memcached", "redis"
+ |
+ */
+
+ 'store' => env('SESSION_STORE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Sweeping Lottery
+ |--------------------------------------------------------------------------
+ |
+ | Some session drivers must manually sweep their storage location to get
+ | rid of old sessions from storage. Here are the chances that it will
+ | happen on a given request. By default, the odds are 2 out of 100.
+ |
+ */
+
+ 'lottery' => [2, 100],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Name
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the name of the cookie used to identify a session
+ | instance by ID. The name specified here will get used every time a
+ | new session cookie is created by the framework for every driver.
+ |
+ */
+
+ 'cookie' => env(
+ 'SESSION_COOKIE',
+ Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Path
+ |--------------------------------------------------------------------------
+ |
+ | The session cookie path determines the path for which the cookie will
+ | be regarded as available. Typically, this will be the root path of
+ | your application but you are free to change this when necessary.
+ |
+ */
+
+ 'path' => '/',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Session Cookie Domain
+ |--------------------------------------------------------------------------
+ |
+ | Here you may change the domain of the cookie used to identify a session
+ | in your application. This will determine which domains the cookie is
+ | available to in your application. A sensible default has been set.
+ |
+ */
+
+ 'domain' => env('SESSION_DOMAIN'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTPS Only Cookies
+ |--------------------------------------------------------------------------
+ |
+ | By setting this option to true, session cookies will only be sent back
+ | to the server if the browser has a HTTPS connection. This will keep
+ | the cookie from being sent to you when it can't be done securely.
+ |
+ */
+
+ 'secure' => env('SESSION_SECURE_COOKIE'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | HTTP Access Only
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will prevent JavaScript from accessing the
+ | value of the cookie and the cookie will only be accessible through
+ | the HTTP protocol. You are free to modify this option if needed.
+ |
+ */
+
+ 'http_only' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Same-Site Cookies
+ |--------------------------------------------------------------------------
+ |
+ | This option determines how your cookies behave when cross-site requests
+ | take place, and can be used to mitigate CSRF attacks. By default, we
+ | will set this value to "lax" since this is a secure default value.
+ |
+ | Supported: "lax", "strict", "none", null
+ |
+ */
+
+ 'same_site' => 'lax',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Partitioned Cookies
+ |--------------------------------------------------------------------------
+ |
+ | Setting this value to true will tie the cookie to the top-level site for
+ | a cross-site context. Partitioned cookies are accepted by the browser
+ | when flagged "secure" and the Same-Site attribute is set to "none".
+ |
+ */
+
+ 'partitioned' => false,
+
+];
diff --git a/think-backend.greaterchiangmai.com/config/view.php b/think-backend.greaterchiangmai.com/config/view.php
new file mode 100644
index 0000000..22b8a18
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/config/view.php
@@ -0,0 +1,36 @@
+ [
+ resource_path('views'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Compiled View Path
+ |--------------------------------------------------------------------------
+ |
+ | This option determines where all the compiled Blade templates will be
+ | stored for your application. Typically, this is within the storage
+ | directory. However, as usual, you are free to change this value.
+ |
+ */
+
+ 'compiled' => env(
+ 'VIEW_COMPILED_PATH',
+ realpath(storage_path('framework/views'))
+ ),
+
+];
diff --git a/think-backend.greaterchiangmai.com/database/.DS_Store b/think-backend.greaterchiangmai.com/database/.DS_Store
new file mode 100644
index 0000000..f641ae7
Binary files /dev/null and b/think-backend.greaterchiangmai.com/database/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/database/.gitignore b/think-backend.greaterchiangmai.com/database/.gitignore
new file mode 100644
index 0000000..9b19b93
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/.gitignore
@@ -0,0 +1 @@
+*.sqlite*
diff --git a/think-backend.greaterchiangmai.com/database/factories/UserFactory.php b/think-backend.greaterchiangmai.com/database/factories/UserFactory.php
new file mode 100644
index 0000000..584104c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/factories/UserFactory.php
@@ -0,0 +1,44 @@
+
+ */
+class UserFactory extends Factory
+{
+ /**
+ * The current password being used by the factory.
+ */
+ protected static ?string $password;
+
+ /**
+ * Define the model's default state.
+ *
+ * @return array
+ */
+ public function definition(): array
+ {
+ return [
+ 'name' => fake()->name(),
+ 'email' => fake()->unique()->safeEmail(),
+ 'email_verified_at' => now(),
+ 'password' => static::$password ??= Hash::make('password'),
+ 'remember_token' => Str::random(10),
+ ];
+ }
+
+ /**
+ * Indicate that the model's email address should be unverified.
+ */
+ public function unverified(): static
+ {
+ return $this->state(fn (array $attributes) => [
+ 'email_verified_at' => null,
+ ]);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/database/migrations/2014_10_12_000000_create_users_table.php b/think-backend.greaterchiangmai.com/database/migrations/2014_10_12_000000_create_users_table.php
new file mode 100644
index 0000000..444fafb
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/migrations/2014_10_12_000000_create_users_table.php
@@ -0,0 +1,32 @@
+id();
+ $table->string('name');
+ $table->string('email')->unique();
+ $table->timestamp('email_verified_at')->nullable();
+ $table->string('password');
+ $table->rememberToken();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('users');
+ }
+};
diff --git a/think-backend.greaterchiangmai.com/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php b/think-backend.greaterchiangmai.com/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php
new file mode 100644
index 0000000..81a7229
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php
@@ -0,0 +1,28 @@
+string('email')->primary();
+ $table->string('token');
+ $table->timestamp('created_at')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('password_reset_tokens');
+ }
+};
diff --git a/think-backend.greaterchiangmai.com/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/think-backend.greaterchiangmai.com/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
new file mode 100644
index 0000000..249da81
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
@@ -0,0 +1,32 @@
+id();
+ $table->string('uuid')->unique();
+ $table->text('connection');
+ $table->text('queue');
+ $table->longText('payload');
+ $table->longText('exception');
+ $table->timestamp('failed_at')->useCurrent();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('failed_jobs');
+ }
+};
diff --git a/think-backend.greaterchiangmai.com/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/think-backend.greaterchiangmai.com/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
new file mode 100644
index 0000000..e828ad8
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
@@ -0,0 +1,33 @@
+id();
+ $table->morphs('tokenable');
+ $table->string('name');
+ $table->string('token', 64)->unique();
+ $table->text('abilities')->nullable();
+ $table->timestamp('last_used_at')->nullable();
+ $table->timestamp('expires_at')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::dropIfExists('personal_access_tokens');
+ }
+};
diff --git a/think-backend.greaterchiangmai.com/database/seeders/DatabaseSeeder.php b/think-backend.greaterchiangmai.com/database/seeders/DatabaseSeeder.php
new file mode 100644
index 0000000..a9f4519
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/database/seeders/DatabaseSeeder.php
@@ -0,0 +1,22 @@
+create();
+
+ // \App\Models\User::factory()->create([
+ // 'name' => 'Test User',
+ // 'email' => 'test@example.com',
+ // ]);
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/package.json b/think-backend.greaterchiangmai.com/package.json
new file mode 100644
index 0000000..56f5ddc
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/package.json
@@ -0,0 +1,13 @@
+{
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build"
+ },
+ "devDependencies": {
+ "axios": "^1.6.4",
+ "laravel-vite-plugin": "^1.0.0",
+ "vite": "^5.0.0"
+ }
+}
diff --git a/think-backend.greaterchiangmai.com/phpunit.xml b/think-backend.greaterchiangmai.com/phpunit.xml
new file mode 100644
index 0000000..bc86714
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/phpunit.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ tests/Unit
+
+
+ tests/Feature
+
+
+
+
+ app
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/think-backend.greaterchiangmai.com/public/.DS_Store b/think-backend.greaterchiangmai.com/public/.DS_Store
new file mode 100644
index 0000000..c0fa0dd
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/.htaccess b/think-backend.greaterchiangmai.com/public/.htaccess
new file mode 100644
index 0000000..3aec5e2
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/.htaccess
@@ -0,0 +1,21 @@
+
+
+ Options -MultiViews -Indexes
+
+
+ RewriteEngine On
+
+ # Handle Authorization Header
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Redirect Trailing Slashes If Not A Folder...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_URI} (.+)/$
+ RewriteRule ^ %1 [L,R=301]
+
+ # Send Requests To Front Controller...
+ RewriteCond %{REQUEST_FILENAME} !-d
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteRule ^ index.php [L]
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/.DS_Store
new file mode 100644
index 0000000..eda86fb
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/css/style.bundle.css b/think-backend.greaterchiangmai.com/public/assets/css/style.bundle.css
new file mode 100644
index 0000000..ae51e31
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/css/style.bundle.css
@@ -0,0 +1,49590 @@
+@charset "UTF-8";
+/*!
+ * Bootstrap v5.3.0-alpha1 (https://getbootstrap.com/)
+ * Copyright 2011-2022 The Bootstrap Authors
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+:root,
+[data-bs-theme=light] {
+ --bs-blue: #0d6efd;
+ --bs-indigo: #6610f2;
+ --bs-purple: #6f42c1;
+ --bs-pink: #d63384;
+ --bs-red: #dc3545;
+ --bs-orange: #fd7e14;
+ --bs-yellow: #ffc107;
+ --bs-green: #198754;
+ --bs-teal: #20c997;
+ --bs-cyan: #0dcaf0;
+ --bs-black: #000000;
+ --bs-white: #ffffff;
+ --bs-gray: #7E8299;
+ --bs-gray-dark: #3F4254;
+ --bs-gray-100: #F9F9F9;
+ --bs-gray-200: #F4F4F4;
+ --bs-gray-300: #E1E3EA;
+ --bs-gray-400: #B5B5C3;
+ --bs-gray-500: #A1A5B7;
+ --bs-gray-600: #7E8299;
+ --bs-gray-700: #5E6278;
+ --bs-gray-800: #3F4254;
+ --bs-gray-900: #181C32;
+ --bs-white: #ffffff;
+ --bs-light: #F9F9F9;
+ --bs-primary: #009ef7;
+ --bs-secondary: #E1E3EA;
+ --bs-success: #50cd89;
+ --bs-info: #7239ea;
+ --bs-warning: #ffc700;
+ --bs-danger: #f1416c;
+ --bs-dark: #181C32;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-light-rgb: 249, 249, 249;
+ --bs-primary-rgb: 0, 158, 247;
+ --bs-secondary-rgb: 225, 227, 234;
+ --bs-success-rgb: 80, 205, 137;
+ --bs-info-rgb: 114, 57, 234;
+ --bs-warning-rgb: 255, 199, 0;
+ --bs-danger-rgb: 241, 65, 108;
+ --bs-dark-rgb: 24, 28, 50;
+ --bs-primary-text: #0a58ca;
+ --bs-secondary-text: #7E8299;
+ --bs-success-text: #146c43;
+ --bs-info-text: #087990;
+ --bs-warning-text: #997404;
+ --bs-danger-text: #b02a37;
+ --bs-light-text: #7E8299;
+ --bs-dark-text: #5E6278;
+ --bs-primary-bg-subtle: #cfe2ff;
+ --bs-secondary-bg-subtle: #F9F9F9;
+ --bs-success-bg-subtle: #d1e7dd;
+ --bs-info-bg-subtle: #cff4fc;
+ --bs-warning-bg-subtle: #fff3cd;
+ --bs-danger-bg-subtle: #f8d7da;
+ --bs-light-bg-subtle: #fcfcfc;
+ --bs-dark-bg-subtle: #B5B5C3;
+ --bs-primary-border-subtle: #9ec5fe;
+ --bs-secondary-border-subtle: #F4F4F4;
+ --bs-success-border-subtle: #a3cfbb;
+ --bs-info-border-subtle: #9eeaf9;
+ --bs-warning-border-subtle: #ffe69c;
+ --bs-danger-border-subtle: #f1aeb5;
+ --bs-light-border-subtle: #F4F4F4;
+ --bs-dark-border-subtle: #A1A5B7;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-black-rgb: 0, 0, 0;
+ --bs-body-color-rgb: 24, 28, 50;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-font-sans-serif: Inter, Helvetica, "sans-serif";
+ --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
+ --bs-body-font-family: var(--bs-font-sans-serif);
+ --bs-body-font-size: 1rem;
+ --bs-body-font-weight: 400;
+ --bs-body-line-height: 1.5;
+ --bs-body-color: #181C32;
+ --bs-emphasis-color: #000000;
+ --bs-emphasis-color-rgb: 0, 0, 0;
+ --bs-secondary-color: rgba(24, 28, 50, 0.75);
+ --bs-secondary-color-rgb: 24, 28, 50;
+ --bs-secondary-bg: #F4F4F4;
+ --bs-secondary-bg-rgb: 244, 244, 244;
+ --bs-tertiary-color: rgba(24, 28, 50, 0.5);
+ --bs-tertiary-color-rgb: 24, 28, 50;
+ --bs-tertiary-bg: #F9F9F9;
+ --bs-tertiary-bg-rgb: 249, 249, 249;
+ --bs-body-bg: #ffffff;
+ --bs-body-bg-rgb: 255, 255, 255;
+ --bs-heading-color: #181C32;
+ --bs-link-color: #009ef7;
+ --bs-link-color-rgb: 0, 158, 247;
+ --bs-link-decoration: none;
+ --bs-link-hover-color: #0095e8;
+ --bs-link-hover-color-rgb: 0, 149, 232;
+ --bs-link-hover-decoration: none;
+ --bs-code-color: #b93993;
+ --bs-highlight-bg: #fff3cd;
+ --bs-border-width: 1px;
+ --bs-border-style: solid;
+ --bs-border-color: #F4F4F4;
+ --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
+ --bs-border-radius: 0.475rem;
+ --bs-border-radius-sm: 0.425rem;
+ --bs-border-radius-lg: 0.625rem;
+ --bs-border-radius-xl: 1rem;
+ --bs-border-radius-2xl: 2rem;
+ --bs-border-radius-pill: 50rem;
+ --bs-box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075);
+ --bs-box-shadow-sm: 0 0.1rem 1rem 0.25rem rgba(0, 0, 0, 0.05);
+ --bs-box-shadow-lg: 0 1rem 2rem 1rem rgba(0, 0, 0, 0.1);
+ --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+ --bs-emphasis-color: #000000;
+ --bs-form-control-bg: var(--bs-body-bg);
+ --bs-form-control-disabled-bg: var(--bs-secondary-bg);
+ --bs-highlight-bg: #fff3cd;
+ --bs-breakpoint-xs: 0;
+ --bs-breakpoint-sm: 576px;
+ --bs-breakpoint-md: 768px;
+ --bs-breakpoint-lg: 992px;
+ --bs-breakpoint-xl: 1200px;
+ --bs-breakpoint-xxl: 1400px;
+}
+
+[data-bs-theme=dark] {
+ --bs-body-color: #FFFFFF;
+ --bs-body-color-rgb: 255, 255, 255;
+ --bs-body-bg: #1e1e2d;
+ --bs-body-bg-rgb: 30, 30, 45;
+ --bs-emphasis-color: #F9F9F9;
+ --bs-emphasis-color-rgb: 249, 249, 249;
+ --bs-secondary-color: rgba(255, 255, 255, 0.75);
+ --bs-secondary-color-rgb: 255, 255, 255;
+ --bs-secondary-bg: #3F4254;
+ --bs-secondary-bg-rgb: 63, 66, 84;
+ --bs-tertiary-color: rgba(255, 255, 255, 0.5);
+ --bs-tertiary-color-rgb: 255, 255, 255;
+ --bs-tertiary-bg: #2c2f43;
+ --bs-tertiary-bg-rgb: 44, 47, 67;
+ --bs-emphasis-color: #ffffff;
+ --bs-primary-text: #6ea8fe;
+ --bs-secondary-text: #E1E3EA;
+ --bs-success-text: #75b798;
+ --bs-info-text: #6edff6;
+ --bs-warning-text: #ffda6a;
+ --bs-danger-text: #ea868f;
+ --bs-light-text: #F9F9F9;
+ --bs-dark-text: #E1E3EA;
+ --bs-primary-bg-subtle: #031633;
+ --bs-secondary-bg-subtle: #181C32;
+ --bs-success-bg-subtle: #051b11;
+ --bs-info-bg-subtle: #032830;
+ --bs-warning-bg-subtle: #332701;
+ --bs-danger-bg-subtle: #2c0b0e;
+ --bs-light-bg-subtle: #3F4254;
+ --bs-dark-bg-subtle: #20212a;
+ --bs-primary-border-subtle: #084298;
+ --bs-secondary-border-subtle: #5E6278;
+ --bs-success-border-subtle: #0f5132;
+ --bs-info-border-subtle: #055160;
+ --bs-warning-border-subtle: #664d03;
+ --bs-danger-border-subtle: #842029;
+ --bs-light-border-subtle: #5E6278;
+ --bs-dark-border-subtle: #3F4254;
+ --bs-heading-color: #FFFFFF;
+ --bs-link-color: #009ef7;
+ --bs-link-hover-color: #9ec5fe;
+ --bs-link-color-rgb: 0, 158, 247;
+ --bs-link-hover-color-rgb: 158, 197, 254;
+ --bs-code-color: #b93993;
+ --bs-border-color: #2B2B40;
+ --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
+}
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+ font-family: var(--bs-body-font-family);
+ font-size: var(--bs-body-font-size);
+ font-weight: var(--bs-body-font-weight);
+ line-height: var(--bs-body-line-height);
+ color: var(--bs-body-color);
+ text-align: var(--bs-body-text-align);
+ background-color: var(--bs-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(--bs-border-width) solid;
+ opacity: 0.25;
+}
+
+h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
+ margin-top: 0;
+ margin-bottom: 0.5rem;
+ font-weight: 600;
+ line-height: 1.2;
+ color: var(--bs-heading-color, inherit);
+}
+
+h1, .h1 {
+ font-size: calc(1.3rem + 0.6vw);
+}
+@media (min-width: 1200px) {
+ h1, .h1 {
+ font-size: 1.75rem;
+ }
+}
+
+h2, .h2 {
+ font-size: calc(1.275rem + 0.3vw);
+}
+@media (min-width: 1200px) {
+ h2, .h2 {
+ font-size: 1.5rem;
+ }
+}
+
+h3, .h3 {
+ font-size: calc(1.26rem + 0.12vw);
+}
+@media (min-width: 1200px) {
+ h3, .h3 {
+ font-size: 1.35rem;
+ }
+}
+
+h4, .h4 {
+ font-size: 1.25rem;
+}
+
+h5, .h5 {
+ font-size: 1.15rem;
+}
+
+h6, .h6 {
+ font-size: 1.075rem;
+}
+
+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: 600;
+}
+
+dd {
+ margin-bottom: 0.5rem;
+ margin-left: 0;
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+b,
+strong {
+ font-weight: 700;
+}
+
+small, .small {
+ font-size: 0.875em;
+}
+
+mark, .mark {
+ padding: 0.1875em;
+ background-color: var(--bs-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(--bs-link-color-rgb), var(--bs-link-opacity, 1));
+ text-decoration: none;
+}
+a:hover {
+ --bs-link-color-rgb: var(--bs-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(--bs-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(--bs-code-color);
+ word-wrap: break-word;
+}
+a > code {
+ color: inherit;
+}
+
+kbd {
+ padding: 0.1875rem 0.375rem;
+ font-size: 0.875em;
+ color: var(--bs-body-bg);
+ background-color: var(--bs-body-color);
+ border-radius: 0.425rem;
+}
+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: 0.75rem;
+ padding-bottom: 0.75rem;
+ color: #A1A5B7;
+ 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: 0.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] {
+ outline-offset: -2px;
+ -webkit-appearance: textfield;
+}
+
+/* rtl:raw:
+[type="tel"],
+[type="url"],
+[type="email"],
+[type="number"] {
+ direction: ltr;
+}
+*/
+::-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: 700;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-1 {
+ font-size: 5rem;
+ }
+}
+
+.display-2 {
+ font-size: calc(1.575rem + 3.9vw);
+ font-weight: 700;
+ 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: 700;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-3 {
+ font-size: 4rem;
+ }
+}
+
+.display-4 {
+ font-size: calc(1.475rem + 2.7vw);
+ font-weight: 700;
+ 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: 700;
+ line-height: 1.2;
+}
+@media (min-width: 1200px) {
+ .display-5 {
+ font-size: 3rem;
+ }
+}
+
+.display-6 {
+ font-size: calc(1.375rem + 1.5vw);
+ font-weight: 700;
+ 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: 0.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: #7E8299;
+}
+.blockquote-footer::before {
+ content: "— ";
+}
+
+.img-fluid {
+ max-width: 100%;
+ height: auto;
+}
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: var(--bs-body-bg);
+ border: var(--bs-border-width) solid var(--bs-border-color);
+ border-radius: var(--bs-border-radius);
+ box-shadow: var(--bs-box-shadow-sm);
+ max-width: 100%;
+ height: auto;
+}
+
+.figure {
+ display: inline-block;
+}
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1;
+}
+
+.figure-caption {
+ font-size: 0.875em;
+ color: var(--bs-gray-600);
+}
+
+.container,
+.container-fluid,
+.container-xxl,
+.container-xl,
+.container-lg,
+.container-md,
+.container-sm {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
+ padding-left: calc(var(--bs-gutter-x) * 0.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;
+ }
+}
+.row {
+ --bs-gutter-x: 1.5rem;
+ --bs-gutter-y: 0;
+ display: flex;
+ flex-wrap: wrap;
+ margin-top: calc(-1 * var(--bs-gutter-y));
+ margin-right: calc(-0.5 * var(--bs-gutter-x));
+ margin-left: calc(-0.5 * var(--bs-gutter-x));
+}
+.row > * {
+ flex-shrink: 0;
+ width: 100%;
+ max-width: 100%;
+ padding-right: calc(var(--bs-gutter-x) * 0.5);
+ padding-left: calc(var(--bs-gutter-x) * 0.5);
+ margin-top: var(--bs-gutter-y);
+}
+
+.col {
+ flex: 1 0 0%;
+}
+
+.row-cols-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+.row-cols-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+}
+
+.row-cols-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+}
+
+.row-cols-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+}
+
+.row-cols-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+}
+
+.row-cols-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+}
+
+.row-cols-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+}
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+}
+
+.col-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+}
+
+.col-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+}
+
+.col-3 {
+ flex: 0 0 auto;
+ width: 25%;
+}
+
+.col-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+}
+
+.col-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+}
+
+.col-6 {
+ flex: 0 0 auto;
+ width: 50%;
+}
+
+.col-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+}
+
+.col-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+}
+
+.col-9 {
+ flex: 0 0 auto;
+ width: 75%;
+}
+
+.col-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+}
+
+.col-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+}
+
+.col-12 {
+ flex: 0 0 auto;
+ width: 100%;
+}
+
+.offset-1 {
+ margin-left: 8.33333333%;
+}
+
+.offset-2 {
+ margin-left: 16.66666667%;
+}
+
+.offset-3 {
+ margin-left: 25%;
+}
+
+.offset-4 {
+ margin-left: 33.33333333%;
+}
+
+.offset-5 {
+ margin-left: 41.66666667%;
+}
+
+.offset-6 {
+ margin-left: 50%;
+}
+
+.offset-7 {
+ margin-left: 58.33333333%;
+}
+
+.offset-8 {
+ margin-left: 66.66666667%;
+}
+
+.offset-9 {
+ margin-left: 75%;
+}
+
+.offset-10 {
+ margin-left: 83.33333333%;
+}
+
+.offset-11 {
+ margin-left: 91.66666667%;
+}
+
+.g-0,
+.gx-0 {
+ --bs-gutter-x: 0rem;
+}
+
+.g-0,
+.gy-0 {
+ --bs-gutter-y: 0rem;
+}
+
+.g-1,
+.gx-1 {
+ --bs-gutter-x: 0.25rem;
+}
+
+.g-1,
+.gy-1 {
+ --bs-gutter-y: 0.25rem;
+}
+
+.g-2,
+.gx-2 {
+ --bs-gutter-x: 0.5rem;
+}
+
+.g-2,
+.gy-2 {
+ --bs-gutter-y: 0.5rem;
+}
+
+.g-3,
+.gx-3 {
+ --bs-gutter-x: 0.75rem;
+}
+
+.g-3,
+.gy-3 {
+ --bs-gutter-y: 0.75rem;
+}
+
+.g-4,
+.gx-4 {
+ --bs-gutter-x: 1rem;
+}
+
+.g-4,
+.gy-4 {
+ --bs-gutter-y: 1rem;
+}
+
+.g-5,
+.gx-5 {
+ --bs-gutter-x: 1.25rem;
+}
+
+.g-5,
+.gy-5 {
+ --bs-gutter-y: 1.25rem;
+}
+
+.g-6,
+.gx-6 {
+ --bs-gutter-x: 1.5rem;
+}
+
+.g-6,
+.gy-6 {
+ --bs-gutter-y: 1.5rem;
+}
+
+.g-7,
+.gx-7 {
+ --bs-gutter-x: 1.75rem;
+}
+
+.g-7,
+.gy-7 {
+ --bs-gutter-y: 1.75rem;
+}
+
+.g-8,
+.gx-8 {
+ --bs-gutter-x: 2rem;
+}
+
+.g-8,
+.gy-8 {
+ --bs-gutter-y: 2rem;
+}
+
+.g-9,
+.gx-9 {
+ --bs-gutter-x: 2.25rem;
+}
+
+.g-9,
+.gy-9 {
+ --bs-gutter-y: 2.25rem;
+}
+
+.g-10,
+.gx-10 {
+ --bs-gutter-x: 2.5rem;
+}
+
+.g-10,
+.gy-10 {
+ --bs-gutter-y: 2.5rem;
+}
+
+@media (min-width: 576px) {
+ .col-sm {
+ flex: 1 0 0%;
+ }
+ .row-cols-sm-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-sm-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-sm-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-sm-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+ .row-cols-sm-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-sm-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-sm-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-sm-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-sm-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-sm-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-sm-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-sm-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-sm-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-sm-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-sm-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-sm-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-sm-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-sm-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-sm-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-sm-0 {
+ margin-left: 0;
+ }
+ .offset-sm-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-sm-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-sm-3 {
+ margin-left: 25%;
+ }
+ .offset-sm-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-sm-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-sm-6 {
+ margin-left: 50%;
+ }
+ .offset-sm-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-sm-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-sm-9 {
+ margin-left: 75%;
+ }
+ .offset-sm-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-sm-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-sm-0,
+.gx-sm-0 {
+ --bs-gutter-x: 0rem;
+ }
+ .g-sm-0,
+.gy-sm-0 {
+ --bs-gutter-y: 0rem;
+ }
+ .g-sm-1,
+.gx-sm-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-sm-1,
+.gy-sm-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-sm-2,
+.gx-sm-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-sm-2,
+.gy-sm-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-sm-3,
+.gx-sm-3 {
+ --bs-gutter-x: 0.75rem;
+ }
+ .g-sm-3,
+.gy-sm-3 {
+ --bs-gutter-y: 0.75rem;
+ }
+ .g-sm-4,
+.gx-sm-4 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-sm-4,
+.gy-sm-4 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-sm-5,
+.gx-sm-5 {
+ --bs-gutter-x: 1.25rem;
+ }
+ .g-sm-5,
+.gy-sm-5 {
+ --bs-gutter-y: 1.25rem;
+ }
+ .g-sm-6,
+.gx-sm-6 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-sm-6,
+.gy-sm-6 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-sm-7,
+.gx-sm-7 {
+ --bs-gutter-x: 1.75rem;
+ }
+ .g-sm-7,
+.gy-sm-7 {
+ --bs-gutter-y: 1.75rem;
+ }
+ .g-sm-8,
+.gx-sm-8 {
+ --bs-gutter-x: 2rem;
+ }
+ .g-sm-8,
+.gy-sm-8 {
+ --bs-gutter-y: 2rem;
+ }
+ .g-sm-9,
+.gx-sm-9 {
+ --bs-gutter-x: 2.25rem;
+ }
+ .g-sm-9,
+.gy-sm-9 {
+ --bs-gutter-y: 2.25rem;
+ }
+ .g-sm-10,
+.gx-sm-10 {
+ --bs-gutter-x: 2.5rem;
+ }
+ .g-sm-10,
+.gy-sm-10 {
+ --bs-gutter-y: 2.5rem;
+ }
+}
+@media (min-width: 768px) {
+ .col-md {
+ flex: 1 0 0%;
+ }
+ .row-cols-md-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-md-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-md-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-md-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+ .row-cols-md-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-md-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-md-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-md-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-md-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-md-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-md-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-md-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-md-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-md-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-md-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-md-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-md-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-md-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-md-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-md-0 {
+ margin-left: 0;
+ }
+ .offset-md-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-md-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-md-3 {
+ margin-left: 25%;
+ }
+ .offset-md-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-md-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-md-6 {
+ margin-left: 50%;
+ }
+ .offset-md-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-md-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-md-9 {
+ margin-left: 75%;
+ }
+ .offset-md-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-md-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-md-0,
+.gx-md-0 {
+ --bs-gutter-x: 0rem;
+ }
+ .g-md-0,
+.gy-md-0 {
+ --bs-gutter-y: 0rem;
+ }
+ .g-md-1,
+.gx-md-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-md-1,
+.gy-md-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-md-2,
+.gx-md-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-md-2,
+.gy-md-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-md-3,
+.gx-md-3 {
+ --bs-gutter-x: 0.75rem;
+ }
+ .g-md-3,
+.gy-md-3 {
+ --bs-gutter-y: 0.75rem;
+ }
+ .g-md-4,
+.gx-md-4 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-md-4,
+.gy-md-4 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-md-5,
+.gx-md-5 {
+ --bs-gutter-x: 1.25rem;
+ }
+ .g-md-5,
+.gy-md-5 {
+ --bs-gutter-y: 1.25rem;
+ }
+ .g-md-6,
+.gx-md-6 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-md-6,
+.gy-md-6 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-md-7,
+.gx-md-7 {
+ --bs-gutter-x: 1.75rem;
+ }
+ .g-md-7,
+.gy-md-7 {
+ --bs-gutter-y: 1.75rem;
+ }
+ .g-md-8,
+.gx-md-8 {
+ --bs-gutter-x: 2rem;
+ }
+ .g-md-8,
+.gy-md-8 {
+ --bs-gutter-y: 2rem;
+ }
+ .g-md-9,
+.gx-md-9 {
+ --bs-gutter-x: 2.25rem;
+ }
+ .g-md-9,
+.gy-md-9 {
+ --bs-gutter-y: 2.25rem;
+ }
+ .g-md-10,
+.gx-md-10 {
+ --bs-gutter-x: 2.5rem;
+ }
+ .g-md-10,
+.gy-md-10 {
+ --bs-gutter-y: 2.5rem;
+ }
+}
+@media (min-width: 992px) {
+ .col-lg {
+ flex: 1 0 0%;
+ }
+ .row-cols-lg-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-lg-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-lg-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-lg-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+ .row-cols-lg-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-lg-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-lg-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-lg-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-lg-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-lg-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-lg-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-lg-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-lg-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-lg-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-lg-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-lg-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-lg-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-lg-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-lg-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-lg-0 {
+ margin-left: 0;
+ }
+ .offset-lg-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-lg-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-lg-3 {
+ margin-left: 25%;
+ }
+ .offset-lg-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-lg-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-lg-6 {
+ margin-left: 50%;
+ }
+ .offset-lg-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-lg-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-lg-9 {
+ margin-left: 75%;
+ }
+ .offset-lg-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-lg-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-lg-0,
+.gx-lg-0 {
+ --bs-gutter-x: 0rem;
+ }
+ .g-lg-0,
+.gy-lg-0 {
+ --bs-gutter-y: 0rem;
+ }
+ .g-lg-1,
+.gx-lg-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-lg-1,
+.gy-lg-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-lg-2,
+.gx-lg-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-lg-2,
+.gy-lg-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-lg-3,
+.gx-lg-3 {
+ --bs-gutter-x: 0.75rem;
+ }
+ .g-lg-3,
+.gy-lg-3 {
+ --bs-gutter-y: 0.75rem;
+ }
+ .g-lg-4,
+.gx-lg-4 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-lg-4,
+.gy-lg-4 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-lg-5,
+.gx-lg-5 {
+ --bs-gutter-x: 1.25rem;
+ }
+ .g-lg-5,
+.gy-lg-5 {
+ --bs-gutter-y: 1.25rem;
+ }
+ .g-lg-6,
+.gx-lg-6 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-lg-6,
+.gy-lg-6 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-lg-7,
+.gx-lg-7 {
+ --bs-gutter-x: 1.75rem;
+ }
+ .g-lg-7,
+.gy-lg-7 {
+ --bs-gutter-y: 1.75rem;
+ }
+ .g-lg-8,
+.gx-lg-8 {
+ --bs-gutter-x: 2rem;
+ }
+ .g-lg-8,
+.gy-lg-8 {
+ --bs-gutter-y: 2rem;
+ }
+ .g-lg-9,
+.gx-lg-9 {
+ --bs-gutter-x: 2.25rem;
+ }
+ .g-lg-9,
+.gy-lg-9 {
+ --bs-gutter-y: 2.25rem;
+ }
+ .g-lg-10,
+.gx-lg-10 {
+ --bs-gutter-x: 2.5rem;
+ }
+ .g-lg-10,
+.gy-lg-10 {
+ --bs-gutter-y: 2.5rem;
+ }
+}
+@media (min-width: 1200px) {
+ .col-xl {
+ flex: 1 0 0%;
+ }
+ .row-cols-xl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-xl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-xl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-xl-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+ .row-cols-xl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-xl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-xl-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xl-0 {
+ margin-left: 0;
+ }
+ .offset-xl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xl-3 {
+ margin-left: 25%;
+ }
+ .offset-xl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xl-6 {
+ margin-left: 50%;
+ }
+ .offset-xl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xl-9 {
+ margin-left: 75%;
+ }
+ .offset-xl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xl-0,
+.gx-xl-0 {
+ --bs-gutter-x: 0rem;
+ }
+ .g-xl-0,
+.gy-xl-0 {
+ --bs-gutter-y: 0rem;
+ }
+ .g-xl-1,
+.gx-xl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-xl-1,
+.gy-xl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-xl-2,
+.gx-xl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-xl-2,
+.gy-xl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-xl-3,
+.gx-xl-3 {
+ --bs-gutter-x: 0.75rem;
+ }
+ .g-xl-3,
+.gy-xl-3 {
+ --bs-gutter-y: 0.75rem;
+ }
+ .g-xl-4,
+.gx-xl-4 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-xl-4,
+.gy-xl-4 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-xl-5,
+.gx-xl-5 {
+ --bs-gutter-x: 1.25rem;
+ }
+ .g-xl-5,
+.gy-xl-5 {
+ --bs-gutter-y: 1.25rem;
+ }
+ .g-xl-6,
+.gx-xl-6 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-xl-6,
+.gy-xl-6 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-xl-7,
+.gx-xl-7 {
+ --bs-gutter-x: 1.75rem;
+ }
+ .g-xl-7,
+.gy-xl-7 {
+ --bs-gutter-y: 1.75rem;
+ }
+ .g-xl-8,
+.gx-xl-8 {
+ --bs-gutter-x: 2rem;
+ }
+ .g-xl-8,
+.gy-xl-8 {
+ --bs-gutter-y: 2rem;
+ }
+ .g-xl-9,
+.gx-xl-9 {
+ --bs-gutter-x: 2.25rem;
+ }
+ .g-xl-9,
+.gy-xl-9 {
+ --bs-gutter-y: 2.25rem;
+ }
+ .g-xl-10,
+.gx-xl-10 {
+ --bs-gutter-x: 2.5rem;
+ }
+ .g-xl-10,
+.gy-xl-10 {
+ --bs-gutter-y: 2.5rem;
+ }
+}
+@media (min-width: 1400px) {
+ .col-xxl {
+ flex: 1 0 0%;
+ }
+ .row-cols-xxl-auto > * {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .row-cols-xxl-1 > * {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .row-cols-xxl-2 > * {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .row-cols-xxl-3 > * {
+ flex: 0 0 auto;
+ width: 33.3333333333%;
+ }
+ .row-cols-xxl-4 > * {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .row-cols-xxl-5 > * {
+ flex: 0 0 auto;
+ width: 20%;
+ }
+ .row-cols-xxl-6 > * {
+ flex: 0 0 auto;
+ width: 16.6666666667%;
+ }
+ .col-xxl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ }
+ .col-xxl-1 {
+ flex: 0 0 auto;
+ width: 8.33333333%;
+ }
+ .col-xxl-2 {
+ flex: 0 0 auto;
+ width: 16.66666667%;
+ }
+ .col-xxl-3 {
+ flex: 0 0 auto;
+ width: 25%;
+ }
+ .col-xxl-4 {
+ flex: 0 0 auto;
+ width: 33.33333333%;
+ }
+ .col-xxl-5 {
+ flex: 0 0 auto;
+ width: 41.66666667%;
+ }
+ .col-xxl-6 {
+ flex: 0 0 auto;
+ width: 50%;
+ }
+ .col-xxl-7 {
+ flex: 0 0 auto;
+ width: 58.33333333%;
+ }
+ .col-xxl-8 {
+ flex: 0 0 auto;
+ width: 66.66666667%;
+ }
+ .col-xxl-9 {
+ flex: 0 0 auto;
+ width: 75%;
+ }
+ .col-xxl-10 {
+ flex: 0 0 auto;
+ width: 83.33333333%;
+ }
+ .col-xxl-11 {
+ flex: 0 0 auto;
+ width: 91.66666667%;
+ }
+ .col-xxl-12 {
+ flex: 0 0 auto;
+ width: 100%;
+ }
+ .offset-xxl-0 {
+ margin-left: 0;
+ }
+ .offset-xxl-1 {
+ margin-left: 8.33333333%;
+ }
+ .offset-xxl-2 {
+ margin-left: 16.66666667%;
+ }
+ .offset-xxl-3 {
+ margin-left: 25%;
+ }
+ .offset-xxl-4 {
+ margin-left: 33.33333333%;
+ }
+ .offset-xxl-5 {
+ margin-left: 41.66666667%;
+ }
+ .offset-xxl-6 {
+ margin-left: 50%;
+ }
+ .offset-xxl-7 {
+ margin-left: 58.33333333%;
+ }
+ .offset-xxl-8 {
+ margin-left: 66.66666667%;
+ }
+ .offset-xxl-9 {
+ margin-left: 75%;
+ }
+ .offset-xxl-10 {
+ margin-left: 83.33333333%;
+ }
+ .offset-xxl-11 {
+ margin-left: 91.66666667%;
+ }
+ .g-xxl-0,
+.gx-xxl-0 {
+ --bs-gutter-x: 0rem;
+ }
+ .g-xxl-0,
+.gy-xxl-0 {
+ --bs-gutter-y: 0rem;
+ }
+ .g-xxl-1,
+.gx-xxl-1 {
+ --bs-gutter-x: 0.25rem;
+ }
+ .g-xxl-1,
+.gy-xxl-1 {
+ --bs-gutter-y: 0.25rem;
+ }
+ .g-xxl-2,
+.gx-xxl-2 {
+ --bs-gutter-x: 0.5rem;
+ }
+ .g-xxl-2,
+.gy-xxl-2 {
+ --bs-gutter-y: 0.5rem;
+ }
+ .g-xxl-3,
+.gx-xxl-3 {
+ --bs-gutter-x: 0.75rem;
+ }
+ .g-xxl-3,
+.gy-xxl-3 {
+ --bs-gutter-y: 0.75rem;
+ }
+ .g-xxl-4,
+.gx-xxl-4 {
+ --bs-gutter-x: 1rem;
+ }
+ .g-xxl-4,
+.gy-xxl-4 {
+ --bs-gutter-y: 1rem;
+ }
+ .g-xxl-5,
+.gx-xxl-5 {
+ --bs-gutter-x: 1.25rem;
+ }
+ .g-xxl-5,
+.gy-xxl-5 {
+ --bs-gutter-y: 1.25rem;
+ }
+ .g-xxl-6,
+.gx-xxl-6 {
+ --bs-gutter-x: 1.5rem;
+ }
+ .g-xxl-6,
+.gy-xxl-6 {
+ --bs-gutter-y: 1.5rem;
+ }
+ .g-xxl-7,
+.gx-xxl-7 {
+ --bs-gutter-x: 1.75rem;
+ }
+ .g-xxl-7,
+.gy-xxl-7 {
+ --bs-gutter-y: 1.75rem;
+ }
+ .g-xxl-8,
+.gx-xxl-8 {
+ --bs-gutter-x: 2rem;
+ }
+ .g-xxl-8,
+.gy-xxl-8 {
+ --bs-gutter-y: 2rem;
+ }
+ .g-xxl-9,
+.gx-xxl-9 {
+ --bs-gutter-x: 2.25rem;
+ }
+ .g-xxl-9,
+.gy-xxl-9 {
+ --bs-gutter-y: 2.25rem;
+ }
+ .g-xxl-10,
+.gx-xxl-10 {
+ --bs-gutter-x: 2.5rem;
+ }
+ .g-xxl-10,
+.gy-xxl-10 {
+ --bs-gutter-y: 2.5rem;
+ }
+}
+.table {
+ --bs-table-color: var(--bs-body-color);
+ --bs-table-bg: transparent;
+ --bs-table-border-color: var(--bs-border-color);
+ --bs-table-accent-bg: transparent;
+ --bs-table-striped-color: var(--bs-body-color);
+ --bs-table-striped-bg: rgba(var(--bs-gray-100-rgb), 0.75);
+ --bs-table-active-color: var(--bs-body-color);
+ --bs-table-active-bg: var(--bs-gray-100);
+ --bs-table-hover-color: var(--bs-body-color);
+ --bs-table-hover-bg: var(--bs-gray-100);
+ width: 100%;
+ margin-bottom: 1rem;
+ color: var(--bs-table-color);
+ vertical-align: top;
+ border-color: var(--bs-table-border-color);
+}
+.table > :not(caption) > * > * {
+ padding: 0.75rem 0.75rem;
+ background-color: var(--bs-table-bg);
+ border-bottom-width: 1px;
+ box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg);
+}
+.table > tbody {
+ vertical-align: inherit;
+}
+.table > thead {
+ vertical-align: bottom;
+}
+
+.table-group-divider {
+ border-top: 2px solid currentcolor;
+}
+
+.caption-top {
+ caption-side: top;
+}
+
+.table-sm > :not(caption) > * > * {
+ padding: 0.5rem 0.5rem;
+}
+
+.table-bordered > :not(caption) > * {
+ border-width: 1px 0;
+}
+.table-bordered > :not(caption) > * > * {
+ border-width: 0 1px;
+}
+
+.table-borderless > :not(caption) > * > * {
+ border-bottom-width: 0;
+}
+.table-borderless > :not(:first-child) {
+ border-top-width: 0;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) > * {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color);
+}
+
+.table-striped-columns > :not(caption) > tr > :nth-child(even) {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+ color: var(--bs-table-striped-color);
+}
+
+.table-active {
+ --bs-table-accent-bg: var(--bs-table-active-bg);
+ color: var(--bs-table-active-color);
+}
+
+.table-hover > tbody > tr:hover > * {
+ --bs-table-accent-bg: var(--bs-table-hover-bg);
+ color: var(--bs-table-hover-color);
+}
+
+.table-primary {
+ --bs-table-color: #000000;
+ --bs-table-bg: #ccecfd;
+ --bs-table-border-color: #b8d4e4;
+ --bs-table-striped-bg: #c2e0f0;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #b8d4e4;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #bddaea;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-secondary {
+ --bs-table-color: #000000;
+ --bs-table-bg: #f9f9fb;
+ --bs-table-border-color: #e0e0e2;
+ --bs-table-striped-bg: #ededee;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #e0e0e2;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #e6e6e8;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-success {
+ --bs-table-color: #000000;
+ --bs-table-bg: #dcf5e7;
+ --bs-table-border-color: #c6ddd0;
+ --bs-table-striped-bg: #d1e9db;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #c6ddd0;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #cce3d6;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-info {
+ --bs-table-color: #000000;
+ --bs-table-bg: #e3d7fb;
+ --bs-table-border-color: #ccc2e2;
+ --bs-table-striped-bg: #d8ccee;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #ccc2e2;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #d2c7e8;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-warning {
+ --bs-table-color: #000000;
+ --bs-table-bg: #fff4cc;
+ --bs-table-border-color: #e6dcb8;
+ --bs-table-striped-bg: #f2e8c2;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #e6dcb8;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #ece2bd;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-danger {
+ --bs-table-color: #000000;
+ --bs-table-bg: #fcd9e2;
+ --bs-table-border-color: #e3c3cb;
+ --bs-table-striped-bg: #efced7;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #e3c3cb;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #e9c9d1;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-light {
+ --bs-table-color: #000000;
+ --bs-table-bg: #F9F9F9;
+ --bs-table-border-color: #e0e0e0;
+ --bs-table-striped-bg: #ededed;
+ --bs-table-striped-color: #000000;
+ --bs-table-active-bg: #e0e0e0;
+ --bs-table-active-color: #000000;
+ --bs-table-hover-bg: #e6e6e6;
+ --bs-table-hover-color: #000000;
+ color: var(--bs-table-color);
+ border-color: var(--bs-table-border-color);
+}
+
+.table-dark {
+ --bs-table-color: #ffffff;
+ --bs-table-bg: #181C32;
+ --bs-table-border-color: #2f3347;
+ --bs-table-striped-bg: #24273c;
+ --bs-table-striped-color: #ffffff;
+ --bs-table-active-bg: #2f3347;
+ --bs-table-active-color: #ffffff;
+ --bs-table-hover-bg: #292d41;
+ --bs-table-hover-color: #ffffff;
+ color: var(--bs-table-color);
+ border-color: var(--bs-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: 0.5rem;
+ font-size: 1.05rem;
+ font-weight: 500;
+ color: var(--bs-gray-800);
+}
+
+.col-form-label {
+ padding-top: calc(0.775rem + 1px);
+ padding-bottom: calc(0.775rem + 1px);
+ margin-bottom: 0;
+ font-size: inherit;
+ font-weight: 500;
+ line-height: 1.5;
+ color: var(--bs-gray-800);
+}
+
+.col-form-label-lg {
+ padding-top: calc(0.825rem + 1px);
+ padding-bottom: calc(0.825rem + 1px);
+ font-size: 1.15rem;
+}
+
+.col-form-label-sm {
+ padding-top: calc(0.55rem + 1px);
+ padding-bottom: calc(0.55rem + 1px);
+ font-size: 0.95rem;
+}
+
+.form-text {
+ margin-top: 0.5rem;
+ font-size: 0.95rem;
+ color: var(--bs-text-muted);
+}
+
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.775rem 1rem;
+ font-size: 1.1rem;
+ font-weight: 500;
+ line-height: 1.5;
+ color: var(--bs-gray-700);
+ background-color: var(--bs-body-bg);
+ background-clip: padding-box;
+ border: 1px solid var(--bs-gray-300);
+ appearance: none;
+ border-radius: 0.475rem;
+ box-shadow: false;
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-control {
+ transition: none;
+ }
+}
+.form-control[type=file] {
+ overflow: hidden;
+}
+.form-control[type=file]:not(:disabled):not([readonly]) {
+ cursor: pointer;
+}
+.form-control:focus {
+ color: var(--bs-gray-700);
+ background-color: var(--bs-body-bg);
+ border-color: var(--bs-gray-400);
+ outline: 0;
+ box-shadow: false, 0 0 0 0.25rem rgba(var(--bs-component-active-bg), 0.25);
+}
+.form-control::-webkit-date-and-time-value {
+ height: 1.5em;
+}
+.form-control::-webkit-datetime-edit {
+ display: block;
+ padding: 0;
+}
+.form-control::placeholder {
+ color: var(--bs-gray-500);
+ opacity: 1;
+}
+.form-control:disabled {
+ color: var(--bs-gray-500);
+ background-color: var(--bs-gray-200);
+ border-color: var(--bs-gray-300);
+ opacity: 1;
+}
+.form-control::file-selector-button {
+ padding: 0.775rem 1rem;
+ margin: -0.775rem -1rem;
+ margin-inline-end: 1rem;
+ color: var(--bs-gray-700);
+ background-color: var(--bs-gray-100);
+ pointer-events: none;
+ border-color: inherit;
+ border-style: solid;
+ border-width: 0;
+ border-inline-end-width: 1px;
+ border-radius: 0;
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-control::file-selector-button {
+ transition: none;
+ }
+}
+.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
+ background-color: shade-color(var(--bs-gray-100), 5%);
+}
+
+.form-control-plaintext {
+ display: block;
+ width: 100%;
+ padding: 0.775rem 0;
+ margin-bottom: 0;
+ line-height: 1.5;
+ color: var(--bs-gray-700);
+ background-color: transparent;
+ border: solid transparent;
+ border-width: 1px 0;
+}
+.form-control-plaintext:focus {
+ outline: 0;
+}
+.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {
+ padding-right: 0;
+ padding-left: 0;
+}
+
+.form-control-sm {
+ min-height: calc(1.5em + 1.1rem + 2px);
+ padding: 0.55rem 0.75rem;
+ font-size: 0.95rem;
+ border-radius: 0.425rem;
+}
+.form-control-sm::file-selector-button {
+ padding: 0.55rem 0.75rem;
+ margin: -0.55rem -0.75rem;
+ margin-inline-end: 0.75rem;
+}
+
+.form-control-lg {
+ min-height: calc(1.5em + 1.65rem + 2px);
+ padding: 0.825rem 1.5rem;
+ font-size: 1.15rem;
+ border-radius: 0.625rem;
+}
+.form-control-lg::file-selector-button {
+ padding: 0.825rem 1.5rem;
+ margin: -0.825rem -1.5rem;
+ margin-inline-end: 1.5rem;
+}
+
+textarea.form-control {
+ min-height: calc(1.5em + 1.55rem + 2px);
+}
+textarea.form-control-sm {
+ min-height: calc(1.5em + 1.1rem + 2px);
+}
+textarea.form-control-lg {
+ min-height: calc(1.5em + 1.65rem + 2px);
+}
+
+.form-control-color {
+ width: 3rem;
+ height: calc(1.5em + 1.55rem + 2px);
+ padding: 0.775rem;
+}
+.form-control-color:not(:disabled):not([readonly]) {
+ cursor: pointer;
+}
+.form-control-color::-moz-color-swatch {
+ border: 0 !important;
+ border-radius: 0.475rem;
+}
+.form-control-color::-webkit-color-swatch {
+ border-radius: 0.475rem;
+}
+.form-control-color.form-control-sm {
+ height: calc(1.5em + 1.1rem + 2px);
+}
+.form-control-color.form-control-lg {
+ height: calc(1.5em + 1.65rem + 2px);
+}
+
+.form-select {
+ --bs-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='%237E8299' 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: 0.775rem 3rem 0.775rem 1rem;
+ -moz-padding-start: calc(1rem - 3px);
+ font-size: 1.1rem;
+ font-weight: 500;
+ line-height: 1.5;
+ color: var(--bs-gray-700);
+ background-color: var(--bs-body-bg);
+ background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
+ background-repeat: no-repeat;
+ background-position: right 1rem center;
+ background-size: 16px 12px;
+ border: 1px solid var(--bs-gray-300);
+ border-radius: 0.475rem;
+ box-shadow: var(--bs-box-shadow-inset);
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ appearance: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-select {
+ transition: none;
+ }
+}
+.form-select:focus {
+ border-color: var(--bs-gray-400);
+ outline: 0;
+ box-shadow: var(--bs-box-shadow-inset), 0 0 0 0.25rem rgba(var(--bs-component-active-bg), 0.25);
+}
+.form-select[multiple], .form-select[size]:not([size="1"]) {
+ padding-right: 1rem;
+ background-image: none;
+}
+.form-select:disabled {
+ color: var(--bs-gray-500);
+ background-color: var(--bs-gray-200);
+ border-color: var(--bs-gray-300);
+}
+.form-select:-moz-focusring {
+ color: transparent;
+ text-shadow: 0 0 0 var(--bs-gray-700);
+}
+
+.form-select-sm {
+ padding-top: 0.55rem;
+ padding-bottom: 0.55rem;
+ padding-left: 0.75rem;
+ font-size: 0.95rem;
+ border-radius: 0.425rem;
+}
+
+.form-select-lg {
+ padding-top: 0.825rem;
+ padding-bottom: 0.825rem;
+ padding-left: 1.5rem;
+ font-size: 1.15rem;
+ border-radius: 0.625rem;
+}
+
+[data-bs-theme=dark] .form-select {
+ --bs-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='%236D6D80' 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.5rem;
+ padding-left: 2.25rem;
+ margin-bottom: 0.125rem;
+}
+.form-check .form-check-input {
+ float: left;
+ margin-left: -2.25rem;
+}
+
+.form-check-reverse {
+ padding-right: 2.25rem;
+ padding-left: 0;
+ text-align: right;
+}
+.form-check-reverse .form-check-input {
+ float: right;
+ margin-right: -2.25rem;
+ margin-left: 0;
+}
+
+.form-check-input {
+ --bs-form-check-bg: transparent;
+ width: 1.75rem;
+ height: 1.75rem;
+ margin-top: -0.125rem;
+ vertical-align: top;
+ background-color: var(--bs-form-check-bg);
+ background-image: var(--bs-form-check-bg-image);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: contain;
+ border: 1px solid var(--bs-gray-300);
+ appearance: none;
+ print-color-adjust: exact;
+}
+.form-check-input[type=checkbox] {
+ border-radius: 0.45em;
+}
+.form-check-input[type=radio] {
+ border-radius: 50%;
+}
+.form-check-input:active {
+ filter: brightness(90%);
+}
+.form-check-input:focus {
+ border-color: var(--bs-gray-400);
+ outline: 0;
+ box-shadow: none;
+}
+.form-check-input:checked {
+ background-color: #009ef7;
+ border-color: #009ef7;
+}
+.form-check-input:checked[type=checkbox] {
+ --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 11' width='13' height='11' fill='none'%3e%3cpath d='M11.0426 1.02893C11.3258 0.695792 11.8254 0.655283 12.1585 0.938451C12.4917 1.22162 12.5322 1.72124 12.249 2.05437L5.51985 9.97104C5.23224 10.3094 4.72261 10.3451 4.3907 10.05L0.828197 6.88335C0.50141 6.59288 0.471975 6.09249 0.762452 5.7657C1.05293 5.43891 1.55332 5.40948 1.88011 5.69995L4.83765 8.32889L11.0426 1.02893Z' fill='%23ffffff'/%3e%3c/svg%3e");
+}
+.form-check-input:checked[type=radio] {
+ --bs-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='%23ffffff'/%3e%3c/svg%3e");
+}
+.form-check-input[type=checkbox]:indeterminate {
+ background-color: var(--bs-component-checked-bg);
+ border-color: var(--bs-component-checked-bg);
+ --bs-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='var%28--bs-component-checked-color%29' 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: 0.5;
+}
+.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {
+ cursor: default;
+ opacity: 0.5;
+}
+
+.form-check-label {
+ color: var(--bs-gray-500);
+}
+
+.form-switch {
+ padding-left: 3.75rem;
+}
+.form-switch .form-check-input {
+ --bs-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: 3.25rem;
+ margin-left: -3.75rem;
+ background-image: var(--bs-form-switch-bg);
+ background-position: left center;
+ border-radius: 3.25rem;
+ transition: background-position 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-switch .form-check-input {
+ transition: none;
+ }
+}
+.form-switch .form-check-input:focus {
+ --bs-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");
+}
+.form-switch .form-check-input:checked {
+ background-position: right center;
+ --bs-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='%23ffffff'/%3e%3c/svg%3e");
+}
+.form-switch.form-check-reverse {
+ padding-right: 3.75rem;
+ padding-left: 0;
+}
+.form-switch.form-check-reverse .form-check-input {
+ margin-right: -3.75rem;
+ 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: 0.65;
+}
+
+[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {
+ --bs-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;
+ background-color: transparent;
+ appearance: none;
+}
+.form-range:focus {
+ outline: 0;
+}
+.form-range:focus::-webkit-slider-thumb {
+ box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.25rem rgba(var(--bs-component-active-bg), 0.25);
+}
+.form-range:focus::-moz-range-thumb {
+ box-shadow: 0 0 0 1px #ffffff, 0 0 0 0.25rem rgba(var(--bs-component-active-bg), 0.25);
+}
+.form-range::-moz-focus-outer {
+ border: 0;
+}
+.form-range::-webkit-slider-thumb {
+ width: 1rem;
+ height: 1rem;
+ margin-top: -0.25rem;
+ background-color: #009ef7;
+ border: 0;
+ border-radius: 1rem;
+ box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ appearance: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-range::-webkit-slider-thumb {
+ transition: none;
+ }
+}
+.form-range::-webkit-slider-thumb:active {
+ background-color: #b3e2fd;
+}
+.form-range::-webkit-slider-runnable-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: var(--bs-gray-300);
+ border-color: transparent;
+ border-radius: 0.475rem;
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+.form-range::-moz-range-thumb {
+ width: 1rem;
+ height: 1rem;
+ background-color: #009ef7;
+ border: 0;
+ border-radius: 1rem;
+ box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);
+ transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+ appearance: none;
+}
+@media (prefers-reduced-motion: reduce) {
+ .form-range::-moz-range-thumb {
+ transition: none;
+ }
+}
+.form-range::-moz-range-thumb:active {
+ background-color: #b3e2fd;
+}
+.form-range::-moz-range-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: var(--bs-gray-300);
+ border-color: transparent;
+ border-radius: 0.475rem;
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+.form-range:disabled {
+ pointer-events: none;
+}
+.form-range:disabled::-webkit-slider-thumb {
+ background-color: var(--bs-gray-500);
+}
+.form-range:disabled::-moz-range-thumb {
+ background-color: var(--bs-gray-500);
+}
+
+.form-floating {
+ position: relative;
+}
+.form-floating::before:not(.form-control:disabled) {
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ width: calc(100% - (calc(calc(0.375em + 0.3875rem) + calc(0.75em + 0.775rem))));
+ height: 1.875em;
+ content: "";
+ background-color: var(--bs-body-bg);
+ border-radius: 0.475rem;
+}
+.form-floating > .form-control,
+.form-floating > .form-control-plaintext,
+.form-floating > .form-select {
+ height: calc(3.75rem + 2px);
+ line-height: 1.25;
+}
+.form-floating > label {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 1rem 1rem;
+ overflow: hidden;
+ text-align: start;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ pointer-events: none;
+ border: 1px solid transparent;
+ transform-origin: 0 0;
+ transition: opacity 0.1s ease-in-out, transform 0.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 1rem;
+}
+.form-floating > .form-control::placeholder,
+.form-floating > .form-control-plaintext::placeholder {
+ color: transparent;
+}
+.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.85rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-control:-webkit-autofill,
+.form-floating > .form-control-plaintext:-webkit-autofill {
+ padding-top: 1.85rem;
+ padding-bottom: 0.625rem;
+}
+.form-floating > .form-select {
+ padding-top: 1.85rem;
+ padding-bottom: 0.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 {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+}
+.form-floating > .form-control:-webkit-autofill ~ label {
+ opacity: 0.65;
+ transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
+}
+.form-floating > .form-control-plaintext ~ label {
+ border-width: 1px 0;
+}
+.form-floating > .form-control:disabled ~ label {
+ color: #7E8299;
+}
+
+.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: 0.775rem 1rem;
+ font-size: 1.1rem;
+ font-weight: 500;
+ line-height: 1.5;
+ color: var(--bs-gray-700);
+ text-align: center;
+ white-space: nowrap;
+ background-color: var(--bs-gray-100);
+ border: 1px solid var(--bs-gray-300);
+ border-radius: 0.475rem;
+}
+
+.input-group-lg > .form-control,
+.input-group-lg > .form-select,
+.input-group-lg > .input-group-text,
+.input-group-lg > .btn {
+ padding: 0.825rem 1.5rem;
+ font-size: 1.15rem;
+ border-radius: 0.625rem;
+}
+
+.input-group-sm > .form-control,
+.input-group-sm > .form-select,
+.input-group-sm > .input-group-text,
+.input-group-sm > .btn {
+ padding: 0.55rem 0.75rem;
+ font-size: 0.95rem;
+ border-radius: 0.425rem;
+}
+
+.input-group-lg > .form-select,
+.input-group-sm > .form-select {
+ padding-right: 4rem;
+}
+
+.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: -1px;
+ 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: 0.5rem;
+ font-size: 0.95rem;
+ color: var(--bs-success-text);
+}
+
+.valid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.75rem 1rem;
+ margin-top: 0.1rem;
+ font-size: 1rem;
+ color: #fff;
+ background-color: var(--bs-success);
+ border-radius: 0.475rem;
+}
+
+.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(--bs-success);
+ padding-right: calc(1.5em + 1.55rem);
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2350cd89' 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.375em + 0.3875rem) center;
+ background-size: calc(0.75em + 0.775rem) calc(0.75em + 0.775rem);
+}
+.was-validated .form-control:valid:focus, .form-control.is-valid:focus {
+ border-color: var(--bs-success);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+}
+
+.was-validated textarea.form-control:valid, textarea.form-control.is-valid {
+ padding-right: calc(1.5em + 1.55rem);
+ background-position: top calc(0.375em + 0.3875rem) right calc(0.375em + 0.3875rem);
+}
+
+.was-validated .form-select:valid, .form-select.is-valid {
+ border-color: var(--bs-success);
+}
+.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"] {
+ --bs-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='%2350cd89' 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: 5.5rem;
+ background-position: right 1rem center, center right 3rem;
+ background-size: 16px 12px, calc(0.75em + 0.775rem) calc(0.75em + 0.775rem);
+}
+.was-validated .form-select:valid:focus, .form-select.is-valid:focus {
+ border-color: var(--bs-success);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+}
+
+.was-validated .form-control-color:valid, .form-control-color.is-valid {
+ width: calc(3rem + calc(1.5em + 1.55rem));
+}
+
+.was-validated .form-check-input:valid, .form-check-input.is-valid {
+ border-color: var(--bs-success);
+}
+.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {
+ background-color: var(--bs-success-text);
+}
+.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);
+}
+.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {
+ color: var(--bs-success-text);
+}
+
+.form-check-inline .form-check-input ~ .valid-feedback {
+ margin-left: 0.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: 0.5rem;
+ font-size: 0.95rem;
+ color: var(--bs-danger-text);
+}
+
+.invalid-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%;
+ padding: 0.75rem 1rem;
+ margin-top: 0.1rem;
+ font-size: 1rem;
+ color: #fff;
+ background-color: var(--bs-danger);
+ border-radius: 0.475rem;
+}
+
+.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(--bs-danger);
+ padding-right: calc(1.5em + 1.55rem);
+ 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='%23f1416c'%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='%23f1416c' stroke='none'/%3e%3c/svg%3e");
+ background-repeat: no-repeat;
+ background-position: right calc(0.375em + 0.3875rem) center;
+ background-size: calc(0.75em + 0.775rem) calc(0.75em + 0.775rem);
+}
+.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {
+ border-color: var(--bs-danger);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+}
+
+.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {
+ padding-right: calc(1.5em + 1.55rem);
+ background-position: top calc(0.375em + 0.3875rem) right calc(0.375em + 0.3875rem);
+}
+
+.was-validated .form-select:invalid, .form-select.is-invalid {
+ border-color: var(--bs-danger);
+}
+.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"] {
+ --bs-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='%23f1416c'%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='%23f1416c' stroke='none'/%3e%3c/svg%3e");
+ padding-right: 5.5rem;
+ background-position: right 1rem center, center right 3rem;
+ background-size: 16px 12px, calc(0.75em + 0.775rem) calc(0.75em + 0.775rem);
+}
+.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {
+ border-color: var(--bs-danger);
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+}
+
+.was-validated .form-control-color:invalid, .form-control-color.is-invalid {
+ width: calc(3rem + calc(1.5em + 1.55rem));
+}
+
+.was-validated .form-check-input:invalid, .form-check-input.is-invalid {
+ border-color: var(--bs-danger);
+}
+.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {
+ background-color: var(--bs-danger-text);
+}
+.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {
+ box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);
+}
+.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {
+ color: var(--bs-danger-text);
+}
+
+.form-check-inline .form-check-input ~ .invalid-feedback {
+ margin-left: 0.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 {
+ --bs-btn-padding-x: 1.5rem;
+ --bs-btn-padding-y: 0.775rem;
+ --bs-btn-font-family: ;
+ --bs-btn-font-size: 1.1rem;
+ --bs-btn-font-weight: 500;
+ --bs-btn-line-height: 1.5;
+ --bs-btn-color: #181C32;
+ --bs-btn-bg: transparent;
+ --bs-btn-border-width: 1px;
+ --bs-btn-border-color: transparent;
+ --bs-btn-border-radius: 0.475rem;
+ --bs-btn-hover-border-color: transparent;
+ --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ --bs-btn-disabled-opacity: 0.65;
+ --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
+ display: inline-block;
+ padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
+ font-family: var(--bs-btn-font-family);
+ font-size: var(--bs-btn-font-size);
+ font-weight: var(--bs-btn-font-weight);
+ line-height: var(--bs-btn-line-height);
+ color: var(--bs-btn-color);
+ text-align: center;
+ vertical-align: middle;
+ cursor: pointer;
+ user-select: none;
+ border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
+ border-radius: var(--bs-btn-border-radius);
+ background-color: var(--bs-btn-bg);
+ box-shadow: var(--bs-btn-box-shadow);
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none;
+ }
+}
+.btn:hover {
+ color: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color);
+}
+.btn-check + .btn:hover {
+ color: var(--bs-btn-color);
+ background-color: var(--bs-btn-bg);
+ border-color: var(--bs-btn-border-color);
+}
+.btn:focus-visible {
+ color: var(--bs-btn-hover-color);
+ background-color: var(--bs-btn-hover-bg);
+ border-color: var(--bs-btn-hover-border-color);
+ outline: 0;
+ box-shadow: var(--bs-btn-box-shadow), var(--bs-btn-focus-box-shadow);
+}
+.btn-check:focus-visible + .btn {
+ border-color: var(--bs-btn-hover-border-color);
+ outline: 0;
+ box-shadow: var(--bs-btn-box-shadow), var(--bs-btn-focus-box-shadow);
+}
+.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
+ color: var(--bs-btn-active-color);
+ background-color: var(--bs-btn-active-bg);
+ border-color: var(--bs-btn-active-border-color);
+ box-shadow: var(--bs-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(--bs-btn-active-shadow), var(--bs-btn-focus-box-shadow);
+}
+.btn:disabled, .btn.disabled, fieldset:disabled .btn {
+ color: var(--bs-btn-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-btn-disabled-bg);
+ border-color: var(--bs-btn-disabled-border-color);
+ opacity: var(--bs-btn-disabled-opacity);
+ box-shadow: none;
+}
+
+.btn-white {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #ffffff;
+ --bs-btn-border-color: #ffffff;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: white;
+ --bs-btn-hover-border-color: white;
+ --bs-btn-focus-shadow-rgb: 217, 217, 217;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: white;
+ --bs-btn-active-border-color: white;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #ffffff;
+ --bs-btn-disabled-border-color: #ffffff;
+}
+
+.btn-light {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #F9F9F9;
+ --bs-btn-border-color: #F9F9F9;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #d4d4d4;
+ --bs-btn-hover-border-color: #c7c7c7;
+ --bs-btn-focus-shadow-rgb: 212, 212, 212;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #c7c7c7;
+ --bs-btn-active-border-color: #bbbbbb;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #F9F9F9;
+ --bs-btn-disabled-border-color: #F9F9F9;
+}
+
+.btn-primary {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #009ef7;
+ --bs-btn-border-color: #009ef7;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #26adf8;
+ --bs-btn-hover-border-color: #1aa8f8;
+ --bs-btn-focus-shadow-rgb: 0, 134, 210;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #33b1f9;
+ --bs-btn-active-border-color: #1aa8f8;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #009ef7;
+ --bs-btn-disabled-border-color: #009ef7;
+}
+
+.btn-secondary {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #E1E3EA;
+ --bs-btn-border-color: #E1E3EA;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #e6e7ed;
+ --bs-btn-hover-border-color: #e4e6ec;
+ --bs-btn-focus-shadow-rgb: 191, 193, 199;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #e7e9ee;
+ --bs-btn-active-border-color: #e4e6ec;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #E1E3EA;
+ --bs-btn-disabled-border-color: #E1E3EA;
+}
+
+.btn-success {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #50cd89;
+ --bs-btn-border-color: #50cd89;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #6ad59b;
+ --bs-btn-hover-border-color: #62d295;
+ --bs-btn-focus-shadow-rgb: 68, 174, 116;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #73d7a1;
+ --bs-btn-active-border-color: #62d295;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #50cd89;
+ --bs-btn-disabled-border-color: #50cd89;
+}
+
+.btn-info {
+ --bs-btn-color: #ffffff;
+ --bs-btn-bg: #7239ea;
+ --bs-btn-border-color: #7239ea;
+ --bs-btn-hover-color: #ffffff;
+ --bs-btn-hover-bg: #6130c7;
+ --bs-btn-hover-border-color: #5b2ebb;
+ --bs-btn-focus-shadow-rgb: 135, 87, 237;
+ --bs-btn-active-color: #ffffff;
+ --bs-btn-active-bg: #5b2ebb;
+ --bs-btn-active-border-color: #562bb0;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #ffffff;
+ --bs-btn-disabled-bg: #7239ea;
+ --bs-btn-disabled-border-color: #7239ea;
+}
+
+.btn-warning {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #ffc700;
+ --bs-btn-border-color: #ffc700;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #ffcf26;
+ --bs-btn-hover-border-color: #ffcd1a;
+ --bs-btn-focus-shadow-rgb: 217, 169, 0;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #ffd233;
+ --bs-btn-active-border-color: #ffcd1a;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #ffc700;
+ --bs-btn-disabled-border-color: #ffc700;
+}
+
+.btn-danger {
+ --bs-btn-color: #000000;
+ --bs-btn-bg: #f1416c;
+ --bs-btn-border-color: #f1416c;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #f35e82;
+ --bs-btn-hover-border-color: #f2547b;
+ --bs-btn-focus-shadow-rgb: 205, 55, 92;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #f46789;
+ --bs-btn-active-border-color: #f2547b;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #000000;
+ --bs-btn-disabled-bg: #f1416c;
+ --bs-btn-disabled-border-color: #f1416c;
+}
+
+.btn-dark {
+ --bs-btn-color: #ffffff;
+ --bs-btn-bg: #181C32;
+ --bs-btn-border-color: #181C32;
+ --bs-btn-hover-color: #ffffff;
+ --bs-btn-hover-bg: #3b3e51;
+ --bs-btn-hover-border-color: #2f3347;
+ --bs-btn-focus-shadow-rgb: 59, 62, 81;
+ --bs-btn-active-color: #ffffff;
+ --bs-btn-active-bg: #46495b;
+ --bs-btn-active-border-color: #2f3347;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #ffffff;
+ --bs-btn-disabled-bg: #181C32;
+ --bs-btn-disabled-border-color: #181C32;
+}
+
+.btn-outline-white {
+ --bs-btn-color: #ffffff;
+ --bs-btn-border-color: #ffffff;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #ffffff;
+ --bs-btn-hover-border-color: #ffffff;
+ --bs-btn-focus-shadow-rgb: 255, 255, 255;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #ffffff;
+ --bs-btn-active-border-color: #ffffff;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #ffffff;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #ffffff;
+ --bs-gradient: none;
+}
+
+.btn-outline-light {
+ --bs-btn-color: #F9F9F9;
+ --bs-btn-border-color: #F9F9F9;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #F9F9F9;
+ --bs-btn-hover-border-color: #F9F9F9;
+ --bs-btn-focus-shadow-rgb: 249, 249, 249;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #F9F9F9;
+ --bs-btn-active-border-color: #F9F9F9;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #F9F9F9;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #F9F9F9;
+ --bs-gradient: none;
+}
+
+.btn-outline-primary {
+ --bs-btn-color: #009ef7;
+ --bs-btn-border-color: #009ef7;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #009ef7;
+ --bs-btn-hover-border-color: #009ef7;
+ --bs-btn-focus-shadow-rgb: 0, 158, 247;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #009ef7;
+ --bs-btn-active-border-color: #009ef7;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #009ef7;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #009ef7;
+ --bs-gradient: none;
+}
+
+.btn-outline-secondary {
+ --bs-btn-color: #E1E3EA;
+ --bs-btn-border-color: #E1E3EA;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #E1E3EA;
+ --bs-btn-hover-border-color: #E1E3EA;
+ --bs-btn-focus-shadow-rgb: 225, 227, 234;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #E1E3EA;
+ --bs-btn-active-border-color: #E1E3EA;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #E1E3EA;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #E1E3EA;
+ --bs-gradient: none;
+}
+
+.btn-outline-success {
+ --bs-btn-color: #50cd89;
+ --bs-btn-border-color: #50cd89;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #50cd89;
+ --bs-btn-hover-border-color: #50cd89;
+ --bs-btn-focus-shadow-rgb: 80, 205, 137;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #50cd89;
+ --bs-btn-active-border-color: #50cd89;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #50cd89;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #50cd89;
+ --bs-gradient: none;
+}
+
+.btn-outline-info {
+ --bs-btn-color: #7239ea;
+ --bs-btn-border-color: #7239ea;
+ --bs-btn-hover-color: #ffffff;
+ --bs-btn-hover-bg: #7239ea;
+ --bs-btn-hover-border-color: #7239ea;
+ --bs-btn-focus-shadow-rgb: 114, 57, 234;
+ --bs-btn-active-color: #ffffff;
+ --bs-btn-active-bg: #7239ea;
+ --bs-btn-active-border-color: #7239ea;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #7239ea;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #7239ea;
+ --bs-gradient: none;
+}
+
+.btn-outline-warning {
+ --bs-btn-color: #ffc700;
+ --bs-btn-border-color: #ffc700;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #ffc700;
+ --bs-btn-hover-border-color: #ffc700;
+ --bs-btn-focus-shadow-rgb: 255, 199, 0;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #ffc700;
+ --bs-btn-active-border-color: #ffc700;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #ffc700;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #ffc700;
+ --bs-gradient: none;
+}
+
+.btn-outline-danger {
+ --bs-btn-color: #f1416c;
+ --bs-btn-border-color: #f1416c;
+ --bs-btn-hover-color: #000000;
+ --bs-btn-hover-bg: #f1416c;
+ --bs-btn-hover-border-color: #f1416c;
+ --bs-btn-focus-shadow-rgb: 241, 65, 108;
+ --bs-btn-active-color: #000000;
+ --bs-btn-active-bg: #f1416c;
+ --bs-btn-active-border-color: #f1416c;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #f1416c;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #f1416c;
+ --bs-gradient: none;
+}
+
+.btn-outline-dark {
+ --bs-btn-color: #181C32;
+ --bs-btn-border-color: #181C32;
+ --bs-btn-hover-color: #ffffff;
+ --bs-btn-hover-bg: #181C32;
+ --bs-btn-hover-border-color: #181C32;
+ --bs-btn-focus-shadow-rgb: 24, 28, 50;
+ --bs-btn-active-color: #ffffff;
+ --bs-btn-active-bg: #181C32;
+ --bs-btn-active-border-color: #181C32;
+ --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ --bs-btn-disabled-color: #181C32;
+ --bs-btn-disabled-bg: transparent;
+ --bs-btn-disabled-border-color: #181C32;
+ --bs-gradient: none;
+}
+
+.btn-link {
+ --bs-btn-font-weight: 400;
+ --bs-btn-color: var(--bs-link-color);
+ --bs-btn-bg: transparent;
+ --bs-btn-border-color: transparent;
+ --bs-btn-hover-color: var(--bs-link-hover-color);
+ --bs-btn-hover-border-color: transparent;
+ --bs-btn-active-color: var(--bs-link-hover-color);
+ --bs-btn-active-border-color: transparent;
+ --bs-btn-disabled-color: var(--bs-gray-600);
+ --bs-btn-disabled-border-color: transparent;
+ --bs-btn-box-shadow: none;
+ --bs-btn-focus-shadow-rgb: 0, 134, 210;
+ text-decoration: none;
+}
+.btn-link:hover, .btn-link:focus-visible {
+ text-decoration: none;
+}
+.btn-link:focus-visible {
+ color: var(--bs-btn-color);
+}
+.btn-link:hover {
+ color: var(--bs-btn-hover-color);
+}
+
+.btn-lg, .btn-group-lg > .btn {
+ --bs-btn-padding-y: 0.825rem;
+ --bs-btn-padding-x: 1.75rem;
+ --bs-btn-font-size: 1.15rem;
+ --bs-btn-border-radius: 0.625rem;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+ --bs-btn-padding-y: 0.55rem;
+ --bs-btn-padding-x: 1.25rem;
+ --bs-btn-font-size: 0.95rem;
+ --bs-btn-border-radius: 0.425rem;
+}
+
+.fade {
+ transition: opacity 0.15s linear;
+}
+@media (prefers-reduced-motion: reduce) {
+ .fade {
+ transition: none;
+ }
+}
+.fade:not(.show) {
+ opacity: 0;
+}
+
+.collapse:not(.show) {
+ display: none;
+}
+
+.collapsing {
+ height: 0;
+ overflow: hidden;
+ transition: height 0.35s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .collapsing {
+ transition: none;
+ }
+}
+.collapsing.collapse-horizontal {
+ width: 0;
+ height: auto;
+ transition: width 0.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: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0;
+ border-left: 0.3em solid transparent;
+}
+.dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropdown-menu {
+ --bs-dropdown-zindex: 1000;
+ --bs-dropdown-min-width: 10rem;
+ --bs-dropdown-padding-x: 0;
+ --bs-dropdown-padding-y: 0.5rem;
+ --bs-dropdown-spacer: 0.125rem;
+ --bs-dropdown-font-size: 1rem;
+ --bs-dropdown-color: var(--bs-body-color);
+ --bs-dropdown-bg: var(--bs-body-bg);
+ --bs-dropdown-border-color: var(--bs-border-color-translucent);
+ --bs-dropdown-border-radius: 0.475rem;
+ --bs-dropdown-border-width: 0rem;
+ --bs-dropdown-inner-border-radius: 0.475rem;
+ --bs-dropdown-divider-bg: var(--bs-gray-100);
+ --bs-dropdown-divider-margin-y: 0.5rem;
+ --bs-dropdown-box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15);
+ --bs-dropdown-link-color: var(--bs-gray-900);
+ --bs-dropdown-link-hover-color: var(--bs-gray-900);
+ --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
+ --bs-dropdown-link-active-color: var(--bs-component-hover-color);
+ --bs-dropdown-link-active-bg: var(--bs-component-hover-bg);
+ --bs-dropdown-link-disabled-color: var(--bs-gray-500);
+ --bs-dropdown-item-padding-x: 0.85rem;
+ --bs-dropdown-item-padding-y: 0.65rem;
+ --bs-dropdown-header-color: var(--bs-gray-600);
+ --bs-dropdown-header-padding-x: 0.85rem;
+ --bs-dropdown-header-padding-y: 0.5rem;
+ position: absolute;
+ z-index: var(--bs-dropdown-zindex);
+ display: none;
+ min-width: var(--bs-dropdown-min-width);
+ padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
+ margin: 0;
+ font-size: var(--bs-dropdown-font-size);
+ color: var(--bs-dropdown-color);
+ text-align: left;
+ list-style: none;
+ background-color: var(--bs-dropdown-bg);
+ background-clip: padding-box;
+ border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
+ border-radius: var(--bs-dropdown-border-radius);
+ box-shadow: var(--bs-dropdown-box-shadow);
+}
+.dropdown-menu[data-bs-popper] {
+ top: 100%;
+ left: 0;
+ margin-top: var(--bs-dropdown-spacer);
+}
+
+.dropdown-menu-start {
+ --bs-position: start;
+}
+.dropdown-menu-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+}
+
+.dropdown-menu-end {
+ --bs-position: end;
+}
+.dropdown-menu-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+}
+
+@media (min-width: 576px) {
+ .dropdown-menu-sm-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-sm-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-sm-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-sm-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 768px) {
+ .dropdown-menu-md-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-md-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-md-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-md-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 992px) {
+ .dropdown-menu-lg-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-lg-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-lg-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-lg-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1200px) {
+ .dropdown-menu-xl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+@media (min-width: 1400px) {
+ .dropdown-menu-xxl-start {
+ --bs-position: start;
+ }
+ .dropdown-menu-xxl-start[data-bs-popper] {
+ right: auto;
+ left: 0;
+ }
+ .dropdown-menu-xxl-end {
+ --bs-position: end;
+ }
+ .dropdown-menu-xxl-end[data-bs-popper] {
+ right: 0;
+ left: auto;
+ }
+}
+.dropup .dropdown-menu[data-bs-popper] {
+ top: auto;
+ bottom: 100%;
+ margin-top: 0;
+ margin-bottom: var(--bs-dropdown-spacer);
+}
+.dropup .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0;
+ border-right: 0.3em solid transparent;
+ border-bottom: 0.3em solid;
+ border-left: 0.3em solid transparent;
+}
+.dropup .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+
+.dropend .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: auto;
+ left: 100%;
+ margin-top: 0;
+ margin-left: var(--bs-dropdown-spacer);
+}
+.dropend .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0;
+ border-bottom: 0.3em solid transparent;
+ border-left: 0.3em solid;
+}
+.dropend .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropend .dropdown-toggle::after {
+ vertical-align: 0;
+}
+
+.dropstart .dropdown-menu[data-bs-popper] {
+ top: 0;
+ right: 100%;
+ left: auto;
+ margin-top: 0;
+ margin-right: var(--bs-dropdown-spacer);
+}
+.dropstart .dropdown-toggle::after {
+ display: inline-block;
+ margin-left: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+}
+.dropstart .dropdown-toggle::after {
+ display: none;
+}
+.dropstart .dropdown-toggle::before {
+ display: inline-block;
+ margin-right: 0.255em;
+ vertical-align: 0.255em;
+ content: "";
+ border-top: 0.3em solid transparent;
+ border-right: 0.3em solid;
+ border-bottom: 0.3em solid transparent;
+}
+.dropstart .dropdown-toggle:empty::after {
+ margin-left: 0;
+}
+.dropstart .dropdown-toggle::before {
+ vertical-align: 0;
+}
+
+.dropdown-divider {
+ height: 0;
+ margin: var(--bs-dropdown-divider-margin-y) 0;
+ overflow: hidden;
+ border-top: 1px solid var(--bs-dropdown-divider-bg);
+ opacity: 1;
+}
+
+.dropdown-item {
+ display: block;
+ width: 100%;
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+ clear: both;
+ font-weight: 400;
+ color: var(--bs-dropdown-link-color);
+ text-align: inherit;
+ white-space: nowrap;
+ background-color: transparent;
+ border: 0;
+ border-radius: var(--bs-dropdown-item-border-radius, 0);
+}
+.dropdown-item:hover, .dropdown-item:focus {
+ color: var(--bs-dropdown-link-hover-color);
+ background-color: var(--bs-dropdown-link-hover-bg);
+}
+.dropdown-item.active, .dropdown-item:active {
+ color: var(--bs-dropdown-link-active-color);
+ text-decoration: none;
+ background-color: var(--bs-dropdown-link-active-bg);
+}
+.dropdown-item.disabled, .dropdown-item:disabled {
+ color: var(--bs-dropdown-link-disabled-color);
+ pointer-events: none;
+ background-color: transparent;
+}
+
+.dropdown-menu.show {
+ display: block;
+}
+
+.dropdown-header {
+ display: block;
+ padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);
+ margin-bottom: 0;
+ font-size: 0.95rem;
+ color: var(--bs-dropdown-header-color);
+ white-space: nowrap;
+}
+
+.dropdown-item-text {
+ display: block;
+ padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
+ color: var(--bs-dropdown-link-color);
+}
+
+.dropdown-menu-dark {
+ --bs-dropdown-color: #E1E3EA;
+ --bs-dropdown-bg: #3F4254;
+ --bs-dropdown-border-color: var(--bs-border-color-translucent);
+ --bs-dropdown-box-shadow: ;
+ --bs-dropdown-link-color: #E1E3EA;
+ --bs-dropdown-link-hover-color: #ffffff;
+ --bs-dropdown-divider-bg: var(--bs-gray-100);
+ --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
+ --bs-dropdown-link-active-color: var(--bs-component-hover-color);
+ --bs-dropdown-link-active-bg: var(--bs-component-hover-bg);
+ --bs-dropdown-link-disabled-color: #A1A5B7;
+ --bs-dropdown-header-color: #A1A5B7;
+}
+
+.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: 0.475rem;
+}
+.btn-group > :not(.btn-check:first-child) + .btn,
+.btn-group > .btn-group:not(:first-child) {
+ margin-left: -1px;
+}
+.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
+.btn-group > .btn.dropdown-toggle-split:first-child,
+.btn-group > .btn-group:not(:last-child) > .btn {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+}
+.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: 0.9375rem;
+ padding-left: 0.9375rem;
+}
+
+.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
+ padding-right: 1.3125rem;
+ padding-left: 1.3125rem;
+}
+
+.btn-group.show .dropdown-toggle {
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.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: -1px;
+}
+.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 {
+ --bs-nav-link-padding-x: 1rem;
+ --bs-nav-link-padding-y: 0.5rem;
+ --bs-nav-link-font-weight: ;
+ --bs-nav-link-color: var(--bs-link-color);
+ --bs-nav-link-hover-color: var(--bs-link-hover-color);
+ --bs-nav-link-disabled-color: var(--bs-secondary-color);
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: block;
+ padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
+ font-size: var(--bs-nav-link-font-size);
+ font-weight: var(--bs-nav-link-font-weight);
+ color: var(--bs-nav-link-color);
+ transition: color 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .nav-link {
+ transition: none;
+ }
+}
+.nav-link:hover, .nav-link:focus {
+ color: var(--bs-nav-link-hover-color);
+}
+.nav-link.disabled {
+ color: var(--bs-nav-link-disabled-color);
+ pointer-events: none;
+ cursor: default;
+}
+
+.nav-tabs {
+ --bs-nav-tabs-border-width: var(--bs-border-width);
+ --bs-nav-tabs-border-color: var(--bs-border-color);
+ --bs-nav-tabs-border-radius: var(--bs-border-radius);
+ --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);
+ --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);
+ --bs-nav-tabs-link-active-bg: var(--bs-body-bg);
+ --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
+ border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
+}
+.nav-tabs .nav-link {
+ margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
+ background: none;
+ border: var(--bs-nav-tabs-border-width) solid transparent;
+ border-top-left-radius: var(--bs-nav-tabs-border-radius);
+ border-top-right-radius: var(--bs-nav-tabs-border-radius);
+}
+.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {
+ isolation: isolate;
+ border-color: var(--bs-nav-tabs-link-hover-border-color);
+}
+.nav-tabs .nav-link.disabled, .nav-tabs .nav-link:disabled {
+ color: var(--bs-nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-tabs .nav-link.active,
+.nav-tabs .nav-item.show .nav-link {
+ color: var(--bs-nav-tabs-link-active-color);
+ background-color: var(--bs-nav-tabs-link-active-bg);
+ border-color: var(--bs-nav-tabs-link-active-border-color);
+}
+.nav-tabs .dropdown-menu {
+ margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.nav-pills {
+ --bs-nav-pills-border-radius: 0.475rem;
+ --bs-nav-pills-link-active-color: #ffffff;
+ --bs-nav-pills-link-active-bg: #009ef7;
+}
+.nav-pills .nav-link {
+ background: none;
+ border: 0;
+ border-radius: var(--bs-nav-pills-border-radius);
+}
+.nav-pills .nav-link:disabled {
+ color: var(--bs-nav-link-disabled-color);
+ background-color: transparent;
+ border-color: transparent;
+}
+.nav-pills .nav-link.active,
+.nav-pills .show > .nav-link {
+ color: var(--bs-nav-pills-link-active-color);
+ background-color: var(--bs-nav-pills-link-active-bg);
+}
+
+.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 {
+ --bs-navbar-padding-x: 0;
+ --bs-navbar-padding-y: 0.5rem;
+ --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);
+ --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);
+ --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
+ --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
+ --bs-navbar-brand-padding-y: 0.44375rem;
+ --bs-navbar-brand-margin-end: 1rem;
+ --bs-navbar-brand-font-size: 1.075rem;
+ --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
+ --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
+ --bs-navbar-nav-link-padding-x: 0.5rem;
+ --bs-navbar-toggler-padding-y: 0.25rem;
+ --bs-navbar-toggler-padding-x: 0.75rem;
+ --bs-navbar-toggler-font-size: 1.075rem;
+ --bs-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%2824, 28, 50, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
+ --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
+ --bs-navbar-toggler-border-radius: 0.475rem;
+ --bs-navbar-toggler-focus-width: 0.25rem;
+ --bs-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(--bs-navbar-padding-y) var(--bs-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(--bs-navbar-brand-padding-y);
+ padding-bottom: var(--bs-navbar-brand-padding-y);
+ margin-right: var(--bs-navbar-brand-margin-end);
+ font-size: var(--bs-navbar-brand-font-size);
+ color: var(--bs-navbar-brand-color);
+ white-space: nowrap;
+}
+.navbar-brand:hover, .navbar-brand:focus {
+ color: var(--bs-navbar-brand-hover-color);
+}
+
+.navbar-nav {
+ --bs-nav-link-padding-x: 0;
+ --bs-nav-link-padding-y: 0.5rem;
+ --bs-nav-link-font-weight: ;
+ --bs-nav-link-color: var(--bs-navbar-color);
+ --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
+ --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+.navbar-nav .show > .nav-link,
+.navbar-nav .nav-link.active {
+ color: var(--bs-navbar-active-color);
+}
+.navbar-nav .dropdown-menu {
+ position: static;
+}
+
+.navbar-text {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ color: var(--bs-navbar-color);
+}
+.navbar-text a,
+.navbar-text a:hover,
+.navbar-text a:focus {
+ color: var(--bs-navbar-active-color);
+}
+
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ align-items: center;
+}
+
+.navbar-toggler {
+ padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
+ font-size: var(--bs-navbar-toggler-font-size);
+ line-height: 1;
+ color: var(--bs-navbar-color);
+ background-color: transparent;
+ border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
+ border-radius: var(--bs-navbar-toggler-border-radius);
+ transition: var(--bs-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(--bs-navbar-toggler-focus-width);
+}
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ background-image: var(--bs-navbar-toggler-icon-bg);
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+}
+
+.navbar-nav-scroll {
+ max-height: var(--bs-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(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-sm .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-sm .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-sm .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-sm .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ 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(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-md .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-md .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-md .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-md .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ 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(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-lg .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-lg .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-lg .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-lg .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ 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(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-xl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xl .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ 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(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+ }
+ .navbar-expand-xxl .navbar-nav-scroll {
+ overflow: visible;
+ }
+ .navbar-expand-xxl .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+ }
+ .navbar-expand-xxl .navbar-toggler {
+ display: none;
+ }
+ .navbar-expand-xxl .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ 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(--bs-navbar-nav-link-padding-x);
+ padding-left: var(--bs-navbar-nav-link-padding-x);
+}
+.navbar-expand .navbar-nav-scroll {
+ overflow: visible;
+}
+.navbar-expand .navbar-collapse {
+ display: flex !important;
+ flex-basis: auto;
+}
+.navbar-expand .navbar-toggler {
+ display: none;
+}
+.navbar-expand .offcanvas {
+ position: static;
+ z-index: auto;
+ flex-grow: 1;
+ width: auto !important;
+ height: auto !important;
+ visibility: visible !important;
+ background-color: transparent !important;
+ border: 0 !important;
+ transform: none !important;
+ 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 {
+ --bs-navbar-color: rgba(255, 255, 255, 0.55);
+ --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
+ --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
+ --bs-navbar-active-color: #ffffff;
+ --bs-navbar-brand-color: #ffffff;
+ --bs-navbar-brand-hover-color: #ffffff;
+ --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
+ --bs-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-bs-theme=dark] .navbar {
+ --bs-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 {
+ --bs-card-spacer-y: 1rem;
+ --bs-card-spacer-x: 1rem;
+ --bs-card-title-spacer-y: 0.5rem;
+ --bs-card-title-color: ;
+ --bs-card-subtitle-color: ;
+ --bs-card-border-width: var(--bs-border-width);
+ --bs-card-border-color: var(--bs-border-color);
+ --bs-card-border-radius: 0.625rem;
+ --bs-card-box-shadow: 0px 0px 20px 0px rgba(76, 87, 125, 0.02);
+ --bs-card-inner-border-radius: calc(0.625rem - (var(--bs-border-width)));
+ --bs-card-cap-padding-y: 0.5rem;
+ --bs-card-cap-padding-x: 1rem;
+ --bs-card-cap-bg: transparent;
+ --bs-card-cap-color: ;
+ --bs-card-height: ;
+ --bs-card-color: ;
+ --bs-card-bg: var(--bs-body-bg);
+ --bs-card-img-overlay-padding: 1rem;
+ --bs-card-group-margin: 0.75rem;
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ height: var(--bs-card-height);
+ word-wrap: break-word;
+ background-color: var(--bs-card-bg);
+ background-clip: border-box;
+ border: var(--bs-card-border-width) solid var(--bs-card-border-color);
+ border-radius: var(--bs-card-border-radius);
+ box-shadow: var(--bs-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(--bs-card-inner-border-radius);
+ border-top-right-radius: var(--bs-card-inner-border-radius);
+}
+.card > .list-group:last-child {
+ border-bottom-width: 0;
+ border-bottom-right-radius: var(--bs-card-inner-border-radius);
+ border-bottom-left-radius: var(--bs-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(--bs-card-spacer-y) var(--bs-card-spacer-x);
+ color: var(--bs-card-color);
+}
+
+.card-title {
+ margin-bottom: var(--bs-card-title-spacer-y);
+ color: var(--bs-card-title-color);
+}
+
+.card-subtitle {
+ margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));
+ margin-bottom: 0;
+ color: var(--bs-card-subtitle-color);
+}
+
+.card-text:last-child {
+ margin-bottom: 0;
+}
+
+.card-link + .card-link {
+ margin-left: var(--bs-card-spacer-x);
+}
+
+.card-header {
+ padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+ margin-bottom: 0;
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);
+}
+.card-header:first-child {
+ border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;
+}
+
+.card-footer {
+ padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);
+}
+.card-footer:last-child {
+ border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);
+}
+
+.card-header-tabs {
+ margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+ margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
+ margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+ border-bottom: 0;
+}
+.card-header-tabs .nav-link.active {
+ background-color: var(--bs-card-bg);
+ border-bottom-color: var(--bs-card-bg);
+}
+
+.card-header-pills {
+ margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
+ margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
+}
+
+.card-img-overlay {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ padding: var(--bs-card-img-overlay-padding);
+ border-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-img,
+.card-img-top,
+.card-img-bottom {
+ width: 100%;
+}
+
+.card-img,
+.card-img-top {
+ border-top-left-radius: var(--bs-card-inner-border-radius);
+ border-top-right-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-img,
+.card-img-bottom {
+ border-bottom-right-radius: var(--bs-card-inner-border-radius);
+ border-bottom-left-radius: var(--bs-card-inner-border-radius);
+}
+
+.card-group > .card {
+ margin-bottom: var(--bs-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 {
+ --bs-accordion-color: var(--bs-body-color);
+ --bs-accordion-bg: var(--bs-body-bg);
+ --bs-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;
+ --bs-accordion-border-color: var(--bs-border-color);
+ --bs-accordion-border-width: var(--bs-border-width);
+ --bs-accordion-border-radius: 0.475rem;
+ --bs-accordion-inner-border-radius: calc(0.475rem - (var(--bs-border-width)));
+ --bs-accordion-btn-padding-x: 1.5rem;
+ --bs-accordion-btn-padding-y: 1.5rem;
+ --bs-accordion-btn-color: var(--bs-body-color);
+ --bs-accordion-btn-bg: var(--bs-body-bg);
+ --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23181C32'%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");
+ --bs-accordion-btn-icon-width: 1.15rem;
+ --bs-accordion-btn-icon-transform: rotate(-180deg);
+ --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
+ --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23009ef7'%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");
+ --bs-accordion-btn-focus-border-color: var(--bs-border-color);
+ --bs-accordion-btn-focus-box-shadow: none;
+ --bs-accordion-body-padding-x: 1.5rem;
+ --bs-accordion-body-padding-y: 1.5rem;
+ --bs-accordion-active-color: var(--bs-primary);
+ --bs-accordion-active-bg: var(--bs-gray-100);
+}
+
+.accordion-button {
+ position: relative;
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
+ font-size: 1rem;
+ color: var(--bs-accordion-btn-color);
+ text-align: left;
+ background-color: var(--bs-accordion-btn-bg);
+ border: 0;
+ border-radius: 0;
+ overflow-anchor: none;
+ transition: var(--bs-accordion-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .accordion-button {
+ transition: none;
+ }
+}
+.accordion-button:not(.collapsed) {
+ color: var(--bs-accordion-active-color);
+ background-color: var(--bs-accordion-active-bg);
+ box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
+}
+.accordion-button:not(.collapsed)::after {
+ background-image: var(--bs-accordion-btn-active-icon);
+ transform: var(--bs-accordion-btn-icon-transform);
+}
+.accordion-button::after {
+ flex-shrink: 0;
+ width: var(--bs-accordion-btn-icon-width);
+ height: var(--bs-accordion-btn-icon-width);
+ margin-left: auto;
+ content: "";
+ background-image: var(--bs-accordion-btn-icon);
+ background-repeat: no-repeat;
+ background-size: var(--bs-accordion-btn-icon-width);
+ transition: var(--bs-accordion-btn-icon-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .accordion-button::after {
+ transition: none;
+ }
+}
+.accordion-button:hover {
+ z-index: 2;
+}
+.accordion-button:focus {
+ z-index: 3;
+ border-color: var(--bs-accordion-btn-focus-border-color);
+ outline: 0;
+ box-shadow: var(--bs-accordion-btn-focus-box-shadow);
+}
+
+.accordion-header {
+ margin-bottom: 0;
+}
+
+.accordion-item {
+ color: var(--bs-accordion-color);
+ background-color: var(--bs-accordion-bg);
+ border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);
+}
+.accordion-item:first-of-type {
+ border-top-left-radius: var(--bs-accordion-border-radius);
+ border-top-right-radius: var(--bs-accordion-border-radius);
+}
+.accordion-item:first-of-type .accordion-button {
+ border-top-left-radius: var(--bs-accordion-inner-border-radius);
+ border-top-right-radius: var(--bs-accordion-inner-border-radius);
+}
+.accordion-item:not(:first-of-type) {
+ border-top: 0;
+}
+.accordion-item:last-of-type {
+ border-bottom-right-radius: var(--bs-accordion-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-border-radius);
+}
+.accordion-item:last-of-type .accordion-button.collapsed {
+ border-bottom-right-radius: var(--bs-accordion-inner-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-inner-border-radius);
+}
+.accordion-item:last-of-type .accordion-collapse {
+ border-bottom-right-radius: var(--bs-accordion-border-radius);
+ border-bottom-left-radius: var(--bs-accordion-border-radius);
+}
+
+.accordion-body {
+ padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
+}
+
+.accordion-flush .accordion-collapse {
+ border-width: 0;
+}
+.accordion-flush .accordion-item {
+ border-right: 0;
+ border-left: 0;
+ border-radius: 0;
+}
+.accordion-flush .accordion-item:first-child {
+ border-top: 0;
+}
+.accordion-flush .accordion-item:last-child {
+ border-bottom: 0;
+}
+.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
+ border-radius: 0;
+}
+
+[data-bs-theme=dark] .accordion-button::after {
+ --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23FFFFFF'%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");
+ --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23009ef7'%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 {
+ --bs-breadcrumb-padding-x: 0;
+ --bs-breadcrumb-padding-y: 0;
+ --bs-breadcrumb-margin-bottom: 1rem;
+ --bs-breadcrumb-bg: ;
+ --bs-breadcrumb-border-radius: ;
+ --bs-breadcrumb-divider-color: var(--bs-gray-600);
+ --bs-breadcrumb-item-padding-x: 0.5rem;
+ --bs-breadcrumb-item-active-color: var(--bs-primary);
+ display: flex;
+ flex-wrap: wrap;
+ padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
+ margin-bottom: var(--bs-breadcrumb-margin-bottom);
+ font-size: var(--bs-breadcrumb-font-size);
+ list-style: none;
+ background-color: var(--bs-breadcrumb-bg);
+ border-radius: var(--bs-breadcrumb-border-radius);
+}
+
+.breadcrumb-item + .breadcrumb-item {
+ padding-left: var(--bs-breadcrumb-item-padding-x);
+}
+.breadcrumb-item + .breadcrumb-item::before {
+ float: left;
+ padding-right: var(--bs-breadcrumb-item-padding-x);
+ color: var(--bs-breadcrumb-divider-color);
+ content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */;
+}
+.breadcrumb-item.active {
+ color: var(--bs-breadcrumb-item-active-color);
+}
+
+.pagination {
+ --bs-pagination-padding-x: 0.75rem;
+ --bs-pagination-padding-y: 0.375rem;
+ --bs-pagination-font-size: 1.075rem;
+ --bs-pagination-color: var(--bs-gray-700);
+ --bs-pagination-bg: transparent;
+ --bs-pagination-border-width: 0;
+ --bs-pagination-border-color: transparent;
+ --bs-pagination-border-radius: 0.475rem;
+ --bs-pagination-hover-color: var(--bs-component-hover-color);
+ --bs-pagination-hover-bg: var(--bs-component-hover-bg);
+ --bs-pagination-hover-border-color: transparent;
+ --bs-pagination-focus-color: var(--bs-component-hover-color);
+ --bs-pagination-focus-bg: var(--bs-component-hover-bg);
+ --bs-pagination-focus-box-shadow: none;
+ --bs-pagination-active-color: var(--bs-component-active-color);
+ --bs-pagination-active-bg: var(--bs-component-active-bg);
+ --bs-pagination-active-border-color: transparent;
+ --bs-pagination-disabled-color: var(--bs-gray-400);
+ --bs-pagination-disabled-bg: transparent;
+ --bs-pagination-disabled-border-color: transparent;
+ display: flex;
+ padding-left: 0;
+ list-style: none;
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);
+ font-size: var(--bs-pagination-font-size);
+ color: var(--bs-pagination-color);
+ background-color: var(--bs-pagination-bg);
+ border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);
+ transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .page-link {
+ transition: none;
+ }
+}
+.page-link:hover {
+ z-index: 2;
+ color: var(--bs-pagination-hover-color);
+ background-color: var(--bs-pagination-hover-bg);
+ border-color: var(--bs-pagination-hover-border-color);
+}
+.page-link:focus {
+ z-index: 3;
+ color: var(--bs-pagination-focus-color);
+ background-color: var(--bs-pagination-focus-bg);
+ outline: 0;
+ box-shadow: var(--bs-pagination-focus-box-shadow);
+}
+.page-link.active, .active > .page-link {
+ z-index: 3;
+ color: var(--bs-pagination-active-color);
+ background-color: var(--bs-pagination-active-bg);
+ border-color: var(--bs-pagination-active-border-color);
+}
+.page-link.disabled, .disabled > .page-link {
+ color: var(--bs-pagination-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-pagination-disabled-bg);
+ border-color: var(--bs-pagination-disabled-border-color);
+}
+
+.page-item:not(:first-child) .page-link {
+ margin-left: 0;
+}
+.page-item:first-child .page-link {
+ border-top-left-radius: var(--bs-pagination-border-radius);
+ border-bottom-left-radius: var(--bs-pagination-border-radius);
+}
+.page-item:last-child .page-link {
+ border-top-right-radius: var(--bs-pagination-border-radius);
+ border-bottom-right-radius: var(--bs-pagination-border-radius);
+}
+
+.pagination-lg {
+ --bs-pagination-padding-x: 1.5rem;
+ --bs-pagination-padding-y: 0.75rem;
+ --bs-pagination-font-size: 1.075rem;
+ --bs-pagination-border-radius: 0.625rem;
+}
+
+.pagination-sm {
+ --bs-pagination-padding-x: 0.5rem;
+ --bs-pagination-padding-y: 0.25rem;
+ --bs-pagination-font-size: 0.95rem;
+ --bs-pagination-border-radius: 0.425rem;
+}
+
+.badge {
+ --bs-badge-padding-x: 0.5rem;
+ --bs-badge-padding-y: 0.325rem;
+ --bs-badge-font-size: 0.85rem;
+ --bs-badge-font-weight: 600;
+ --bs-badge-color: var(--bs-body-bg);
+ --bs-badge-border-radius: 0.425rem;
+ display: inline-block;
+ padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);
+ font-size: var(--bs-badge-font-size);
+ font-weight: var(--bs-badge-font-weight);
+ line-height: 1;
+ color: var(--bs-badge-color);
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: var(--bs-badge-border-radius);
+}
+.badge:empty {
+ display: none;
+}
+
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.alert {
+ --bs-alert-bg: transparent;
+ --bs-alert-padding-x: 1rem;
+ --bs-alert-padding-y: 1rem;
+ --bs-alert-margin-bottom: 1rem;
+ --bs-alert-color: inherit;
+ --bs-alert-border-color: transparent;
+ --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);
+ --bs-alert-border-radius: 0.475rem;
+ --bs-alert-link-color: inherit;
+ position: relative;
+ padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
+ margin-bottom: var(--bs-alert-margin-bottom);
+ color: var(--bs-alert-color);
+ background-color: var(--bs-alert-bg);
+ border: var(--bs-alert-border);
+ border-radius: var(--bs-alert-border-radius);
+}
+
+.alert-heading {
+ color: inherit;
+}
+
+.alert-link {
+ font-weight: 600;
+ color: var(--bs-alert-link-color);
+}
+
+.alert-dismissible {
+ padding-right: 3rem;
+}
+.alert-dismissible .btn-close {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ padding: 1.25rem 1rem;
+}
+
+.alert-white {
+ --bs-alert-color: var(--bs-white-text);
+ --bs-alert-bg: var(--bs-white-bg-subtle);
+ --bs-alert-border-color: var(--bs-white-border-subtle);
+ --bs-alert-link-color: var(--bs-white-text);
+}
+
+.alert-light {
+ --bs-alert-color: var(--bs-light-text);
+ --bs-alert-bg: var(--bs-light-bg-subtle);
+ --bs-alert-border-color: var(--bs-light-border-subtle);
+ --bs-alert-link-color: var(--bs-light-text);
+}
+
+.alert-primary {
+ --bs-alert-color: var(--bs-primary-text);
+ --bs-alert-bg: var(--bs-primary-bg-subtle);
+ --bs-alert-border-color: var(--bs-primary-border-subtle);
+ --bs-alert-link-color: var(--bs-primary-text);
+}
+
+.alert-secondary {
+ --bs-alert-color: var(--bs-secondary-text);
+ --bs-alert-bg: var(--bs-secondary-bg-subtle);
+ --bs-alert-border-color: var(--bs-secondary-border-subtle);
+ --bs-alert-link-color: var(--bs-secondary-text);
+}
+
+.alert-success {
+ --bs-alert-color: var(--bs-success-text);
+ --bs-alert-bg: var(--bs-success-bg-subtle);
+ --bs-alert-border-color: var(--bs-success-border-subtle);
+ --bs-alert-link-color: var(--bs-success-text);
+}
+
+.alert-info {
+ --bs-alert-color: var(--bs-info-text);
+ --bs-alert-bg: var(--bs-info-bg-subtle);
+ --bs-alert-border-color: var(--bs-info-border-subtle);
+ --bs-alert-link-color: var(--bs-info-text);
+}
+
+.alert-warning {
+ --bs-alert-color: var(--bs-warning-text);
+ --bs-alert-bg: var(--bs-warning-bg-subtle);
+ --bs-alert-border-color: var(--bs-warning-border-subtle);
+ --bs-alert-link-color: var(--bs-warning-text);
+}
+
+.alert-danger {
+ --bs-alert-color: var(--bs-danger-text);
+ --bs-alert-bg: var(--bs-danger-bg-subtle);
+ --bs-alert-border-color: var(--bs-danger-border-subtle);
+ --bs-alert-link-color: var(--bs-danger-text);
+}
+
+.alert-dark {
+ --bs-alert-color: var(--bs-dark-text);
+ --bs-alert-bg: var(--bs-dark-bg-subtle);
+ --bs-alert-border-color: var(--bs-dark-border-subtle);
+ --bs-alert-link-color: var(--bs-dark-text);
+}
+
+@keyframes progress-bar-stripes {
+ 0% {
+ background-position-x: 1rem;
+ }
+}
+.progress,
+.progress-stacked {
+ --bs-progress-height: 1rem;
+ --bs-progress-font-size: 0.75rem;
+ --bs-progress-bg: var(--bs-gray-100);
+ --bs-progress-border-radius: 6px;
+ --bs-progress-box-shadow: none;
+ --bs-progress-bar-color: #ffffff;
+ --bs-progress-bar-bg: #009ef7;
+ --bs-progress-bar-transition: width 0.6s ease;
+ display: flex;
+ height: var(--bs-progress-height);
+ overflow: hidden;
+ font-size: var(--bs-progress-font-size);
+ background-color: var(--bs-progress-bg);
+ border-radius: var(--bs-progress-border-radius);
+ box-shadow: var(--bs-progress-box-shadow);
+}
+
+.progress-bar {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ overflow: hidden;
+ color: var(--bs-progress-bar-color);
+ text-align: center;
+ white-space: nowrap;
+ background-color: var(--bs-progress-bar-bg);
+ transition: var(--bs-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(--bs-progress-height) var(--bs-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 {
+ --bs-list-group-color: var(--bs-gray-900);
+ --bs-list-group-bg: #ffffff;
+ --bs-list-group-border-color: rgba(0, 0, 0, 0.125);
+ --bs-list-group-border-width: var(--bs-border-width);
+ --bs-list-group-border-radius: var(--bs-border-radius);
+ --bs-list-group-item-padding-x: 1rem;
+ --bs-list-group-item-padding-y: 0.5rem;
+ --bs-list-group-action-color: var(--bs-gray-700);
+ --bs-list-group-action-hover-color: var(--bs-gray-700);
+ --bs-list-group-action-hover-bg: var(--bs-gray-100);
+ --bs-list-group-action-active-color: var(--bs-body-color);
+ --bs-list-group-action-active-bg: var(--bs-gray-200);
+ --bs-list-group-disabled-color: var(--bs-gray-600);
+ --bs-list-group-disabled-bg: #ffffff;
+ --bs-list-group-active-color: var(--bs-component-active-color);
+ --bs-list-group-active-bg: var(--bs-component-active-bg);
+ --bs-list-group-active-border-color: var(--bs-component-active-bg);
+ display: flex;
+ flex-direction: column;
+ padding-left: 0;
+ margin-bottom: 0;
+ border-radius: var(--bs-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(--bs-list-group-action-color);
+ text-align: inherit;
+}
+.list-group-item-action:hover, .list-group-item-action:focus {
+ z-index: 1;
+ color: var(--bs-list-group-action-hover-color);
+ text-decoration: none;
+ background-color: var(--bs-list-group-action-hover-bg);
+}
+.list-group-item-action:active {
+ color: var(--bs-list-group-action-active-color);
+ background-color: var(--bs-list-group-action-active-bg);
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);
+ color: var(--bs-list-group-color);
+ background-color: var(--bs-list-group-bg);
+ border: var(--bs-list-group-border-width) solid var(--bs-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(--bs-list-group-disabled-color);
+ pointer-events: none;
+ background-color: var(--bs-list-group-disabled-bg);
+}
+.list-group-item.active {
+ z-index: 2;
+ color: var(--bs-list-group-active-color);
+ background-color: var(--bs-list-group-active-bg);
+ border-color: var(--bs-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(--bs-list-group-border-width));
+ border-top-width: var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);
+ border-left-width: 0;
+}
+.list-group-horizontal > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-md > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-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(--bs-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(--bs-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(--bs-list-group-border-width);
+ border-left-width: 0;
+ }
+ .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
+ margin-left: calc(-1 * var(--bs-list-group-border-width));
+ border-left-width: var(--bs-list-group-border-width);
+ }
+}
+.list-group-flush {
+ border-radius: 0;
+}
+.list-group-flush > .list-group-item {
+ border-width: 0 0 var(--bs-list-group-border-width);
+}
+.list-group-flush > .list-group-item:last-child {
+ border-bottom-width: 0;
+}
+
+.list-group-item-white {
+ --bs-list-group-color: var(--bs-white-text);
+ --bs-list-group-bg: var(--bs-white-bg-subtle);
+ --bs-list-group-border-color: var(--bs-white-border-subtle);
+}
+.list-group-item-white.list-group-item-action:hover, .list-group-item-white.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-white-border-subtle);
+}
+.list-group-item-white.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-white-text);
+ --bs-list-group-active-border-color: var(--bs-white-text);
+}
+
+.list-group-item-light {
+ --bs-list-group-color: var(--bs-light-text);
+ --bs-list-group-bg: var(--bs-light-bg-subtle);
+ --bs-list-group-border-color: var(--bs-light-border-subtle);
+}
+.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);
+}
+.list-group-item-light.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-light-text);
+ --bs-list-group-active-border-color: var(--bs-light-text);
+}
+
+.list-group-item-primary {
+ --bs-list-group-color: var(--bs-primary-text);
+ --bs-list-group-bg: var(--bs-primary-bg-subtle);
+ --bs-list-group-border-color: var(--bs-primary-border-subtle);
+}
+.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);
+}
+.list-group-item-primary.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-primary-text);
+ --bs-list-group-active-border-color: var(--bs-primary-text);
+}
+
+.list-group-item-secondary {
+ --bs-list-group-color: var(--bs-secondary-text);
+ --bs-list-group-bg: var(--bs-secondary-bg-subtle);
+ --bs-list-group-border-color: var(--bs-secondary-border-subtle);
+}
+.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);
+}
+.list-group-item-secondary.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-secondary-text);
+ --bs-list-group-active-border-color: var(--bs-secondary-text);
+}
+
+.list-group-item-success {
+ --bs-list-group-color: var(--bs-success-text);
+ --bs-list-group-bg: var(--bs-success-bg-subtle);
+ --bs-list-group-border-color: var(--bs-success-border-subtle);
+}
+.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);
+}
+.list-group-item-success.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-success-text);
+ --bs-list-group-active-border-color: var(--bs-success-text);
+}
+
+.list-group-item-info {
+ --bs-list-group-color: var(--bs-info-text);
+ --bs-list-group-bg: var(--bs-info-bg-subtle);
+ --bs-list-group-border-color: var(--bs-info-border-subtle);
+}
+.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);
+}
+.list-group-item-info.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-info-text);
+ --bs-list-group-active-border-color: var(--bs-info-text);
+}
+
+.list-group-item-warning {
+ --bs-list-group-color: var(--bs-warning-text);
+ --bs-list-group-bg: var(--bs-warning-bg-subtle);
+ --bs-list-group-border-color: var(--bs-warning-border-subtle);
+}
+.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);
+}
+.list-group-item-warning.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-warning-text);
+ --bs-list-group-active-border-color: var(--bs-warning-text);
+}
+
+.list-group-item-danger {
+ --bs-list-group-color: var(--bs-danger-text);
+ --bs-list-group-bg: var(--bs-danger-bg-subtle);
+ --bs-list-group-border-color: var(--bs-danger-border-subtle);
+}
+.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);
+}
+.list-group-item-danger.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-danger-text);
+ --bs-list-group-active-border-color: var(--bs-danger-text);
+}
+
+.list-group-item-dark {
+ --bs-list-group-color: var(--bs-dark-text);
+ --bs-list-group-bg: var(--bs-dark-bg-subtle);
+ --bs-list-group-border-color: var(--bs-dark-border-subtle);
+}
+.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {
+ --bs-list-group-action-hover-color: var(--bs-emphasis-color);
+ --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);
+}
+.list-group-item-dark.list-group-item-action:active {
+ --bs-list-group-active-color: var(--bs-emphasis-color);
+ --bs-list-group-active-bg: var(--bs-dark-text);
+ --bs-list-group-active-border-color: var(--bs-dark-text);
+}
+
+.btn-close {
+ --bs-btn-close-color: #000000;
+ --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
+ --bs-btn-close-opacity: 0.5;
+ --bs-btn-close-hover-opacity: 0.75;
+ --bs-btn-close-focus-shadow: none;
+ --bs-btn-close-focus-opacity: 1;
+ --bs-btn-close-disabled-opacity: 0.25;
+ --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
+ box-sizing: content-box;
+ width: 0.75rem;
+ height: 0.75rem;
+ padding: 0.25em 0.25em;
+ color: var(--bs-btn-close-color);
+ background: transparent var(--bs-btn-close-bg) center/0.75rem auto no-repeat;
+ border: 0;
+ border-radius: 0.475rem;
+ opacity: var(--bs-btn-close-opacity);
+}
+.btn-close:hover {
+ color: var(--bs-btn-close-color);
+ text-decoration: none;
+ opacity: var(--bs-btn-close-hover-opacity);
+}
+.btn-close:focus {
+ outline: 0;
+ box-shadow: var(--bs-btn-close-focus-shadow);
+ opacity: var(--bs-btn-close-focus-opacity);
+}
+.btn-close:disabled, .btn-close.disabled {
+ pointer-events: none;
+ user-select: none;
+ opacity: var(--bs-btn-close-disabled-opacity);
+}
+
+.btn-close-white {
+ filter: var(--bs-btn-close-white-filter);
+}
+
+[data-bs-theme=dark] .btn-close {
+ filter: var(--bs-btn-close-white-filter);
+}
+
+.toast {
+ --bs-toast-zindex: 1090;
+ --bs-toast-padding-x: 0.75rem;
+ --bs-toast-padding-y: 0.5rem;
+ --bs-toast-spacing: 1.5rem;
+ --bs-toast-max-width: 350px;
+ --bs-toast-font-size: 0.875rem;
+ --bs-toast-color: var(--bs-gray-700);
+ --bs-toast-bg: var(--bs-body-bg);
+ --bs-toast-border-width: var(--bs-border-width);
+ --bs-toast-border-color: transparent;
+ --bs-toast-border-radius: var(--bs-border-radius);
+ --bs-toast-box-shadow: var(--bs-box-shadow);
+ --bs-toast-header-color: var(--bs-gray-700);
+ --bs-toast-header-bg: var(--bs-body-bg);
+ --bs-toast-header-border-color: var(--bs-border-color);
+ width: var(--bs-toast-max-width);
+ max-width: 100%;
+ font-size: var(--bs-toast-font-size);
+ color: var(--bs-toast-color);
+ pointer-events: auto;
+ background-color: var(--bs-toast-bg);
+ background-clip: padding-box;
+ border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);
+ box-shadow: var(--bs-toast-box-shadow);
+ border-radius: var(--bs-toast-border-radius);
+}
+.toast.showing {
+ opacity: 0;
+}
+.toast:not(.show) {
+ display: none;
+}
+
+.toast-container {
+ --bs-toast-zindex: 1090;
+ position: absolute;
+ z-index: var(--bs-toast-zindex);
+ width: max-content;
+ max-width: 100%;
+ pointer-events: none;
+}
+.toast-container > :not(:last-child) {
+ margin-bottom: var(--bs-toast-spacing);
+}
+
+.toast-header {
+ display: flex;
+ align-items: center;
+ padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);
+ color: var(--bs-toast-header-color);
+ background-color: var(--bs-toast-header-bg);
+ background-clip: padding-box;
+ border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);
+ border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+ border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
+}
+.toast-header .btn-close {
+ margin-right: calc(-0.5 * var(--bs-toast-padding-x));
+ margin-left: var(--bs-toast-padding-x);
+}
+
+.toast-body {
+ padding: var(--bs-toast-padding-x);
+ word-wrap: break-word;
+}
+
+.modal {
+ --bs-modal-zindex: 1055;
+ --bs-modal-width: 500px;
+ --bs-modal-padding: 1.75rem;
+ --bs-modal-margin: 0.5rem;
+ --bs-modal-color: ;
+ --bs-modal-bg: var(--bs-body-bg);
+ --bs-modal-border-color: var(--bs-border-color-translucent);
+ --bs-modal-border-width: 0;
+ --bs-modal-border-radius: 0.475rem;
+ --bs-modal-box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
+ --bs-modal-inner-border-radius: 0.475rem;
+ --bs-modal-header-padding-x: 1.75rem;
+ --bs-modal-header-padding-y: 1.75rem;
+ --bs-modal-header-padding: 1.75rem 1.75rem;
+ --bs-modal-header-border-color: var(--bs-border-color);
+ --bs-modal-header-border-width: 1px;
+ --bs-modal-title-line-height: 1.5;
+ --bs-modal-footer-gap: 0.5rem;
+ --bs-modal-footer-bg: ;
+ --bs-modal-footer-border-color: var(--bs-border-color);
+ --bs-modal-footer-border-width: 1px;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: var(--bs-modal-zindex);
+ display: none;
+ width: 100%;
+ height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ outline: 0;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: var(--bs-modal-margin);
+ pointer-events: none;
+}
+.modal.fade .modal-dialog {
+ transition: transform 0.3s ease-out;
+ transform: translate(0, -50px);
+}
+@media (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+.modal.show .modal-dialog {
+ transform: none;
+}
+.modal.modal-static .modal-dialog {
+ transform: scale(1.02);
+}
+
+.modal-dialog-scrollable {
+ height: calc(100% - var(--bs-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(--bs-modal-margin) * 2);
+}
+
+.modal-content {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ color: var(--bs-modal-color);
+ pointer-events: auto;
+ background-color: var(--bs-modal-bg);
+ background-clip: padding-box;
+ border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
+ border-radius: var(--bs-modal-border-radius);
+ box-shadow: var(--bs-modal-box-shadow);
+ outline: 0;
+}
+
+.modal-backdrop {
+ --bs-backdrop-zindex: 1050;
+ --bs-backdrop-bg: #000000;
+ --bs-backdrop-opacity: 0.4;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: var(--bs-backdrop-zindex);
+ width: 100vw;
+ height: 100vh;
+ background-color: var(--bs-backdrop-bg);
+}
+.modal-backdrop.fade {
+ opacity: 0;
+}
+.modal-backdrop.show {
+ opacity: var(--bs-backdrop-opacity);
+}
+
+.modal-header {
+ display: flex;
+ flex-shrink: 0;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-modal-header-padding);
+ border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
+ border-top-left-radius: var(--bs-modal-inner-border-radius);
+ border-top-right-radius: var(--bs-modal-inner-border-radius);
+}
+.modal-header .btn-close {
+ padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
+ margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
+}
+
+.modal-title {
+ margin-bottom: 0;
+ line-height: var(--bs-modal-title-line-height);
+}
+
+.modal-body {
+ position: relative;
+ flex: 1 1 auto;
+ padding: var(--bs-modal-padding);
+}
+
+.modal-footer {
+ display: flex;
+ flex-shrink: 0;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: flex-end;
+ padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);
+ background-color: var(--bs-modal-footer-bg);
+ border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
+ border-bottom-right-radius: var(--bs-modal-inner-border-radius);
+ border-bottom-left-radius: var(--bs-modal-inner-border-radius);
+}
+.modal-footer > * {
+ margin: calc(var(--bs-modal-footer-gap) * 0.5);
+}
+
+@media (min-width: 576px) {
+ .modal {
+ --bs-modal-margin: 1.75rem;
+ --bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
+ }
+ .modal-dialog {
+ max-width: var(--bs-modal-width);
+ margin-right: auto;
+ margin-left: auto;
+ }
+ .modal-sm {
+ --bs-modal-width: 300px;
+ }
+}
+@media (min-width: 992px) {
+ .modal-lg,
+.modal-xl {
+ --bs-modal-width: 800px;
+ }
+}
+@media (min-width: 1200px) {
+ .modal-xl {
+ --bs-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 {
+ --bs-tooltip-zindex: 1080;
+ --bs-tooltip-max-width: 200px;
+ --bs-tooltip-padding-x: 1rem;
+ --bs-tooltip-padding-y: 0.75rem;
+ --bs-tooltip-margin: 0;
+ --bs-tooltip-font-size: 1rem;
+ --bs-tooltip-color: var(--bs-gray-800);
+ --bs-tooltip-bg: #ffffff;
+ --bs-tooltip-border-radius: 0.475rem;
+ --bs-tooltip-opacity: 1;
+ --bs-tooltip-arrow-width: 0.8rem;
+ --bs-tooltip-arrow-height: 0.4rem;
+ z-index: var(--bs-tooltip-zindex);
+ display: block;
+ padding: var(--bs-tooltip-arrow-height);
+ margin: var(--bs-tooltip-margin);
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ white-space: normal;
+ word-spacing: normal;
+ line-break: auto;
+ font-size: var(--bs-tooltip-font-size);
+ word-wrap: break-word;
+ opacity: 0;
+}
+.tooltip.show {
+ opacity: var(--bs-tooltip-opacity);
+}
+.tooltip .tooltip-arrow {
+ display: block;
+ width: var(--bs-tooltip-arrow-width);
+ height: var(--bs-tooltip-arrow-height);
+}
+.tooltip .tooltip-arrow::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+}
+
+.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {
+ bottom: 0;
+}
+.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ top: -1px;
+ border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+ border-top-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {
+ left: 0;
+ width: var(--bs-tooltip-arrow-height);
+ height: var(--bs-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(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;
+ border-right-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:end:ignore */
+.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {
+ top: 0;
+}
+.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ bottom: -1px;
+ border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+ border-bottom-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {
+ right: 0;
+ width: var(--bs-tooltip-arrow-height);
+ height: var(--bs-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(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);
+ border-left-color: var(--bs-tooltip-bg);
+}
+
+/* rtl:end:ignore */
+.tooltip-inner {
+ max-width: var(--bs-tooltip-max-width);
+ padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);
+ color: var(--bs-tooltip-color);
+ text-align: center;
+ background-color: var(--bs-tooltip-bg);
+ border-radius: var(--bs-tooltip-border-radius);
+}
+
+.popover {
+ --bs-popover-zindex: 1070;
+ --bs-popover-max-width: 276px;
+ --bs-popover-font-size: 1rem;
+ --bs-popover-bg: #ffffff;
+ --bs-popover-border-width: var(--bs-border-width);
+ --bs-popover-border-color: transparent;
+ --bs-popover-border-radius: 0.475rem;
+ --bs-popover-inner-border-radius: calc(0.475rem - var(--bs-border-width));
+ --bs-popover-box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15);
+ --bs-popover-header-padding-x: 1.25rem;
+ --bs-popover-header-padding-y: 1rem;
+ --bs-popover-header-font-size: 1rem;
+ --bs-popover-header-color: var(--bs-gray-800);
+ --bs-popover-header-bg: #ffffff;
+ --bs-popover-body-padding-x: 1.25rem;
+ --bs-popover-body-padding-y: 1.25rem;
+ --bs-popover-body-color: var(--bs-gray-800);
+ --bs-popover-arrow-width: 1rem;
+ --bs-popover-arrow-height: 0.5rem;
+ --bs-popover-arrow-border: var(--bs-popover-border-color);
+ z-index: var(--bs-popover-zindex);
+ display: block;
+ max-width: var(--bs-popover-max-width);
+ font-family: var(--bs-font-sans-serif);
+ font-style: normal;
+ font-weight: 400;
+ line-height: 1.5;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ white-space: normal;
+ word-spacing: normal;
+ line-break: auto;
+ font-size: var(--bs-popover-font-size);
+ word-wrap: break-word;
+ background-color: var(--bs-popover-bg);
+ background-clip: padding-box;
+ border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+ border-radius: var(--bs-popover-border-radius);
+ box-shadow: var(--bs-popover-box-shadow);
+}
+.popover .popover-arrow {
+ display: block;
+ width: var(--bs-popover-arrow-width);
+ height: var(--bs-popover-arrow-height);
+}
+.popover .popover-arrow::before, .popover .popover-arrow::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+ border-width: 0;
+}
+
+.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
+ bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-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(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+}
+.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ bottom: 0;
+ border-top-color: var(--bs-popover-arrow-border);
+}
+.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ bottom: var(--bs-popover-border-width);
+ border-top-color: var(--bs-popover-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
+ left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+ width: var(--bs-popover-arrow-height);
+ height: var(--bs-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(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
+}
+.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ left: 0;
+ border-right-color: var(--bs-popover-arrow-border);
+}
+.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ left: var(--bs-popover-border-width);
+ border-right-color: var(--bs-popover-bg);
+}
+
+/* rtl:end:ignore */
+.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
+ top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-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(--bs-popover-arrow-width) * 0.5) var(--bs-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(--bs-popover-arrow-border);
+}
+.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ top: var(--bs-popover-border-width);
+ border-bottom-color: var(--bs-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(--bs-popover-arrow-width);
+ margin-left: calc(-0.5 * var(--bs-popover-arrow-width));
+ content: "";
+ border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
+}
+
+/* rtl:begin:ignore */
+.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
+ right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
+ width: var(--bs-popover-arrow-height);
+ height: var(--bs-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(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-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(--bs-popover-arrow-border);
+}
+.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ right: var(--bs-popover-border-width);
+ border-left-color: var(--bs-popover-bg);
+}
+
+/* rtl:end:ignore */
+.popover-header {
+ padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);
+ margin-bottom: 0;
+ font-size: var(--bs-popover-header-font-size);
+ color: var(--bs-popover-header-color);
+ background-color: var(--bs-popover-header-bg);
+ border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);
+ border-top-left-radius: var(--bs-popover-inner-border-radius);
+ border-top-right-radius: var(--bs-popover-inner-border-radius);
+}
+.popover-header:empty {
+ display: none;
+}
+
+.popover-body {
+ padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);
+ color: var(--bs-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 0.6s ease-in-out;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-item {
+ transition: none;
+ }
+}
+
+.carousel-item.active,
+.carousel-item-next,
+.carousel-item-prev {
+ display: block;
+}
+
+.carousel-item-next:not(.carousel-item-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 0.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: #ffffff;
+ text-align: center;
+ background: none;
+ border: 0;
+ opacity: 0.5;
+ transition: opacity 0.15s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-control-prev,
+.carousel-control-next {
+ transition: none;
+ }
+}
+.carousel-control-prev:hover, .carousel-control-prev:focus,
+.carousel-control-next:hover,
+.carousel-control-next:focus {
+ color: #ffffff;
+ text-decoration: none;
+ outline: 0;
+ opacity: 0.9;
+}
+
+.carousel-control-prev {
+ left: 0;
+}
+
+.carousel-control-next {
+ right: 0;
+}
+
+.carousel-control-prev-icon,
+.carousel-control-next-icon {
+ display: inline-block;
+ width: 2rem;
+ height: 2rem;
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-size: 100% 100%;
+}
+
+/* rtl:options: {
+ "autoRename": true,
+ "stringMap":[ {
+ "name" : "prev-next",
+ "search" : "prev",
+ "replace" : "next"
+ } ]
+} */
+.carousel-control-prev-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
+}
+
+.carousel-control-next-icon {
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
+}
+
+.carousel-indicators {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 2;
+ display: flex;
+ justify-content: center;
+ padding: 0;
+ margin-right: 15%;
+ margin-bottom: 1rem;
+ margin-left: 15%;
+ list-style: none;
+}
+.carousel-indicators [data-bs-target] {
+ box-sizing: content-box;
+ flex: 0 1 auto;
+ width: 30px;
+ height: 3px;
+ padding: 0;
+ margin-right: 3px;
+ margin-left: 3px;
+ text-indent: -999px;
+ cursor: pointer;
+ background-color: #ffffff;
+ background-clip: padding-box;
+ border: 0;
+ border-top: 10px solid transparent;
+ border-bottom: 10px solid transparent;
+ opacity: 0.5;
+ transition: opacity 0.6s ease;
+}
+@media (prefers-reduced-motion: reduce) {
+ .carousel-indicators [data-bs-target] {
+ transition: none;
+ }
+}
+.carousel-indicators .active {
+ opacity: 1;
+}
+
+.carousel-caption {
+ position: absolute;
+ right: 15%;
+ bottom: 1.25rem;
+ left: 15%;
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ color: #ffffff;
+ 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-bs-target] {
+ background-color: #000000;
+}
+.carousel-dark .carousel-caption {
+ color: #000000;
+}
+
+[data-bs-theme=dark] .carousel .carousel-control-prev-icon,
+[data-bs-theme=dark] .carousel .carousel-control-next-icon {
+ filter: invert(1) grayscale(100);
+}
+[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target] {
+ background-color: #000000;
+}
+[data-bs-theme=dark] .carousel .carousel-caption {
+ color: #000000;
+}
+
+.spinner-grow,
+.spinner-border {
+ display: inline-block;
+ width: var(--bs-spinner-width);
+ height: var(--bs-spinner-height);
+ vertical-align: var(--bs-spinner-vertical-align);
+ border-radius: 50%;
+ animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
+}
+
+@keyframes spinner-border {
+ to {
+ transform: rotate(360deg) /* rtl:ignore */;
+ }
+}
+.spinner-border {
+ --bs-spinner-width: 2rem;
+ --bs-spinner-height: 2rem;
+ --bs-spinner-vertical-align: -0.125em;
+ --bs-spinner-border-width: 0.185rem;
+ --bs-spinner-animation-speed: 0.65s;
+ --bs-spinner-animation-name: spinner-border;
+ border: var(--bs-spinner-border-width) solid currentcolor;
+ border-right-color: transparent;
+}
+
+.spinner-border-sm {
+ --bs-spinner-width: 1rem;
+ --bs-spinner-height: 1rem;
+ --bs-spinner-border-width: 0.145em;
+}
+
+@keyframes spinner-grow {
+ 0% {
+ transform: scale(0);
+ }
+ 50% {
+ opacity: 1;
+ transform: none;
+ }
+}
+.spinner-grow {
+ --bs-spinner-width: 2rem;
+ --bs-spinner-height: 2rem;
+ --bs-spinner-vertical-align: -0.125em;
+ --bs-spinner-animation-speed: 0.65s;
+ --bs-spinner-animation-name: spinner-grow;
+ background-color: currentcolor;
+ opacity: 0;
+}
+
+.spinner-grow-sm {
+ --bs-spinner-width: 1rem;
+ --bs-spinner-height: 1rem;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ .spinner-border,
+.spinner-grow {
+ --bs-spinner-animation-speed: 1.3s;
+ }
+}
+.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
+ --bs-offcanvas-zindex: 1045;
+ --bs-offcanvas-width: 400px;
+ --bs-offcanvas-height: 30vh;
+ --bs-offcanvas-padding-x: 1.75rem;
+ --bs-offcanvas-padding-y: 1.75rem;
+ --bs-offcanvas-color: var(--bs-body-color);
+ --bs-offcanvas-bg: var(--bs-body-bg);
+ --bs-offcanvas-border-width: 0;
+ --bs-offcanvas-border-color: var(--bs-border-color-translucent);
+ --bs-offcanvas-box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
+ --bs-offcanvas-transition: transform 0.3s ease-in-out;
+ --bs-offcanvas-title-line-height: 1.5;
+}
+
+@media (max-width: 575.98px) {
+ .offcanvas-sm {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ box-shadow: var(--bs-offcanvas-box-shadow);
+ transition: var(--bs-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(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+}
+@media (max-width: 575.98px) {
+ .offcanvas-sm.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+}
+@media (max-width: 575.98px) {
+ .offcanvas-sm.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+}
+@media (max-width: 575.98px) {
+ .offcanvas-sm.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+}
+@media (max-width: 575.98px) {
+ .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {
+ transform: none;
+ }
+}
+@media (max-width: 575.98px) {
+ .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 576px) {
+ .offcanvas-sm {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-sm .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-sm .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 767.98px) {
+ .offcanvas-md {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ box-shadow: var(--bs-offcanvas-box-shadow);
+ transition: var(--bs-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(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+}
+@media (max-width: 767.98px) {
+ .offcanvas-md.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+}
+@media (max-width: 767.98px) {
+ .offcanvas-md.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+}
+@media (max-width: 767.98px) {
+ .offcanvas-md.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+}
+@media (max-width: 767.98px) {
+ .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {
+ transform: none;
+ }
+}
+@media (max-width: 767.98px) {
+ .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 768px) {
+ .offcanvas-md {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-md .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-md .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 991.98px) {
+ .offcanvas-lg {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ box-shadow: var(--bs-offcanvas-box-shadow);
+ transition: var(--bs-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(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+}
+@media (max-width: 991.98px) {
+ .offcanvas-lg.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+}
+@media (max-width: 991.98px) {
+ .offcanvas-lg.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+}
+@media (max-width: 991.98px) {
+ .offcanvas-lg.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+}
+@media (max-width: 991.98px) {
+ .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {
+ transform: none;
+ }
+}
+@media (max-width: 991.98px) {
+ .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 992px) {
+ .offcanvas-lg {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-lg .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-lg .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 1199.98px) {
+ .offcanvas-xl {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ box-shadow: var(--bs-offcanvas-box-shadow);
+ transition: var(--bs-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(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+}
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+}
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+}
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+}
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {
+ transform: none;
+ }
+}
+@media (max-width: 1199.98px) {
+ .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 1200px) {
+ .offcanvas-xl {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-xl .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-xl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ box-shadow: var(--bs-offcanvas-box-shadow);
+ transition: var(--bs-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(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+ }
+}
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+ }
+}
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+ }
+}
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(100%);
+ }
+}
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {
+ transform: none;
+ }
+}
+@media (max-width: 1399.98px) {
+ .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {
+ visibility: visible;
+ }
+}
+@media (min-width: 1400px) {
+ .offcanvas-xxl {
+ --bs-offcanvas-height: auto;
+ --bs-offcanvas-border-width: 0;
+ background-color: transparent !important;
+ }
+ .offcanvas-xxl .offcanvas-header {
+ display: none;
+ }
+ .offcanvas-xxl .offcanvas-body {
+ display: flex;
+ flex-grow: 0;
+ padding: 0;
+ overflow-y: visible;
+ background-color: transparent !important;
+ }
+}
+
+.offcanvas {
+ position: fixed;
+ bottom: 0;
+ z-index: var(--bs-offcanvas-zindex);
+ display: flex;
+ flex-direction: column;
+ max-width: 100%;
+ color: var(--bs-offcanvas-color);
+ visibility: hidden;
+ background-color: var(--bs-offcanvas-bg);
+ background-clip: padding-box;
+ outline: 0;
+ box-shadow: var(--bs-offcanvas-box-shadow);
+ transition: var(--bs-offcanvas-transition);
+}
+@media (prefers-reduced-motion: reduce) {
+ .offcanvas {
+ transition: none;
+ }
+}
+.offcanvas.offcanvas-start {
+ top: 0;
+ left: 0;
+ width: var(--bs-offcanvas-width);
+ border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(-100%);
+}
+.offcanvas.offcanvas-end {
+ top: 0;
+ right: 0;
+ width: var(--bs-offcanvas-width);
+ border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateX(100%);
+}
+.offcanvas.offcanvas-top {
+ top: 0;
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
+ transform: translateY(-100%);
+}
+.offcanvas.offcanvas-bottom {
+ right: 0;
+ left: 0;
+ height: var(--bs-offcanvas-height);
+ max-height: 100%;
+ border-top: var(--bs-offcanvas-border-width) solid var(--bs-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: #000000;
+}
+.offcanvas-backdrop.fade {
+ opacity: 0;
+}
+.offcanvas-backdrop.show {
+ opacity: 0.4;
+}
+
+.offcanvas-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+}
+.offcanvas-header .btn-close {
+ padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
+ margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
+ margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));
+ margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
+}
+
+.offcanvas-title {
+ margin-bottom: 0;
+ line-height: var(--bs-offcanvas-title-line-height);
+}
+
+.offcanvas-body {
+ flex-grow: 1;
+ padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
+ overflow-y: auto;
+}
+
+.placeholder {
+ display: inline-block;
+ min-height: 1em;
+ vertical-align: middle;
+ cursor: wait;
+ background-color: currentcolor;
+ opacity: 0.5;
+}
+.placeholder.btn::before {
+ display: inline-block;
+ content: "";
+}
+
+.placeholder-xs {
+ min-height: 0.6em;
+}
+
+.placeholder-sm {
+ min-height: 0.8em;
+}
+
+.placeholder-lg {
+ min-height: 1.2em;
+}
+
+.placeholder-glow .placeholder {
+ animation: placeholder-glow 2s ease-in-out infinite;
+}
+
+@keyframes placeholder-glow {
+ 50% {
+ opacity: 0.2;
+ }
+}
+.placeholder-wave {
+ mask-image: linear-gradient(130deg, #000000 55%, rgba(0, 0, 0, 0.8) 75%, #000000 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-white {
+ color: #000000 !important;
+ background-color: RGBA(255, 255, 255, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-light {
+ color: #000000 !important;
+ background-color: RGBA(249, 249, 249, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-primary {
+ color: #000000 !important;
+ background-color: RGBA(0, 158, 247, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-secondary {
+ color: #000000 !important;
+ background-color: RGBA(225, 227, 234, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-success {
+ color: #000000 !important;
+ background-color: RGBA(80, 205, 137, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-info {
+ color: #ffffff !important;
+ background-color: RGBA(114, 57, 234, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-warning {
+ color: #000000 !important;
+ background-color: RGBA(255, 199, 0, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-danger {
+ color: #000000 !important;
+ background-color: RGBA(241, 65, 108, var(--bs-bg-opacity, 1)) !important;
+}
+
+.text-bg-dark {
+ color: #ffffff !important;
+ background-color: RGBA(24, 28, 50, var(--bs-bg-opacity, 1)) !important;
+}
+
+.link-white {
+ color: #ffffff !important;
+}
+.link-white:hover, .link-white:focus {
+ color: white !important;
+}
+
+.link-light {
+ color: #F9F9F9 !important;
+}
+.link-light:hover, .link-light:focus {
+ color: #fafafa !important;
+}
+
+.link-primary {
+ color: #009ef7 !important;
+}
+.link-primary:hover, .link-primary:focus {
+ color: #33b1f9 !important;
+}
+
+.link-secondary {
+ color: #E1E3EA !important;
+}
+.link-secondary:hover, .link-secondary:focus {
+ color: #e7e9ee !important;
+}
+
+.link-success {
+ color: #50cd89 !important;
+}
+.link-success:hover, .link-success:focus {
+ color: #73d7a1 !important;
+}
+
+.link-info {
+ color: #7239ea !important;
+}
+.link-info:hover, .link-info:focus {
+ color: #5b2ebb !important;
+}
+
+.link-warning {
+ color: #ffc700 !important;
+}
+.link-warning:hover, .link-warning:focus {
+ color: #ffd233 !important;
+}
+
+.link-danger {
+ color: #f1416c !important;
+}
+.link-danger:hover, .link-danger:focus {
+ color: #f46789 !important;
+}
+
+.link-dark {
+ color: #181C32 !important;
+}
+.link-dark:hover, .link-dark:focus {
+ color: #131628 !important;
+}
+
+.ratio {
+ position: relative;
+ width: 100%;
+}
+.ratio::before {
+ display: block;
+ padding-top: var(--bs-aspect-ratio);
+ content: "";
+}
+.ratio > * {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.ratio-1x1 {
+ --bs-aspect-ratio: 100%;
+}
+
+.ratio-4x3 {
+ --bs-aspect-ratio: 75%;
+}
+
+.ratio-16x9 {
+ --bs-aspect-ratio: 56.25%;
+}
+
+.ratio-21x9 {
+ --bs-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) {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ margin: -1px !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important;
+}
+
+.stretched-link::after {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ content: "";
+}
+
+.text-truncate {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.vr {
+ display: inline-block;
+ align-self: stretch;
+ width: 1px;
+ min-height: 1em;
+ background-color: currentcolor;
+ opacity: 0.25;
+}
+
+.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-fit-contain {
+ object-fit: contain !important;
+}
+
+.object-fit-cover {
+ object-fit: cover !important;
+}
+
+.object-fit-fill {
+ object-fit: fill !important;
+}
+
+.object-fit-scale {
+ object-fit: scale-down !important;
+}
+
+.object-fit-none {
+ object-fit: none !important;
+}
+
+.opacity-0 {
+ opacity: 0 !important;
+}
+
+.opacity-5 {
+ opacity: 0.05 !important;
+}
+
+.opacity-10 {
+ opacity: 0.1 !important;
+}
+
+.opacity-15 {
+ opacity: 0.15 !important;
+}
+
+.opacity-20 {
+ opacity: 0.2 !important;
+}
+
+.opacity-25 {
+ opacity: 0.25 !important;
+}
+
+.opacity-50 {
+ opacity: 0.5 !important;
+}
+
+.opacity-75 {
+ opacity: 0.75 !important;
+}
+
+.opacity-100 {
+ opacity: 1 !important;
+}
+
+.overflow-auto {
+ overflow: auto !important;
+}
+
+.overflow-hidden {
+ overflow: hidden !important;
+}
+
+.overflow-visible {
+ overflow: visible !important;
+}
+
+.overflow-scroll {
+ overflow: scroll !important;
+}
+
+.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-table {
+ display: table !important;
+}
+
+.d-table-row {
+ display: table-row !important;
+}
+
+.d-table-cell {
+ display: table-cell !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline-flex {
+ display: inline-flex !important;
+}
+
+.d-none {
+ display: none !important;
+}
+
+.shadow {
+ box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075) !important;
+}
+
+.shadow-sm {
+ box-shadow: 0 0.1rem 1rem 0.25rem rgba(0, 0, 0, 0.05) !important;
+}
+
+.shadow-lg {
+ box-shadow: 0 1rem 2rem 1rem rgba(0, 0, 0, 0.1) !important;
+}
+
+.shadow-none {
+ box-shadow: none !important;
+}
+
+.position-static {
+ position: static !important;
+}
+
+.position-relative {
+ position: relative !important;
+}
+
+.position-absolute {
+ position: absolute !important;
+}
+
+.position-fixed {
+ position: fixed !important;
+}
+
+.position-sticky {
+ position: sticky !important;
+}
+
+.top-0 {
+ top: 0 !important;
+}
+
+.top-25 {
+ top: 25% !important;
+}
+
+.top-50 {
+ top: 50% !important;
+}
+
+.top-75 {
+ top: 75% !important;
+}
+
+.top-100 {
+ top: 100% !important;
+}
+
+.bottom-0 {
+ bottom: 0 !important;
+}
+
+.bottom-25 {
+ bottom: 25% !important;
+}
+
+.bottom-50 {
+ bottom: 50% !important;
+}
+
+.bottom-75 {
+ bottom: 75% !important;
+}
+
+.bottom-100 {
+ bottom: 100% !important;
+}
+
+.start-0 {
+ left: 0 !important;
+}
+
+.start-25 {
+ left: 25% !important;
+}
+
+.start-50 {
+ left: 50% !important;
+}
+
+.start-75 {
+ left: 75% !important;
+}
+
+.start-100 {
+ left: 100% !important;
+}
+
+.end-0 {
+ right: 0 !important;
+}
+
+.end-25 {
+ right: 25% !important;
+}
+
+.end-50 {
+ right: 50% !important;
+}
+
+.end-75 {
+ right: 75% !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(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-0 {
+ border: 0 !important;
+}
+
+.border-top {
+ border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-top-0 {
+ border-top: 0 !important;
+}
+
+.border-end {
+ border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-end-0 {
+ border-right: 0 !important;
+}
+
+.border-bottom {
+ border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-bottom-0 {
+ border-bottom: 0 !important;
+}
+
+.border-start {
+ border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;
+}
+
+.border-start-0 {
+ border-left: 0 !important;
+}
+
+.border-white {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-light {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-primary {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-secondary {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-success {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-info {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-warning {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-danger {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-dark {
+ --bs-border-opacity: 1;
+ border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;
+}
+
+.border-primary-subtle {
+ border-color: var(--bs-primary-border-subtle) !important;
+}
+
+.border-secondary-subtle {
+ border-color: var(--bs-secondary-border-subtle) !important;
+}
+
+.border-success-subtle {
+ border-color: var(--bs-success-border-subtle) !important;
+}
+
+.border-info-subtle {
+ border-color: var(--bs-info-border-subtle) !important;
+}
+
+.border-warning-subtle {
+ border-color: var(--bs-warning-border-subtle) !important;
+}
+
+.border-danger-subtle {
+ border-color: var(--bs-danger-border-subtle) !important;
+}
+
+.border-light-subtle {
+ border-color: var(--bs-light-border-subtle) !important;
+}
+
+.border-dark-subtle {
+ border-color: var(--bs-dark-border-subtle) !important;
+}
+
+.border-0 {
+ --bs-border-width: 0;
+}
+
+.border-1 {
+ --bs-border-width: 1px;
+}
+
+.border-2 {
+ --bs-border-width: 2px;
+}
+
+.border-3 {
+ --bs-border-width: 3px;
+}
+
+.border-4 {
+ --bs-border-width: 4px;
+}
+
+.border-5 {
+ --bs-border-width: 5px;
+}
+
+.border-opacity-10 {
+ --bs-border-opacity: 0.1;
+}
+
+.border-opacity-25 {
+ --bs-border-opacity: 0.25;
+}
+
+.border-opacity-50 {
+ --bs-border-opacity: 0.5;
+}
+
+.border-opacity-75 {
+ --bs-border-opacity: 0.75;
+}
+
+.border-opacity-100 {
+ --bs-border-opacity: 1;
+}
+
+.w-unset {
+ width: unset !important;
+}
+
+.w-25 {
+ width: 25% !important;
+}
+
+.w-50 {
+ width: 50% !important;
+}
+
+.w-75 {
+ width: 75% !important;
+}
+
+.w-100 {
+ width: 100% !important;
+}
+
+.w-auto {
+ width: auto !important;
+}
+
+.w-1px {
+ width: 1px !important;
+}
+
+.w-2px {
+ width: 2px !important;
+}
+
+.w-3px {
+ width: 3px !important;
+}
+
+.w-4px {
+ width: 4px !important;
+}
+
+.w-5px {
+ width: 5px !important;
+}
+
+.w-6px {
+ width: 6px !important;
+}
+
+.w-7px {
+ width: 7px !important;
+}
+
+.w-8px {
+ width: 8px !important;
+}
+
+.w-9px {
+ width: 9px !important;
+}
+
+.w-10px {
+ width: 10px !important;
+}
+
+.w-15px {
+ width: 15px !important;
+}
+
+.w-20px {
+ width: 20px !important;
+}
+
+.w-25px {
+ width: 25px !important;
+}
+
+.w-30px {
+ width: 30px !important;
+}
+
+.w-35px {
+ width: 35px !important;
+}
+
+.w-40px {
+ width: 40px !important;
+}
+
+.w-45px {
+ width: 45px !important;
+}
+
+.w-50px {
+ width: 50px !important;
+}
+
+.w-55px {
+ width: 55px !important;
+}
+
+.w-60px {
+ width: 60px !important;
+}
+
+.w-65px {
+ width: 65px !important;
+}
+
+.w-70px {
+ width: 70px !important;
+}
+
+.w-75px {
+ width: 75px !important;
+}
+
+.w-80px {
+ width: 80px !important;
+}
+
+.w-85px {
+ width: 85px !important;
+}
+
+.w-90px {
+ width: 90px !important;
+}
+
+.w-95px {
+ width: 95px !important;
+}
+
+.w-100px {
+ width: 100px !important;
+}
+
+.w-125px {
+ width: 125px !important;
+}
+
+.w-150px {
+ width: 150px !important;
+}
+
+.w-175px {
+ width: 175px !important;
+}
+
+.w-200px {
+ width: 200px !important;
+}
+
+.w-225px {
+ width: 225px !important;
+}
+
+.w-250px {
+ width: 250px !important;
+}
+
+.w-275px {
+ width: 275px !important;
+}
+
+.w-300px {
+ width: 300px !important;
+}
+
+.w-325px {
+ width: 325px !important;
+}
+
+.w-350px {
+ width: 350px !important;
+}
+
+.w-375px {
+ width: 375px !important;
+}
+
+.w-400px {
+ width: 400px !important;
+}
+
+.w-425px {
+ width: 425px !important;
+}
+
+.w-450px {
+ width: 450px !important;
+}
+
+.w-475px {
+ width: 475px !important;
+}
+
+.w-500px {
+ width: 500px !important;
+}
+
+.w-550px {
+ width: 550px !important;
+}
+
+.w-600px {
+ width: 600px !important;
+}
+
+.w-650px {
+ width: 650px !important;
+}
+
+.w-700px {
+ width: 700px !important;
+}
+
+.w-750px {
+ width: 750px !important;
+}
+
+.w-800px {
+ width: 800px !important;
+}
+
+.w-850px {
+ width: 850px !important;
+}
+
+.w-900px {
+ width: 900px !important;
+}
+
+.w-950px {
+ width: 950px !important;
+}
+
+.w-1000px {
+ width: 1000px !important;
+}
+
+.mw-unset {
+ max-width: unset !important;
+}
+
+.mw-25 {
+ max-width: 25% !important;
+}
+
+.mw-50 {
+ max-width: 50% !important;
+}
+
+.mw-75 {
+ max-width: 75% !important;
+}
+
+.mw-100 {
+ max-width: 100% !important;
+}
+
+.mw-auto {
+ max-width: auto !important;
+}
+
+.mw-1px {
+ max-width: 1px !important;
+}
+
+.mw-2px {
+ max-width: 2px !important;
+}
+
+.mw-3px {
+ max-width: 3px !important;
+}
+
+.mw-4px {
+ max-width: 4px !important;
+}
+
+.mw-5px {
+ max-width: 5px !important;
+}
+
+.mw-6px {
+ max-width: 6px !important;
+}
+
+.mw-7px {
+ max-width: 7px !important;
+}
+
+.mw-8px {
+ max-width: 8px !important;
+}
+
+.mw-9px {
+ max-width: 9px !important;
+}
+
+.mw-10px {
+ max-width: 10px !important;
+}
+
+.mw-15px {
+ max-width: 15px !important;
+}
+
+.mw-20px {
+ max-width: 20px !important;
+}
+
+.mw-25px {
+ max-width: 25px !important;
+}
+
+.mw-30px {
+ max-width: 30px !important;
+}
+
+.mw-35px {
+ max-width: 35px !important;
+}
+
+.mw-40px {
+ max-width: 40px !important;
+}
+
+.mw-45px {
+ max-width: 45px !important;
+}
+
+.mw-50px {
+ max-width: 50px !important;
+}
+
+.mw-55px {
+ max-width: 55px !important;
+}
+
+.mw-60px {
+ max-width: 60px !important;
+}
+
+.mw-65px {
+ max-width: 65px !important;
+}
+
+.mw-70px {
+ max-width: 70px !important;
+}
+
+.mw-75px {
+ max-width: 75px !important;
+}
+
+.mw-80px {
+ max-width: 80px !important;
+}
+
+.mw-85px {
+ max-width: 85px !important;
+}
+
+.mw-90px {
+ max-width: 90px !important;
+}
+
+.mw-95px {
+ max-width: 95px !important;
+}
+
+.mw-100px {
+ max-width: 100px !important;
+}
+
+.mw-125px {
+ max-width: 125px !important;
+}
+
+.mw-150px {
+ max-width: 150px !important;
+}
+
+.mw-175px {
+ max-width: 175px !important;
+}
+
+.mw-200px {
+ max-width: 200px !important;
+}
+
+.mw-225px {
+ max-width: 225px !important;
+}
+
+.mw-250px {
+ max-width: 250px !important;
+}
+
+.mw-275px {
+ max-width: 275px !important;
+}
+
+.mw-300px {
+ max-width: 300px !important;
+}
+
+.mw-325px {
+ max-width: 325px !important;
+}
+
+.mw-350px {
+ max-width: 350px !important;
+}
+
+.mw-375px {
+ max-width: 375px !important;
+}
+
+.mw-400px {
+ max-width: 400px !important;
+}
+
+.mw-425px {
+ max-width: 425px !important;
+}
+
+.mw-450px {
+ max-width: 450px !important;
+}
+
+.mw-475px {
+ max-width: 475px !important;
+}
+
+.mw-500px {
+ max-width: 500px !important;
+}
+
+.mw-550px {
+ max-width: 550px !important;
+}
+
+.mw-600px {
+ max-width: 600px !important;
+}
+
+.mw-650px {
+ max-width: 650px !important;
+}
+
+.mw-700px {
+ max-width: 700px !important;
+}
+
+.mw-750px {
+ max-width: 750px !important;
+}
+
+.mw-800px {
+ max-width: 800px !important;
+}
+
+.mw-850px {
+ max-width: 850px !important;
+}
+
+.mw-900px {
+ max-width: 900px !important;
+}
+
+.mw-950px {
+ max-width: 950px !important;
+}
+
+.mw-1000px {
+ max-width: 1000px !important;
+}
+
+.vw-100 {
+ width: 100vw !important;
+}
+
+.min-vw-100 {
+ min-width: 100vw !important;
+}
+
+.h-unset {
+ height: unset !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;
+}
+
+.h-1px {
+ height: 1px !important;
+}
+
+.h-2px {
+ height: 2px !important;
+}
+
+.h-3px {
+ height: 3px !important;
+}
+
+.h-4px {
+ height: 4px !important;
+}
+
+.h-5px {
+ height: 5px !important;
+}
+
+.h-6px {
+ height: 6px !important;
+}
+
+.h-7px {
+ height: 7px !important;
+}
+
+.h-8px {
+ height: 8px !important;
+}
+
+.h-9px {
+ height: 9px !important;
+}
+
+.h-10px {
+ height: 10px !important;
+}
+
+.h-15px {
+ height: 15px !important;
+}
+
+.h-20px {
+ height: 20px !important;
+}
+
+.h-25px {
+ height: 25px !important;
+}
+
+.h-30px {
+ height: 30px !important;
+}
+
+.h-35px {
+ height: 35px !important;
+}
+
+.h-40px {
+ height: 40px !important;
+}
+
+.h-45px {
+ height: 45px !important;
+}
+
+.h-50px {
+ height: 50px !important;
+}
+
+.h-55px {
+ height: 55px !important;
+}
+
+.h-60px {
+ height: 60px !important;
+}
+
+.h-65px {
+ height: 65px !important;
+}
+
+.h-70px {
+ height: 70px !important;
+}
+
+.h-75px {
+ height: 75px !important;
+}
+
+.h-80px {
+ height: 80px !important;
+}
+
+.h-85px {
+ height: 85px !important;
+}
+
+.h-90px {
+ height: 90px !important;
+}
+
+.h-95px {
+ height: 95px !important;
+}
+
+.h-100px {
+ height: 100px !important;
+}
+
+.h-125px {
+ height: 125px !important;
+}
+
+.h-150px {
+ height: 150px !important;
+}
+
+.h-175px {
+ height: 175px !important;
+}
+
+.h-200px {
+ height: 200px !important;
+}
+
+.h-225px {
+ height: 225px !important;
+}
+
+.h-250px {
+ height: 250px !important;
+}
+
+.h-275px {
+ height: 275px !important;
+}
+
+.h-300px {
+ height: 300px !important;
+}
+
+.h-325px {
+ height: 325px !important;
+}
+
+.h-350px {
+ height: 350px !important;
+}
+
+.h-375px {
+ height: 375px !important;
+}
+
+.h-400px {
+ height: 400px !important;
+}
+
+.h-425px {
+ height: 425px !important;
+}
+
+.h-450px {
+ height: 450px !important;
+}
+
+.h-475px {
+ height: 475px !important;
+}
+
+.h-500px {
+ height: 500px !important;
+}
+
+.h-550px {
+ height: 550px !important;
+}
+
+.h-600px {
+ height: 600px !important;
+}
+
+.h-650px {
+ height: 650px !important;
+}
+
+.h-700px {
+ height: 700px !important;
+}
+
+.h-750px {
+ height: 750px !important;
+}
+
+.h-800px {
+ height: 800px !important;
+}
+
+.h-850px {
+ height: 850px !important;
+}
+
+.h-900px {
+ height: 900px !important;
+}
+
+.h-950px {
+ height: 950px !important;
+}
+
+.h-1000px {
+ height: 1000px !important;
+}
+
+.mh-unset {
+ max-height: unset !important;
+}
+
+.mh-25 {
+ max-height: 25% !important;
+}
+
+.mh-50 {
+ max-height: 50% !important;
+}
+
+.mh-75 {
+ max-height: 75% !important;
+}
+
+.mh-100 {
+ max-height: 100% !important;
+}
+
+.mh-auto {
+ max-height: auto !important;
+}
+
+.mh-1px {
+ max-height: 1px !important;
+}
+
+.mh-2px {
+ max-height: 2px !important;
+}
+
+.mh-3px {
+ max-height: 3px !important;
+}
+
+.mh-4px {
+ max-height: 4px !important;
+}
+
+.mh-5px {
+ max-height: 5px !important;
+}
+
+.mh-6px {
+ max-height: 6px !important;
+}
+
+.mh-7px {
+ max-height: 7px !important;
+}
+
+.mh-8px {
+ max-height: 8px !important;
+}
+
+.mh-9px {
+ max-height: 9px !important;
+}
+
+.mh-10px {
+ max-height: 10px !important;
+}
+
+.mh-15px {
+ max-height: 15px !important;
+}
+
+.mh-20px {
+ max-height: 20px !important;
+}
+
+.mh-25px {
+ max-height: 25px !important;
+}
+
+.mh-30px {
+ max-height: 30px !important;
+}
+
+.mh-35px {
+ max-height: 35px !important;
+}
+
+.mh-40px {
+ max-height: 40px !important;
+}
+
+.mh-45px {
+ max-height: 45px !important;
+}
+
+.mh-50px {
+ max-height: 50px !important;
+}
+
+.mh-55px {
+ max-height: 55px !important;
+}
+
+.mh-60px {
+ max-height: 60px !important;
+}
+
+.mh-65px {
+ max-height: 65px !important;
+}
+
+.mh-70px {
+ max-height: 70px !important;
+}
+
+.mh-75px {
+ max-height: 75px !important;
+}
+
+.mh-80px {
+ max-height: 80px !important;
+}
+
+.mh-85px {
+ max-height: 85px !important;
+}
+
+.mh-90px {
+ max-height: 90px !important;
+}
+
+.mh-95px {
+ max-height: 95px !important;
+}
+
+.mh-100px {
+ max-height: 100px !important;
+}
+
+.mh-125px {
+ max-height: 125px !important;
+}
+
+.mh-150px {
+ max-height: 150px !important;
+}
+
+.mh-175px {
+ max-height: 175px !important;
+}
+
+.mh-200px {
+ max-height: 200px !important;
+}
+
+.mh-225px {
+ max-height: 225px !important;
+}
+
+.mh-250px {
+ max-height: 250px !important;
+}
+
+.mh-275px {
+ max-height: 275px !important;
+}
+
+.mh-300px {
+ max-height: 300px !important;
+}
+
+.mh-325px {
+ max-height: 325px !important;
+}
+
+.mh-350px {
+ max-height: 350px !important;
+}
+
+.mh-375px {
+ max-height: 375px !important;
+}
+
+.mh-400px {
+ max-height: 400px !important;
+}
+
+.mh-425px {
+ max-height: 425px !important;
+}
+
+.mh-450px {
+ max-height: 450px !important;
+}
+
+.mh-475px {
+ max-height: 475px !important;
+}
+
+.mh-500px {
+ max-height: 500px !important;
+}
+
+.mh-550px {
+ max-height: 550px !important;
+}
+
+.mh-600px {
+ max-height: 600px !important;
+}
+
+.mh-650px {
+ max-height: 650px !important;
+}
+
+.mh-700px {
+ max-height: 700px !important;
+}
+
+.mh-750px {
+ max-height: 750px !important;
+}
+
+.mh-800px {
+ max-height: 800px !important;
+}
+
+.mh-850px {
+ max-height: 850px !important;
+}
+
+.mh-900px {
+ max-height: 900px !important;
+}
+
+.mh-950px {
+ max-height: 950px !important;
+}
+
+.mh-1000px {
+ max-height: 1000px !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: 0.25rem !important;
+}
+
+.m-2 {
+ margin: 0.5rem !important;
+}
+
+.m-3 {
+ margin: 0.75rem !important;
+}
+
+.m-4 {
+ margin: 1rem !important;
+}
+
+.m-5 {
+ margin: 1.25rem !important;
+}
+
+.m-6 {
+ margin: 1.5rem !important;
+}
+
+.m-7 {
+ margin: 1.75rem !important;
+}
+
+.m-8 {
+ margin: 2rem !important;
+}
+
+.m-9 {
+ margin: 2.25rem !important;
+}
+
+.m-10 {
+ margin: 2.5rem !important;
+}
+
+.m-11 {
+ margin: 2.75rem !important;
+}
+
+.m-12 {
+ margin: 3rem !important;
+}
+
+.m-13 {
+ margin: 3.25rem !important;
+}
+
+.m-14 {
+ margin: 3.5rem !important;
+}
+
+.m-15 {
+ margin: 3.75rem !important;
+}
+
+.m-16 {
+ margin: 4rem !important;
+}
+
+.m-17 {
+ margin: 4.25rem !important;
+}
+
+.m-18 {
+ margin: 4.5rem !important;
+}
+
+.m-19 {
+ margin: 4.75rem !important;
+}
+
+.m-20 {
+ margin: 5rem !important;
+}
+
+.m-auto {
+ margin: auto !important;
+}
+
+.mx-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+}
+
+.mx-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+}
+
+.mx-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+}
+
+.mx-3 {
+ margin-right: 0.75rem !important;
+ margin-left: 0.75rem !important;
+}
+
+.mx-4 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+}
+
+.mx-5 {
+ margin-right: 1.25rem !important;
+ margin-left: 1.25rem !important;
+}
+
+.mx-6 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+}
+
+.mx-7 {
+ margin-right: 1.75rem !important;
+ margin-left: 1.75rem !important;
+}
+
+.mx-8 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important;
+}
+
+.mx-9 {
+ margin-right: 2.25rem !important;
+ margin-left: 2.25rem !important;
+}
+
+.mx-10 {
+ margin-right: 2.5rem !important;
+ margin-left: 2.5rem !important;
+}
+
+.mx-11 {
+ margin-right: 2.75rem !important;
+ margin-left: 2.75rem !important;
+}
+
+.mx-12 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+}
+
+.mx-13 {
+ margin-right: 3.25rem !important;
+ margin-left: 3.25rem !important;
+}
+
+.mx-14 {
+ margin-right: 3.5rem !important;
+ margin-left: 3.5rem !important;
+}
+
+.mx-15 {
+ margin-right: 3.75rem !important;
+ margin-left: 3.75rem !important;
+}
+
+.mx-16 {
+ margin-right: 4rem !important;
+ margin-left: 4rem !important;
+}
+
+.mx-17 {
+ margin-right: 4.25rem !important;
+ margin-left: 4.25rem !important;
+}
+
+.mx-18 {
+ margin-right: 4.5rem !important;
+ margin-left: 4.5rem !important;
+}
+
+.mx-19 {
+ margin-right: 4.75rem !important;
+ margin-left: 4.75rem !important;
+}
+
+.mx-20 {
+ margin-right: 5rem !important;
+ margin-left: 5rem !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: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+}
+
+.my-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+}
+
+.my-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+}
+
+.my-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+}
+
+.my-5 {
+ margin-top: 1.25rem !important;
+ margin-bottom: 1.25rem !important;
+}
+
+.my-6 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+}
+
+.my-7 {
+ margin-top: 1.75rem !important;
+ margin-bottom: 1.75rem !important;
+}
+
+.my-8 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important;
+}
+
+.my-9 {
+ margin-top: 2.25rem !important;
+ margin-bottom: 2.25rem !important;
+}
+
+.my-10 {
+ margin-top: 2.5rem !important;
+ margin-bottom: 2.5rem !important;
+}
+
+.my-11 {
+ margin-top: 2.75rem !important;
+ margin-bottom: 2.75rem !important;
+}
+
+.my-12 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+}
+
+.my-13 {
+ margin-top: 3.25rem !important;
+ margin-bottom: 3.25rem !important;
+}
+
+.my-14 {
+ margin-top: 3.5rem !important;
+ margin-bottom: 3.5rem !important;
+}
+
+.my-15 {
+ margin-top: 3.75rem !important;
+ margin-bottom: 3.75rem !important;
+}
+
+.my-16 {
+ margin-top: 4rem !important;
+ margin-bottom: 4rem !important;
+}
+
+.my-17 {
+ margin-top: 4.25rem !important;
+ margin-bottom: 4.25rem !important;
+}
+
+.my-18 {
+ margin-top: 4.5rem !important;
+ margin-bottom: 4.5rem !important;
+}
+
+.my-19 {
+ margin-top: 4.75rem !important;
+ margin-bottom: 4.75rem !important;
+}
+
+.my-20 {
+ margin-top: 5rem !important;
+ margin-bottom: 5rem !important;
+}
+
+.my-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+}
+
+.mt-0 {
+ margin-top: 0 !important;
+}
+
+.mt-1 {
+ margin-top: 0.25rem !important;
+}
+
+.mt-2 {
+ margin-top: 0.5rem !important;
+}
+
+.mt-3 {
+ margin-top: 0.75rem !important;
+}
+
+.mt-4 {
+ margin-top: 1rem !important;
+}
+
+.mt-5 {
+ margin-top: 1.25rem !important;
+}
+
+.mt-6 {
+ margin-top: 1.5rem !important;
+}
+
+.mt-7 {
+ margin-top: 1.75rem !important;
+}
+
+.mt-8 {
+ margin-top: 2rem !important;
+}
+
+.mt-9 {
+ margin-top: 2.25rem !important;
+}
+
+.mt-10 {
+ margin-top: 2.5rem !important;
+}
+
+.mt-11 {
+ margin-top: 2.75rem !important;
+}
+
+.mt-12 {
+ margin-top: 3rem !important;
+}
+
+.mt-13 {
+ margin-top: 3.25rem !important;
+}
+
+.mt-14 {
+ margin-top: 3.5rem !important;
+}
+
+.mt-15 {
+ margin-top: 3.75rem !important;
+}
+
+.mt-16 {
+ margin-top: 4rem !important;
+}
+
+.mt-17 {
+ margin-top: 4.25rem !important;
+}
+
+.mt-18 {
+ margin-top: 4.5rem !important;
+}
+
+.mt-19 {
+ margin-top: 4.75rem !important;
+}
+
+.mt-20 {
+ margin-top: 5rem !important;
+}
+
+.mt-auto {
+ margin-top: auto !important;
+}
+
+.me-0 {
+ margin-right: 0 !important;
+}
+
+.me-1 {
+ margin-right: 0.25rem !important;
+}
+
+.me-2 {
+ margin-right: 0.5rem !important;
+}
+
+.me-3 {
+ margin-right: 0.75rem !important;
+}
+
+.me-4 {
+ margin-right: 1rem !important;
+}
+
+.me-5 {
+ margin-right: 1.25rem !important;
+}
+
+.me-6 {
+ margin-right: 1.5rem !important;
+}
+
+.me-7 {
+ margin-right: 1.75rem !important;
+}
+
+.me-8 {
+ margin-right: 2rem !important;
+}
+
+.me-9 {
+ margin-right: 2.25rem !important;
+}
+
+.me-10 {
+ margin-right: 2.5rem !important;
+}
+
+.me-11 {
+ margin-right: 2.75rem !important;
+}
+
+.me-12 {
+ margin-right: 3rem !important;
+}
+
+.me-13 {
+ margin-right: 3.25rem !important;
+}
+
+.me-14 {
+ margin-right: 3.5rem !important;
+}
+
+.me-15 {
+ margin-right: 3.75rem !important;
+}
+
+.me-16 {
+ margin-right: 4rem !important;
+}
+
+.me-17 {
+ margin-right: 4.25rem !important;
+}
+
+.me-18 {
+ margin-right: 4.5rem !important;
+}
+
+.me-19 {
+ margin-right: 4.75rem !important;
+}
+
+.me-20 {
+ margin-right: 5rem !important;
+}
+
+.me-auto {
+ margin-right: auto !important;
+}
+
+.mb-0 {
+ margin-bottom: 0 !important;
+}
+
+.mb-1 {
+ margin-bottom: 0.25rem !important;
+}
+
+.mb-2 {
+ margin-bottom: 0.5rem !important;
+}
+
+.mb-3 {
+ margin-bottom: 0.75rem !important;
+}
+
+.mb-4 {
+ margin-bottom: 1rem !important;
+}
+
+.mb-5 {
+ margin-bottom: 1.25rem !important;
+}
+
+.mb-6 {
+ margin-bottom: 1.5rem !important;
+}
+
+.mb-7 {
+ margin-bottom: 1.75rem !important;
+}
+
+.mb-8 {
+ margin-bottom: 2rem !important;
+}
+
+.mb-9 {
+ margin-bottom: 2.25rem !important;
+}
+
+.mb-10 {
+ margin-bottom: 2.5rem !important;
+}
+
+.mb-11 {
+ margin-bottom: 2.75rem !important;
+}
+
+.mb-12 {
+ margin-bottom: 3rem !important;
+}
+
+.mb-13 {
+ margin-bottom: 3.25rem !important;
+}
+
+.mb-14 {
+ margin-bottom: 3.5rem !important;
+}
+
+.mb-15 {
+ margin-bottom: 3.75rem !important;
+}
+
+.mb-16 {
+ margin-bottom: 4rem !important;
+}
+
+.mb-17 {
+ margin-bottom: 4.25rem !important;
+}
+
+.mb-18 {
+ margin-bottom: 4.5rem !important;
+}
+
+.mb-19 {
+ margin-bottom: 4.75rem !important;
+}
+
+.mb-20 {
+ margin-bottom: 5rem !important;
+}
+
+.mb-auto {
+ margin-bottom: auto !important;
+}
+
+.ms-0 {
+ margin-left: 0 !important;
+}
+
+.ms-1 {
+ margin-left: 0.25rem !important;
+}
+
+.ms-2 {
+ margin-left: 0.5rem !important;
+}
+
+.ms-3 {
+ margin-left: 0.75rem !important;
+}
+
+.ms-4 {
+ margin-left: 1rem !important;
+}
+
+.ms-5 {
+ margin-left: 1.25rem !important;
+}
+
+.ms-6 {
+ margin-left: 1.5rem !important;
+}
+
+.ms-7 {
+ margin-left: 1.75rem !important;
+}
+
+.ms-8 {
+ margin-left: 2rem !important;
+}
+
+.ms-9 {
+ margin-left: 2.25rem !important;
+}
+
+.ms-10 {
+ margin-left: 2.5rem !important;
+}
+
+.ms-11 {
+ margin-left: 2.75rem !important;
+}
+
+.ms-12 {
+ margin-left: 3rem !important;
+}
+
+.ms-13 {
+ margin-left: 3.25rem !important;
+}
+
+.ms-14 {
+ margin-left: 3.5rem !important;
+}
+
+.ms-15 {
+ margin-left: 3.75rem !important;
+}
+
+.ms-16 {
+ margin-left: 4rem !important;
+}
+
+.ms-17 {
+ margin-left: 4.25rem !important;
+}
+
+.ms-18 {
+ margin-left: 4.5rem !important;
+}
+
+.ms-19 {
+ margin-left: 4.75rem !important;
+}
+
+.ms-20 {
+ margin-left: 5rem !important;
+}
+
+.ms-auto {
+ margin-left: auto !important;
+}
+
+.m-n1 {
+ margin: -0.25rem !important;
+}
+
+.m-n2 {
+ margin: -0.5rem !important;
+}
+
+.m-n3 {
+ margin: -0.75rem !important;
+}
+
+.m-n4 {
+ margin: -1rem !important;
+}
+
+.m-n5 {
+ margin: -1.25rem !important;
+}
+
+.m-n6 {
+ margin: -1.5rem !important;
+}
+
+.m-n7 {
+ margin: -1.75rem !important;
+}
+
+.m-n8 {
+ margin: -2rem !important;
+}
+
+.m-n9 {
+ margin: -2.25rem !important;
+}
+
+.m-n10 {
+ margin: -2.5rem !important;
+}
+
+.m-n11 {
+ margin: -2.75rem !important;
+}
+
+.m-n12 {
+ margin: -3rem !important;
+}
+
+.m-n13 {
+ margin: -3.25rem !important;
+}
+
+.m-n14 {
+ margin: -3.5rem !important;
+}
+
+.m-n15 {
+ margin: -3.75rem !important;
+}
+
+.m-n16 {
+ margin: -4rem !important;
+}
+
+.m-n17 {
+ margin: -4.25rem !important;
+}
+
+.m-n18 {
+ margin: -4.5rem !important;
+}
+
+.m-n19 {
+ margin: -4.75rem !important;
+}
+
+.m-n20 {
+ margin: -5rem !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: -0.75rem !important;
+ margin-left: -0.75rem !important;
+}
+
+.mx-n4 {
+ margin-right: -1rem !important;
+ margin-left: -1rem !important;
+}
+
+.mx-n5 {
+ margin-right: -1.25rem !important;
+ margin-left: -1.25rem !important;
+}
+
+.mx-n6 {
+ margin-right: -1.5rem !important;
+ margin-left: -1.5rem !important;
+}
+
+.mx-n7 {
+ margin-right: -1.75rem !important;
+ margin-left: -1.75rem !important;
+}
+
+.mx-n8 {
+ margin-right: -2rem !important;
+ margin-left: -2rem !important;
+}
+
+.mx-n9 {
+ margin-right: -2.25rem !important;
+ margin-left: -2.25rem !important;
+}
+
+.mx-n10 {
+ margin-right: -2.5rem !important;
+ margin-left: -2.5rem !important;
+}
+
+.mx-n11 {
+ margin-right: -2.75rem !important;
+ margin-left: -2.75rem !important;
+}
+
+.mx-n12 {
+ margin-right: -3rem !important;
+ margin-left: -3rem !important;
+}
+
+.mx-n13 {
+ margin-right: -3.25rem !important;
+ margin-left: -3.25rem !important;
+}
+
+.mx-n14 {
+ margin-right: -3.5rem !important;
+ margin-left: -3.5rem !important;
+}
+
+.mx-n15 {
+ margin-right: -3.75rem !important;
+ margin-left: -3.75rem !important;
+}
+
+.mx-n16 {
+ margin-right: -4rem !important;
+ margin-left: -4rem !important;
+}
+
+.mx-n17 {
+ margin-right: -4.25rem !important;
+ margin-left: -4.25rem !important;
+}
+
+.mx-n18 {
+ margin-right: -4.5rem !important;
+ margin-left: -4.5rem !important;
+}
+
+.mx-n19 {
+ margin-right: -4.75rem !important;
+ margin-left: -4.75rem !important;
+}
+
+.mx-n20 {
+ margin-right: -5rem !important;
+ margin-left: -5rem !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: -0.75rem !important;
+ margin-bottom: -0.75rem !important;
+}
+
+.my-n4 {
+ margin-top: -1rem !important;
+ margin-bottom: -1rem !important;
+}
+
+.my-n5 {
+ margin-top: -1.25rem !important;
+ margin-bottom: -1.25rem !important;
+}
+
+.my-n6 {
+ margin-top: -1.5rem !important;
+ margin-bottom: -1.5rem !important;
+}
+
+.my-n7 {
+ margin-top: -1.75rem !important;
+ margin-bottom: -1.75rem !important;
+}
+
+.my-n8 {
+ margin-top: -2rem !important;
+ margin-bottom: -2rem !important;
+}
+
+.my-n9 {
+ margin-top: -2.25rem !important;
+ margin-bottom: -2.25rem !important;
+}
+
+.my-n10 {
+ margin-top: -2.5rem !important;
+ margin-bottom: -2.5rem !important;
+}
+
+.my-n11 {
+ margin-top: -2.75rem !important;
+ margin-bottom: -2.75rem !important;
+}
+
+.my-n12 {
+ margin-top: -3rem !important;
+ margin-bottom: -3rem !important;
+}
+
+.my-n13 {
+ margin-top: -3.25rem !important;
+ margin-bottom: -3.25rem !important;
+}
+
+.my-n14 {
+ margin-top: -3.5rem !important;
+ margin-bottom: -3.5rem !important;
+}
+
+.my-n15 {
+ margin-top: -3.75rem !important;
+ margin-bottom: -3.75rem !important;
+}
+
+.my-n16 {
+ margin-top: -4rem !important;
+ margin-bottom: -4rem !important;
+}
+
+.my-n17 {
+ margin-top: -4.25rem !important;
+ margin-bottom: -4.25rem !important;
+}
+
+.my-n18 {
+ margin-top: -4.5rem !important;
+ margin-bottom: -4.5rem !important;
+}
+
+.my-n19 {
+ margin-top: -4.75rem !important;
+ margin-bottom: -4.75rem !important;
+}
+
+.my-n20 {
+ margin-top: -5rem !important;
+ margin-bottom: -5rem !important;
+}
+
+.mt-n1 {
+ margin-top: -0.25rem !important;
+}
+
+.mt-n2 {
+ margin-top: -0.5rem !important;
+}
+
+.mt-n3 {
+ margin-top: -0.75rem !important;
+}
+
+.mt-n4 {
+ margin-top: -1rem !important;
+}
+
+.mt-n5 {
+ margin-top: -1.25rem !important;
+}
+
+.mt-n6 {
+ margin-top: -1.5rem !important;
+}
+
+.mt-n7 {
+ margin-top: -1.75rem !important;
+}
+
+.mt-n8 {
+ margin-top: -2rem !important;
+}
+
+.mt-n9 {
+ margin-top: -2.25rem !important;
+}
+
+.mt-n10 {
+ margin-top: -2.5rem !important;
+}
+
+.mt-n11 {
+ margin-top: -2.75rem !important;
+}
+
+.mt-n12 {
+ margin-top: -3rem !important;
+}
+
+.mt-n13 {
+ margin-top: -3.25rem !important;
+}
+
+.mt-n14 {
+ margin-top: -3.5rem !important;
+}
+
+.mt-n15 {
+ margin-top: -3.75rem !important;
+}
+
+.mt-n16 {
+ margin-top: -4rem !important;
+}
+
+.mt-n17 {
+ margin-top: -4.25rem !important;
+}
+
+.mt-n18 {
+ margin-top: -4.5rem !important;
+}
+
+.mt-n19 {
+ margin-top: -4.75rem !important;
+}
+
+.mt-n20 {
+ margin-top: -5rem !important;
+}
+
+.me-n1 {
+ margin-right: -0.25rem !important;
+}
+
+.me-n2 {
+ margin-right: -0.5rem !important;
+}
+
+.me-n3 {
+ margin-right: -0.75rem !important;
+}
+
+.me-n4 {
+ margin-right: -1rem !important;
+}
+
+.me-n5 {
+ margin-right: -1.25rem !important;
+}
+
+.me-n6 {
+ margin-right: -1.5rem !important;
+}
+
+.me-n7 {
+ margin-right: -1.75rem !important;
+}
+
+.me-n8 {
+ margin-right: -2rem !important;
+}
+
+.me-n9 {
+ margin-right: -2.25rem !important;
+}
+
+.me-n10 {
+ margin-right: -2.5rem !important;
+}
+
+.me-n11 {
+ margin-right: -2.75rem !important;
+}
+
+.me-n12 {
+ margin-right: -3rem !important;
+}
+
+.me-n13 {
+ margin-right: -3.25rem !important;
+}
+
+.me-n14 {
+ margin-right: -3.5rem !important;
+}
+
+.me-n15 {
+ margin-right: -3.75rem !important;
+}
+
+.me-n16 {
+ margin-right: -4rem !important;
+}
+
+.me-n17 {
+ margin-right: -4.25rem !important;
+}
+
+.me-n18 {
+ margin-right: -4.5rem !important;
+}
+
+.me-n19 {
+ margin-right: -4.75rem !important;
+}
+
+.me-n20 {
+ margin-right: -5rem !important;
+}
+
+.mb-n1 {
+ margin-bottom: -0.25rem !important;
+}
+
+.mb-n2 {
+ margin-bottom: -0.5rem !important;
+}
+
+.mb-n3 {
+ margin-bottom: -0.75rem !important;
+}
+
+.mb-n4 {
+ margin-bottom: -1rem !important;
+}
+
+.mb-n5 {
+ margin-bottom: -1.25rem !important;
+}
+
+.mb-n6 {
+ margin-bottom: -1.5rem !important;
+}
+
+.mb-n7 {
+ margin-bottom: -1.75rem !important;
+}
+
+.mb-n8 {
+ margin-bottom: -2rem !important;
+}
+
+.mb-n9 {
+ margin-bottom: -2.25rem !important;
+}
+
+.mb-n10 {
+ margin-bottom: -2.5rem !important;
+}
+
+.mb-n11 {
+ margin-bottom: -2.75rem !important;
+}
+
+.mb-n12 {
+ margin-bottom: -3rem !important;
+}
+
+.mb-n13 {
+ margin-bottom: -3.25rem !important;
+}
+
+.mb-n14 {
+ margin-bottom: -3.5rem !important;
+}
+
+.mb-n15 {
+ margin-bottom: -3.75rem !important;
+}
+
+.mb-n16 {
+ margin-bottom: -4rem !important;
+}
+
+.mb-n17 {
+ margin-bottom: -4.25rem !important;
+}
+
+.mb-n18 {
+ margin-bottom: -4.5rem !important;
+}
+
+.mb-n19 {
+ margin-bottom: -4.75rem !important;
+}
+
+.mb-n20 {
+ margin-bottom: -5rem !important;
+}
+
+.ms-n1 {
+ margin-left: -0.25rem !important;
+}
+
+.ms-n2 {
+ margin-left: -0.5rem !important;
+}
+
+.ms-n3 {
+ margin-left: -0.75rem !important;
+}
+
+.ms-n4 {
+ margin-left: -1rem !important;
+}
+
+.ms-n5 {
+ margin-left: -1.25rem !important;
+}
+
+.ms-n6 {
+ margin-left: -1.5rem !important;
+}
+
+.ms-n7 {
+ margin-left: -1.75rem !important;
+}
+
+.ms-n8 {
+ margin-left: -2rem !important;
+}
+
+.ms-n9 {
+ margin-left: -2.25rem !important;
+}
+
+.ms-n10 {
+ margin-left: -2.5rem !important;
+}
+
+.ms-n11 {
+ margin-left: -2.75rem !important;
+}
+
+.ms-n12 {
+ margin-left: -3rem !important;
+}
+
+.ms-n13 {
+ margin-left: -3.25rem !important;
+}
+
+.ms-n14 {
+ margin-left: -3.5rem !important;
+}
+
+.ms-n15 {
+ margin-left: -3.75rem !important;
+}
+
+.ms-n16 {
+ margin-left: -4rem !important;
+}
+
+.ms-n17 {
+ margin-left: -4.25rem !important;
+}
+
+.ms-n18 {
+ margin-left: -4.5rem !important;
+}
+
+.ms-n19 {
+ margin-left: -4.75rem !important;
+}
+
+.ms-n20 {
+ margin-left: -5rem !important;
+}
+
+.p-0 {
+ padding: 0 !important;
+}
+
+.p-1 {
+ padding: 0.25rem !important;
+}
+
+.p-2 {
+ padding: 0.5rem !important;
+}
+
+.p-3 {
+ padding: 0.75rem !important;
+}
+
+.p-4 {
+ padding: 1rem !important;
+}
+
+.p-5 {
+ padding: 1.25rem !important;
+}
+
+.p-6 {
+ padding: 1.5rem !important;
+}
+
+.p-7 {
+ padding: 1.75rem !important;
+}
+
+.p-8 {
+ padding: 2rem !important;
+}
+
+.p-9 {
+ padding: 2.25rem !important;
+}
+
+.p-10 {
+ padding: 2.5rem !important;
+}
+
+.p-11 {
+ padding: 2.75rem !important;
+}
+
+.p-12 {
+ padding: 3rem !important;
+}
+
+.p-13 {
+ padding: 3.25rem !important;
+}
+
+.p-14 {
+ padding: 3.5rem !important;
+}
+
+.p-15 {
+ padding: 3.75rem !important;
+}
+
+.p-16 {
+ padding: 4rem !important;
+}
+
+.p-17 {
+ padding: 4.25rem !important;
+}
+
+.p-18 {
+ padding: 4.5rem !important;
+}
+
+.p-19 {
+ padding: 4.75rem !important;
+}
+
+.p-20 {
+ padding: 5rem !important;
+}
+
+.px-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+}
+
+.px-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+}
+
+.px-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+}
+
+.px-3 {
+ padding-right: 0.75rem !important;
+ padding-left: 0.75rem !important;
+}
+
+.px-4 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+}
+
+.px-5 {
+ padding-right: 1.25rem !important;
+ padding-left: 1.25rem !important;
+}
+
+.px-6 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+}
+
+.px-7 {
+ padding-right: 1.75rem !important;
+ padding-left: 1.75rem !important;
+}
+
+.px-8 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important;
+}
+
+.px-9 {
+ padding-right: 2.25rem !important;
+ padding-left: 2.25rem !important;
+}
+
+.px-10 {
+ padding-right: 2.5rem !important;
+ padding-left: 2.5rem !important;
+}
+
+.px-11 {
+ padding-right: 2.75rem !important;
+ padding-left: 2.75rem !important;
+}
+
+.px-12 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+}
+
+.px-13 {
+ padding-right: 3.25rem !important;
+ padding-left: 3.25rem !important;
+}
+
+.px-14 {
+ padding-right: 3.5rem !important;
+ padding-left: 3.5rem !important;
+}
+
+.px-15 {
+ padding-right: 3.75rem !important;
+ padding-left: 3.75rem !important;
+}
+
+.px-16 {
+ padding-right: 4rem !important;
+ padding-left: 4rem !important;
+}
+
+.px-17 {
+ padding-right: 4.25rem !important;
+ padding-left: 4.25rem !important;
+}
+
+.px-18 {
+ padding-right: 4.5rem !important;
+ padding-left: 4.5rem !important;
+}
+
+.px-19 {
+ padding-right: 4.75rem !important;
+ padding-left: 4.75rem !important;
+}
+
+.px-20 {
+ padding-right: 5rem !important;
+ padding-left: 5rem !important;
+}
+
+.py-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+
+.py-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+}
+
+.py-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+}
+
+.py-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+}
+
+.py-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+}
+
+.py-5 {
+ padding-top: 1.25rem !important;
+ padding-bottom: 1.25rem !important;
+}
+
+.py-6 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+}
+
+.py-7 {
+ padding-top: 1.75rem !important;
+ padding-bottom: 1.75rem !important;
+}
+
+.py-8 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+}
+
+.py-9 {
+ padding-top: 2.25rem !important;
+ padding-bottom: 2.25rem !important;
+}
+
+.py-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+}
+
+.py-11 {
+ padding-top: 2.75rem !important;
+ padding-bottom: 2.75rem !important;
+}
+
+.py-12 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+}
+
+.py-13 {
+ padding-top: 3.25rem !important;
+ padding-bottom: 3.25rem !important;
+}
+
+.py-14 {
+ padding-top: 3.5rem !important;
+ padding-bottom: 3.5rem !important;
+}
+
+.py-15 {
+ padding-top: 3.75rem !important;
+ padding-bottom: 3.75rem !important;
+}
+
+.py-16 {
+ padding-top: 4rem !important;
+ padding-bottom: 4rem !important;
+}
+
+.py-17 {
+ padding-top: 4.25rem !important;
+ padding-bottom: 4.25rem !important;
+}
+
+.py-18 {
+ padding-top: 4.5rem !important;
+ padding-bottom: 4.5rem !important;
+}
+
+.py-19 {
+ padding-top: 4.75rem !important;
+ padding-bottom: 4.75rem !important;
+}
+
+.py-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+}
+
+.pt-0 {
+ padding-top: 0 !important;
+}
+
+.pt-1 {
+ padding-top: 0.25rem !important;
+}
+
+.pt-2 {
+ padding-top: 0.5rem !important;
+}
+
+.pt-3 {
+ padding-top: 0.75rem !important;
+}
+
+.pt-4 {
+ padding-top: 1rem !important;
+}
+
+.pt-5 {
+ padding-top: 1.25rem !important;
+}
+
+.pt-6 {
+ padding-top: 1.5rem !important;
+}
+
+.pt-7 {
+ padding-top: 1.75rem !important;
+}
+
+.pt-8 {
+ padding-top: 2rem !important;
+}
+
+.pt-9 {
+ padding-top: 2.25rem !important;
+}
+
+.pt-10 {
+ padding-top: 2.5rem !important;
+}
+
+.pt-11 {
+ padding-top: 2.75rem !important;
+}
+
+.pt-12 {
+ padding-top: 3rem !important;
+}
+
+.pt-13 {
+ padding-top: 3.25rem !important;
+}
+
+.pt-14 {
+ padding-top: 3.5rem !important;
+}
+
+.pt-15 {
+ padding-top: 3.75rem !important;
+}
+
+.pt-16 {
+ padding-top: 4rem !important;
+}
+
+.pt-17 {
+ padding-top: 4.25rem !important;
+}
+
+.pt-18 {
+ padding-top: 4.5rem !important;
+}
+
+.pt-19 {
+ padding-top: 4.75rem !important;
+}
+
+.pt-20 {
+ padding-top: 5rem !important;
+}
+
+.pe-0 {
+ padding-right: 0 !important;
+}
+
+.pe-1 {
+ padding-right: 0.25rem !important;
+}
+
+.pe-2 {
+ padding-right: 0.5rem !important;
+}
+
+.pe-3 {
+ padding-right: 0.75rem !important;
+}
+
+.pe-4 {
+ padding-right: 1rem !important;
+}
+
+.pe-5 {
+ padding-right: 1.25rem !important;
+}
+
+.pe-6 {
+ padding-right: 1.5rem !important;
+}
+
+.pe-7 {
+ padding-right: 1.75rem !important;
+}
+
+.pe-8 {
+ padding-right: 2rem !important;
+}
+
+.pe-9 {
+ padding-right: 2.25rem !important;
+}
+
+.pe-10 {
+ padding-right: 2.5rem !important;
+}
+
+.pe-11 {
+ padding-right: 2.75rem !important;
+}
+
+.pe-12 {
+ padding-right: 3rem !important;
+}
+
+.pe-13 {
+ padding-right: 3.25rem !important;
+}
+
+.pe-14 {
+ padding-right: 3.5rem !important;
+}
+
+.pe-15 {
+ padding-right: 3.75rem !important;
+}
+
+.pe-16 {
+ padding-right: 4rem !important;
+}
+
+.pe-17 {
+ padding-right: 4.25rem !important;
+}
+
+.pe-18 {
+ padding-right: 4.5rem !important;
+}
+
+.pe-19 {
+ padding-right: 4.75rem !important;
+}
+
+.pe-20 {
+ padding-right: 5rem !important;
+}
+
+.pb-0 {
+ padding-bottom: 0 !important;
+}
+
+.pb-1 {
+ padding-bottom: 0.25rem !important;
+}
+
+.pb-2 {
+ padding-bottom: 0.5rem !important;
+}
+
+.pb-3 {
+ padding-bottom: 0.75rem !important;
+}
+
+.pb-4 {
+ padding-bottom: 1rem !important;
+}
+
+.pb-5 {
+ padding-bottom: 1.25rem !important;
+}
+
+.pb-6 {
+ padding-bottom: 1.5rem !important;
+}
+
+.pb-7 {
+ padding-bottom: 1.75rem !important;
+}
+
+.pb-8 {
+ padding-bottom: 2rem !important;
+}
+
+.pb-9 {
+ padding-bottom: 2.25rem !important;
+}
+
+.pb-10 {
+ padding-bottom: 2.5rem !important;
+}
+
+.pb-11 {
+ padding-bottom: 2.75rem !important;
+}
+
+.pb-12 {
+ padding-bottom: 3rem !important;
+}
+
+.pb-13 {
+ padding-bottom: 3.25rem !important;
+}
+
+.pb-14 {
+ padding-bottom: 3.5rem !important;
+}
+
+.pb-15 {
+ padding-bottom: 3.75rem !important;
+}
+
+.pb-16 {
+ padding-bottom: 4rem !important;
+}
+
+.pb-17 {
+ padding-bottom: 4.25rem !important;
+}
+
+.pb-18 {
+ padding-bottom: 4.5rem !important;
+}
+
+.pb-19 {
+ padding-bottom: 4.75rem !important;
+}
+
+.pb-20 {
+ padding-bottom: 5rem !important;
+}
+
+.ps-0 {
+ padding-left: 0 !important;
+}
+
+.ps-1 {
+ padding-left: 0.25rem !important;
+}
+
+.ps-2 {
+ padding-left: 0.5rem !important;
+}
+
+.ps-3 {
+ padding-left: 0.75rem !important;
+}
+
+.ps-4 {
+ padding-left: 1rem !important;
+}
+
+.ps-5 {
+ padding-left: 1.25rem !important;
+}
+
+.ps-6 {
+ padding-left: 1.5rem !important;
+}
+
+.ps-7 {
+ padding-left: 1.75rem !important;
+}
+
+.ps-8 {
+ padding-left: 2rem !important;
+}
+
+.ps-9 {
+ padding-left: 2.25rem !important;
+}
+
+.ps-10 {
+ padding-left: 2.5rem !important;
+}
+
+.ps-11 {
+ padding-left: 2.75rem !important;
+}
+
+.ps-12 {
+ padding-left: 3rem !important;
+}
+
+.ps-13 {
+ padding-left: 3.25rem !important;
+}
+
+.ps-14 {
+ padding-left: 3.5rem !important;
+}
+
+.ps-15 {
+ padding-left: 3.75rem !important;
+}
+
+.ps-16 {
+ padding-left: 4rem !important;
+}
+
+.ps-17 {
+ padding-left: 4.25rem !important;
+}
+
+.ps-18 {
+ padding-left: 4.5rem !important;
+}
+
+.ps-19 {
+ padding-left: 4.75rem !important;
+}
+
+.ps-20 {
+ padding-left: 5rem !important;
+}
+
+.gap-0 {
+ gap: 0 !important;
+}
+
+.gap-1 {
+ gap: 0.25rem !important;
+}
+
+.gap-2 {
+ gap: 0.5rem !important;
+}
+
+.gap-3 {
+ gap: 0.75rem !important;
+}
+
+.gap-4 {
+ gap: 1rem !important;
+}
+
+.gap-5 {
+ gap: 1.25rem !important;
+}
+
+.gap-6 {
+ gap: 1.5rem !important;
+}
+
+.gap-7 {
+ gap: 1.75rem !important;
+}
+
+.gap-8 {
+ gap: 2rem !important;
+}
+
+.gap-9 {
+ gap: 2.25rem !important;
+}
+
+.gap-10 {
+ gap: 2.5rem !important;
+}
+
+.gap-11 {
+ gap: 2.75rem !important;
+}
+
+.gap-12 {
+ gap: 3rem !important;
+}
+
+.gap-13 {
+ gap: 3.25rem !important;
+}
+
+.gap-14 {
+ gap: 3.5rem !important;
+}
+
+.gap-15 {
+ gap: 3.75rem !important;
+}
+
+.gap-16 {
+ gap: 4rem !important;
+}
+
+.gap-17 {
+ gap: 4.25rem !important;
+}
+
+.gap-18 {
+ gap: 4.5rem !important;
+}
+
+.gap-19 {
+ gap: 4.75rem !important;
+}
+
+.gap-20 {
+ gap: 5rem !important;
+}
+
+.row-gap-0 {
+ row-gap: 0 !important;
+}
+
+.row-gap-1 {
+ row-gap: 0.25rem !important;
+}
+
+.row-gap-2 {
+ row-gap: 0.5rem !important;
+}
+
+.row-gap-3 {
+ row-gap: 0.75rem !important;
+}
+
+.row-gap-4 {
+ row-gap: 1rem !important;
+}
+
+.row-gap-5 {
+ row-gap: 1.25rem !important;
+}
+
+.row-gap-6 {
+ row-gap: 1.5rem !important;
+}
+
+.row-gap-7 {
+ row-gap: 1.75rem !important;
+}
+
+.row-gap-8 {
+ row-gap: 2rem !important;
+}
+
+.row-gap-9 {
+ row-gap: 2.25rem !important;
+}
+
+.row-gap-10 {
+ row-gap: 2.5rem !important;
+}
+
+.row-gap-11 {
+ row-gap: 2.75rem !important;
+}
+
+.row-gap-12 {
+ row-gap: 3rem !important;
+}
+
+.row-gap-13 {
+ row-gap: 3.25rem !important;
+}
+
+.row-gap-14 {
+ row-gap: 3.5rem !important;
+}
+
+.row-gap-15 {
+ row-gap: 3.75rem !important;
+}
+
+.row-gap-16 {
+ row-gap: 4rem !important;
+}
+
+.row-gap-17 {
+ row-gap: 4.25rem !important;
+}
+
+.row-gap-18 {
+ row-gap: 4.5rem !important;
+}
+
+.row-gap-19 {
+ row-gap: 4.75rem !important;
+}
+
+.row-gap-20 {
+ row-gap: 5rem !important;
+}
+
+.column-gap-0 {
+ column-gap: 0 !important;
+}
+
+.column-gap-1 {
+ column-gap: 0.25rem !important;
+}
+
+.column-gap-2 {
+ column-gap: 0.5rem !important;
+}
+
+.column-gap-3 {
+ column-gap: 0.75rem !important;
+}
+
+.column-gap-4 {
+ column-gap: 1rem !important;
+}
+
+.column-gap-5 {
+ column-gap: 1.25rem !important;
+}
+
+.column-gap-6 {
+ column-gap: 1.5rem !important;
+}
+
+.column-gap-7 {
+ column-gap: 1.75rem !important;
+}
+
+.column-gap-8 {
+ column-gap: 2rem !important;
+}
+
+.column-gap-9 {
+ column-gap: 2.25rem !important;
+}
+
+.column-gap-10 {
+ column-gap: 2.5rem !important;
+}
+
+.column-gap-11 {
+ column-gap: 2.75rem !important;
+}
+
+.column-gap-12 {
+ column-gap: 3rem !important;
+}
+
+.column-gap-13 {
+ column-gap: 3.25rem !important;
+}
+
+.column-gap-14 {
+ column-gap: 3.5rem !important;
+}
+
+.column-gap-15 {
+ column-gap: 3.75rem !important;
+}
+
+.column-gap-16 {
+ column-gap: 4rem !important;
+}
+
+.column-gap-17 {
+ column-gap: 4.25rem !important;
+}
+
+.column-gap-18 {
+ column-gap: 4.5rem !important;
+}
+
+.column-gap-19 {
+ column-gap: 4.75rem !important;
+}
+
+.column-gap-20 {
+ column-gap: 5rem !important;
+}
+
+.font-monospace {
+ font-family: var(--bs-font-monospace) !important;
+}
+
+.fs-1 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+}
+
+.fs-2 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+}
+
+.fs-3 {
+ font-size: calc(1.26rem + 0.12vw) !important;
+}
+
+.fs-4 {
+ font-size: 1.25rem !important;
+}
+
+.fs-5 {
+ font-size: 1.15rem !important;
+}
+
+.fs-6 {
+ font-size: 1.075rem !important;
+}
+
+.fs-7 {
+ font-size: 0.95rem !important;
+}
+
+.fs-8 {
+ font-size: 0.85rem !important;
+}
+
+.fs-9 {
+ font-size: 0.75rem !important;
+}
+
+.fs-10 {
+ font-size: 0.5rem !important;
+}
+
+.fs-base {
+ font-size: 1rem !important;
+}
+
+.fs-fluid {
+ font-size: 100% !important;
+}
+
+.fs-2x {
+ font-size: calc(1.325rem + 0.9vw) !important;
+}
+
+.fs-2qx {
+ font-size: calc(1.35rem + 1.2vw) !important;
+}
+
+.fs-2hx {
+ font-size: calc(1.375rem + 1.5vw) !important;
+}
+
+.fs-2tx {
+ font-size: calc(1.4rem + 1.8vw) !important;
+}
+
+.fs-3x {
+ font-size: calc(1.425rem + 2.1vw) !important;
+}
+
+.fs-3qx {
+ font-size: calc(1.45rem + 2.4vw) !important;
+}
+
+.fs-3hx {
+ font-size: calc(1.475rem + 2.7vw) !important;
+}
+
+.fs-3tx {
+ font-size: calc(1.5rem + 3vw) !important;
+}
+
+.fs-4x {
+ font-size: calc(1.525rem + 3.3vw) !important;
+}
+
+.fs-4qx {
+ font-size: calc(1.55rem + 3.6vw) !important;
+}
+
+.fs-4hx {
+ font-size: calc(1.575rem + 3.9vw) !important;
+}
+
+.fs-4tx {
+ font-size: calc(1.6rem + 4.2vw) !important;
+}
+
+.fs-5x {
+ font-size: calc(1.625rem + 4.5vw) !important;
+}
+
+.fs-5qx {
+ font-size: calc(1.65rem + 4.8vw) !important;
+}
+
+.fs-5hx {
+ font-size: calc(1.675rem + 5.1vw) !important;
+}
+
+.fs-5tx {
+ font-size: calc(1.7rem + 5.4vw) !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: 500 !important;
+}
+
+.fw-bold {
+ font-weight: 600 !important;
+}
+
+.fw-bolder {
+ font-weight: 700 !important;
+}
+
+.lh-0 {
+ line-height: 0 !important;
+}
+
+.lh-1 {
+ line-height: 1 !important;
+}
+
+.lh-sm {
+ line-height: 1.25 !important;
+}
+
+.lh-base {
+ line-height: 1.5 !important;
+}
+
+.lh-lg {
+ line-height: 1.75 !important;
+}
+
+.lh-xl {
+ line-height: 2 !important;
+}
+
+.lh-xxl {
+ line-height: 2.25 !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-white {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-light {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-primary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-secondary {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-success {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-info {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-warning {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-danger {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-dark {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-black {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-body {
+ --bs-text-opacity: 1;
+ color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;
+}
+
+.text-muted {
+ --bs-text-opacity: 1;
+ color: #A1A5B7 !important;
+}
+
+.text-black-50 {
+ --bs-text-opacity: 1;
+ color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.text-white-50 {
+ --bs-text-opacity: 1;
+ color: rgba(255, 255, 255, 0.5) !important;
+}
+
+.text-body-secondary {
+ --bs-text-opacity: 1;
+ color: var(--bs-secondary-color) !important;
+}
+
+.text-body-tertiary {
+ --bs-text-opacity: 1;
+ color: var(--bs-tertiary-color) !important;
+}
+
+.text-body-emphasis {
+ --bs-text-opacity: 1;
+ color: var(--bs-emphasis-color) !important;
+}
+
+.text-reset {
+ --bs-text-opacity: 1;
+ color: inherit !important;
+}
+
+.text-opacity-25 {
+ --bs-text-opacity: 0.25;
+}
+
+.text-opacity-50 {
+ --bs-text-opacity: 0.5;
+}
+
+.text-opacity-75 {
+ --bs-text-opacity: 0.75;
+}
+
+.text-opacity-100 {
+ --bs-text-opacity: 1;
+}
+
+.text-primary-emphasis {
+ color: var(--bs-primary-text) !important;
+}
+
+.text-secondary-emphasis {
+ color: var(--bs-secondary-text) !important;
+}
+
+.text-success-emphasis {
+ color: var(--bs-success-text) !important;
+}
+
+.text-info-emphasis {
+ color: var(--bs-info-text) !important;
+}
+
+.text-warning-emphasis {
+ color: var(--bs-warning-text) !important;
+}
+
+.text-danger-emphasis {
+ color: var(--bs-danger-text) !important;
+}
+
+.text-light-emphasis {
+ color: var(--bs-light-text) !important;
+}
+
+.text-dark-emphasis {
+ color: var(--bs-dark-text) !important;
+}
+
+.bg-white {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-light {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-primary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-secondary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-success {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-info {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-warning {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-danger {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-dark {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-black {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-transparent {
+ --bs-bg-opacity: 1;
+ background-color: transparent !important;
+}
+
+.bg-body-secondary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body-tertiary {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-body-emphasis {
+ --bs-bg-opacity: 1;
+ background-color: rgba(var(--bs-emphasis-bg-rgb), var(--bs-bg-opacity)) !important;
+}
+
+.bg-opacity-10 {
+ --bs-bg-opacity: 0.1;
+}
+
+.bg-opacity-25 {
+ --bs-bg-opacity: 0.25;
+}
+
+.bg-opacity-50 {
+ --bs-bg-opacity: 0.5;
+}
+
+.bg-opacity-75 {
+ --bs-bg-opacity: 0.75;
+}
+
+.bg-opacity-100 {
+ --bs-bg-opacity: 1;
+}
+
+.bg-primary-subtle {
+ background-color: var(--bs-primary-bg-subtle) !important;
+}
+
+.bg-secondary-subtle {
+ background-color: var(--bs-secondary-bg-subtle) !important;
+}
+
+.bg-success-subtle {
+ background-color: var(--bs-success-bg-subtle) !important;
+}
+
+.bg-info-subtle {
+ background-color: var(--bs-info-bg-subtle) !important;
+}
+
+.bg-warning-subtle {
+ background-color: var(--bs-warning-bg-subtle) !important;
+}
+
+.bg-danger-subtle {
+ background-color: var(--bs-danger-bg-subtle) !important;
+}
+
+.bg-light-subtle {
+ background-color: var(--bs-light-bg-subtle) !important;
+}
+
+.bg-dark-subtle {
+ background-color: var(--bs-dark-bg-subtle) !important;
+}
+
+.bg-gradient {
+ background-image: var(--bs-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: 0.475rem !important;
+}
+
+.rounded-0 {
+ border-radius: 0 !important;
+}
+
+.rounded-1 {
+ border-radius: 0.425rem !important;
+}
+
+.rounded-2 {
+ border-radius: 0.475rem !important;
+}
+
+.rounded-3 {
+ border-radius: 0.625rem !important;
+}
+
+.rounded-4 {
+ border-radius: 1rem !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.rounded-pill {
+ border-radius: 50rem !important;
+}
+
+.rounded-top {
+ border-top-left-radius: var(--bs-border-radius) !important;
+ border-top-right-radius: var(--bs-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(--bs-border-radius-sm) !important;
+ border-top-right-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-top-2 {
+ border-top-left-radius: var(--bs-border-radius) !important;
+ border-top-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-top-3 {
+ border-top-left-radius: var(--bs-border-radius-lg) !important;
+ border-top-right-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-top-4 {
+ border-top-left-radius: var(--bs-border-radius-xl) !important;
+ border-top-right-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-top-5 {
+ border-top-left-radius: var(--bs-border-radius-2xl) !important;
+ border-top-right-radius: var(--bs-border-radius-2xl) !important;
+}
+
+.rounded-top-circle {
+ border-top-left-radius: 50% !important;
+ border-top-right-radius: 50% !important;
+}
+
+.rounded-top-pill {
+ border-top-left-radius: var(--bs-border-radius-pill) !important;
+ border-top-right-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-end {
+ border-top-right-radius: var(--bs-border-radius) !important;
+ border-bottom-right-radius: var(--bs-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(--bs-border-radius-sm) !important;
+ border-bottom-right-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-end-2 {
+ border-top-right-radius: var(--bs-border-radius) !important;
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-end-3 {
+ border-top-right-radius: var(--bs-border-radius-lg) !important;
+ border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-end-4 {
+ border-top-right-radius: var(--bs-border-radius-xl) !important;
+ border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-end-5 {
+ border-top-right-radius: var(--bs-border-radius-2xl) !important;
+ border-bottom-right-radius: var(--bs-border-radius-2xl) !important;
+}
+
+.rounded-end-circle {
+ border-top-right-radius: 50% !important;
+ border-bottom-right-radius: 50% !important;
+}
+
+.rounded-end-pill {
+ border-top-right-radius: var(--bs-border-radius-pill) !important;
+ border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-bottom {
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+ border-bottom-left-radius: var(--bs-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(--bs-border-radius-sm) !important;
+ border-bottom-left-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-bottom-2 {
+ border-bottom-right-radius: var(--bs-border-radius) !important;
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-bottom-3 {
+ border-bottom-right-radius: var(--bs-border-radius-lg) !important;
+ border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-bottom-4 {
+ border-bottom-right-radius: var(--bs-border-radius-xl) !important;
+ border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-bottom-5 {
+ border-bottom-right-radius: var(--bs-border-radius-2xl) !important;
+ border-bottom-left-radius: var(--bs-border-radius-2xl) !important;
+}
+
+.rounded-bottom-circle {
+ border-bottom-right-radius: 50% !important;
+ border-bottom-left-radius: 50% !important;
+}
+
+.rounded-bottom-pill {
+ border-bottom-right-radius: var(--bs-border-radius-pill) !important;
+ border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+}
+
+.rounded-start {
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+ border-top-left-radius: var(--bs-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(--bs-border-radius-sm) !important;
+ border-top-left-radius: var(--bs-border-radius-sm) !important;
+}
+
+.rounded-start-2 {
+ border-bottom-left-radius: var(--bs-border-radius) !important;
+ border-top-left-radius: var(--bs-border-radius) !important;
+}
+
+.rounded-start-3 {
+ border-bottom-left-radius: var(--bs-border-radius-lg) !important;
+ border-top-left-radius: var(--bs-border-radius-lg) !important;
+}
+
+.rounded-start-4 {
+ border-bottom-left-radius: var(--bs-border-radius-xl) !important;
+ border-top-left-radius: var(--bs-border-radius-xl) !important;
+}
+
+.rounded-start-5 {
+ border-bottom-left-radius: var(--bs-border-radius-2xl) !important;
+ border-top-left-radius: var(--bs-border-radius-2xl) !important;
+}
+
+.rounded-start-circle {
+ border-bottom-left-radius: 50% !important;
+ border-top-left-radius: 50% !important;
+}
+
+.rounded-start-pill {
+ border-bottom-left-radius: var(--bs-border-radius-pill) !important;
+ border-top-left-radius: var(--bs-border-radius-pill) !important;
+}
+
+.visible {
+ visibility: visible !important;
+}
+
+.invisible {
+ visibility: hidden !important;
+}
+
+.z-index-n1 {
+ z-index: -1 !important;
+}
+
+.z-index-n2 {
+ z-index: -2 !important;
+}
+
+.z-index-0 {
+ z-index: 0 !important;
+}
+
+.z-index-1 {
+ z-index: 1 !important;
+}
+
+.z-index-2 {
+ z-index: 2 !important;
+}
+
+.z-index-3 {
+ z-index: 3 !important;
+}
+
+.opacity-0 {
+ opacity: 0 !important;
+}
+
+.opacity-0-hover:hover {
+ opacity: 0 !important;
+}
+
+.opacity-5 {
+ opacity: 0.05 !important;
+}
+
+.opacity-5-hover:hover {
+ opacity: 0.05 !important;
+}
+
+.opacity-10 {
+ opacity: 0.1 !important;
+}
+
+.opacity-10-hover:hover {
+ opacity: 0.1 !important;
+}
+
+.opacity-15 {
+ opacity: 0.15 !important;
+}
+
+.opacity-15-hover:hover {
+ opacity: 0.15 !important;
+}
+
+.opacity-20 {
+ opacity: 0.2 !important;
+}
+
+.opacity-20-hover:hover {
+ opacity: 0.2 !important;
+}
+
+.opacity-25 {
+ opacity: 0.25 !important;
+}
+
+.opacity-25-hover:hover {
+ opacity: 0.25 !important;
+}
+
+.opacity-50 {
+ opacity: 0.5 !important;
+}
+
+.opacity-50-hover:hover {
+ opacity: 0.5 !important;
+}
+
+.opacity-75 {
+ opacity: 0.75 !important;
+}
+
+.opacity-75-hover:hover {
+ opacity: 0.75 !important;
+}
+
+.opacity-100 {
+ opacity: 1 !important;
+}
+
+.opacity-100-hover:hover {
+ opacity: 1 !important;
+}
+
+.min-w-unset {
+ min-width: unset !important;
+}
+
+.min-w-25 {
+ min-width: 25% !important;
+}
+
+.min-w-50 {
+ min-width: 50% !important;
+}
+
+.min-w-75 {
+ min-width: 75% !important;
+}
+
+.min-w-100 {
+ min-width: 100% !important;
+}
+
+.min-w-auto {
+ min-width: auto !important;
+}
+
+.min-w-1px {
+ min-width: 1px !important;
+}
+
+.min-w-2px {
+ min-width: 2px !important;
+}
+
+.min-w-3px {
+ min-width: 3px !important;
+}
+
+.min-w-4px {
+ min-width: 4px !important;
+}
+
+.min-w-5px {
+ min-width: 5px !important;
+}
+
+.min-w-6px {
+ min-width: 6px !important;
+}
+
+.min-w-7px {
+ min-width: 7px !important;
+}
+
+.min-w-8px {
+ min-width: 8px !important;
+}
+
+.min-w-9px {
+ min-width: 9px !important;
+}
+
+.min-w-10px {
+ min-width: 10px !important;
+}
+
+.min-w-15px {
+ min-width: 15px !important;
+}
+
+.min-w-20px {
+ min-width: 20px !important;
+}
+
+.min-w-25px {
+ min-width: 25px !important;
+}
+
+.min-w-30px {
+ min-width: 30px !important;
+}
+
+.min-w-35px {
+ min-width: 35px !important;
+}
+
+.min-w-40px {
+ min-width: 40px !important;
+}
+
+.min-w-45px {
+ min-width: 45px !important;
+}
+
+.min-w-50px {
+ min-width: 50px !important;
+}
+
+.min-w-55px {
+ min-width: 55px !important;
+}
+
+.min-w-60px {
+ min-width: 60px !important;
+}
+
+.min-w-65px {
+ min-width: 65px !important;
+}
+
+.min-w-70px {
+ min-width: 70px !important;
+}
+
+.min-w-75px {
+ min-width: 75px !important;
+}
+
+.min-w-80px {
+ min-width: 80px !important;
+}
+
+.min-w-85px {
+ min-width: 85px !important;
+}
+
+.min-w-90px {
+ min-width: 90px !important;
+}
+
+.min-w-95px {
+ min-width: 95px !important;
+}
+
+.min-w-100px {
+ min-width: 100px !important;
+}
+
+.min-w-125px {
+ min-width: 125px !important;
+}
+
+.min-w-150px {
+ min-width: 150px !important;
+}
+
+.min-w-175px {
+ min-width: 175px !important;
+}
+
+.min-w-200px {
+ min-width: 200px !important;
+}
+
+.min-w-225px {
+ min-width: 225px !important;
+}
+
+.min-w-250px {
+ min-width: 250px !important;
+}
+
+.min-w-275px {
+ min-width: 275px !important;
+}
+
+.min-w-300px {
+ min-width: 300px !important;
+}
+
+.min-w-325px {
+ min-width: 325px !important;
+}
+
+.min-w-350px {
+ min-width: 350px !important;
+}
+
+.min-w-375px {
+ min-width: 375px !important;
+}
+
+.min-w-400px {
+ min-width: 400px !important;
+}
+
+.min-w-425px {
+ min-width: 425px !important;
+}
+
+.min-w-450px {
+ min-width: 450px !important;
+}
+
+.min-w-475px {
+ min-width: 475px !important;
+}
+
+.min-w-500px {
+ min-width: 500px !important;
+}
+
+.min-w-550px {
+ min-width: 550px !important;
+}
+
+.min-w-600px {
+ min-width: 600px !important;
+}
+
+.min-w-650px {
+ min-width: 650px !important;
+}
+
+.min-w-700px {
+ min-width: 700px !important;
+}
+
+.min-w-750px {
+ min-width: 750px !important;
+}
+
+.min-w-800px {
+ min-width: 800px !important;
+}
+
+.min-w-850px {
+ min-width: 850px !important;
+}
+
+.min-w-900px {
+ min-width: 900px !important;
+}
+
+.min-w-950px {
+ min-width: 950px !important;
+}
+
+.min-w-1000px {
+ min-width: 1000px !important;
+}
+
+.min-h-unset {
+ min-height: unset !important;
+}
+
+.min-h-25 {
+ min-height: 25% !important;
+}
+
+.min-h-50 {
+ min-height: 50% !important;
+}
+
+.min-h-75 {
+ min-height: 75% !important;
+}
+
+.min-h-100 {
+ min-height: 100% !important;
+}
+
+.min-h-auto {
+ min-height: auto !important;
+}
+
+.min-h-1px {
+ min-height: 1px !important;
+}
+
+.min-h-2px {
+ min-height: 2px !important;
+}
+
+.min-h-3px {
+ min-height: 3px !important;
+}
+
+.min-h-4px {
+ min-height: 4px !important;
+}
+
+.min-h-5px {
+ min-height: 5px !important;
+}
+
+.min-h-6px {
+ min-height: 6px !important;
+}
+
+.min-h-7px {
+ min-height: 7px !important;
+}
+
+.min-h-8px {
+ min-height: 8px !important;
+}
+
+.min-h-9px {
+ min-height: 9px !important;
+}
+
+.min-h-10px {
+ min-height: 10px !important;
+}
+
+.min-h-15px {
+ min-height: 15px !important;
+}
+
+.min-h-20px {
+ min-height: 20px !important;
+}
+
+.min-h-25px {
+ min-height: 25px !important;
+}
+
+.min-h-30px {
+ min-height: 30px !important;
+}
+
+.min-h-35px {
+ min-height: 35px !important;
+}
+
+.min-h-40px {
+ min-height: 40px !important;
+}
+
+.min-h-45px {
+ min-height: 45px !important;
+}
+
+.min-h-50px {
+ min-height: 50px !important;
+}
+
+.min-h-55px {
+ min-height: 55px !important;
+}
+
+.min-h-60px {
+ min-height: 60px !important;
+}
+
+.min-h-65px {
+ min-height: 65px !important;
+}
+
+.min-h-70px {
+ min-height: 70px !important;
+}
+
+.min-h-75px {
+ min-height: 75px !important;
+}
+
+.min-h-80px {
+ min-height: 80px !important;
+}
+
+.min-h-85px {
+ min-height: 85px !important;
+}
+
+.min-h-90px {
+ min-height: 90px !important;
+}
+
+.min-h-95px {
+ min-height: 95px !important;
+}
+
+.min-h-100px {
+ min-height: 100px !important;
+}
+
+.min-h-125px {
+ min-height: 125px !important;
+}
+
+.min-h-150px {
+ min-height: 150px !important;
+}
+
+.min-h-175px {
+ min-height: 175px !important;
+}
+
+.min-h-200px {
+ min-height: 200px !important;
+}
+
+.min-h-225px {
+ min-height: 225px !important;
+}
+
+.min-h-250px {
+ min-height: 250px !important;
+}
+
+.min-h-275px {
+ min-height: 275px !important;
+}
+
+.min-h-300px {
+ min-height: 300px !important;
+}
+
+.min-h-325px {
+ min-height: 325px !important;
+}
+
+.min-h-350px {
+ min-height: 350px !important;
+}
+
+.min-h-375px {
+ min-height: 375px !important;
+}
+
+.min-h-400px {
+ min-height: 400px !important;
+}
+
+.min-h-425px {
+ min-height: 425px !important;
+}
+
+.min-h-450px {
+ min-height: 450px !important;
+}
+
+.min-h-475px {
+ min-height: 475px !important;
+}
+
+.min-h-500px {
+ min-height: 500px !important;
+}
+
+.min-h-550px {
+ min-height: 550px !important;
+}
+
+.min-h-600px {
+ min-height: 600px !important;
+}
+
+.min-h-650px {
+ min-height: 650px !important;
+}
+
+.min-h-700px {
+ min-height: 700px !important;
+}
+
+.min-h-750px {
+ min-height: 750px !important;
+}
+
+.min-h-800px {
+ min-height: 800px !important;
+}
+
+.min-h-850px {
+ min-height: 850px !important;
+}
+
+.min-h-900px {
+ min-height: 900px !important;
+}
+
+.min-h-950px {
+ min-height: 950px !important;
+}
+
+.min-h-1000px {
+ min-height: 1000px !important;
+}
+
+.border-top-0 {
+ border-top-width: 0 !important;
+}
+
+.border-top-1 {
+ border-top-width: 1px !important;
+}
+
+.border-top-2 {
+ border-top-width: 2px !important;
+}
+
+.border-top-3 {
+ border-top-width: 3px !important;
+}
+
+.border-top-4 {
+ border-top-width: 4px !important;
+}
+
+.border-top-5 {
+ border-top-width: 5px !important;
+}
+
+.border-bottom-0 {
+ border-bottom-width: 0 !important;
+}
+
+.border-bottom-1 {
+ border-bottom-width: 1px !important;
+}
+
+.border-bottom-2 {
+ border-bottom-width: 2px !important;
+}
+
+.border-bottom-3 {
+ border-bottom-width: 3px !important;
+}
+
+.border-bottom-4 {
+ border-bottom-width: 4px !important;
+}
+
+.border-bottom-5 {
+ border-bottom-width: 5px !important;
+}
+
+.border-right-0 {
+ border-right-width: 0 !important;
+}
+
+.border-right-1 {
+ border-right-width: 1px !important;
+}
+
+.border-right-2 {
+ border-right-width: 2px !important;
+}
+
+.border-right-3 {
+ border-right-width: 3px !important;
+}
+
+.border-right-4 {
+ border-right-width: 4px !important;
+}
+
+.border-right-5 {
+ border-right-width: 5px !important;
+}
+
+.border-left-0 {
+ border-left-width: 0 !important;
+}
+
+.border-left-1 {
+ border-left-width: 1px !important;
+}
+
+.border-left-2 {
+ border-left-width: 2px !important;
+}
+
+.border-left-3 {
+ border-left-width: 3px !important;
+}
+
+.border-left-4 {
+ border-left-width: 4px !important;
+}
+
+.border-left-5 {
+ border-left-width: 5px !important;
+}
+
+.ls-1 {
+ letter-spacing: 0.1rem !important;
+}
+
+.ls-2 {
+ letter-spacing: 0.115rem !important;
+}
+
+.ls-3 {
+ letter-spacing: 0.125rem !important;
+}
+
+.ls-4 {
+ letter-spacing: 0.25rem !important;
+}
+
+.ls-5 {
+ letter-spacing: 0.5rem !important;
+}
+
+.ls-n1 {
+ letter-spacing: -0.1rem !important;
+}
+
+.ls-n2 {
+ letter-spacing: -0.115rem !important;
+}
+
+.ls-n3 {
+ letter-spacing: -0.125rem !important;
+}
+
+.ls-n4 {
+ letter-spacing: -0.25rem !important;
+}
+
+.ls-n5 {
+ letter-spacing: -0.5rem !important;
+}
+
+@media (min-width: 576px) {
+ .float-sm-start {
+ float: left !important;
+ }
+ .float-sm-end {
+ float: right !important;
+ }
+ .float-sm-none {
+ float: none !important;
+ }
+ .object-fit-sm-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-sm-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-sm-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-sm-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-sm-none {
+ object-fit: none !important;
+ }
+ .overflow-sm-auto {
+ overflow: auto !important;
+ }
+ .overflow-sm-hidden {
+ overflow: hidden !important;
+ }
+ .overflow-sm-visible {
+ overflow: visible !important;
+ }
+ .overflow-sm-scroll {
+ overflow: scroll !important;
+ }
+ .d-sm-inline {
+ display: inline !important;
+ }
+ .d-sm-inline-block {
+ display: inline-block !important;
+ }
+ .d-sm-block {
+ display: block !important;
+ }
+ .d-sm-grid {
+ display: grid !important;
+ }
+ .d-sm-table {
+ display: table !important;
+ }
+ .d-sm-table-row {
+ display: table-row !important;
+ }
+ .d-sm-table-cell {
+ display: table-cell !important;
+ }
+ .d-sm-flex {
+ display: flex !important;
+ }
+ .d-sm-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-sm-none {
+ display: none !important;
+ }
+ .position-sm-static {
+ position: static !important;
+ }
+ .position-sm-relative {
+ position: relative !important;
+ }
+ .position-sm-absolute {
+ position: absolute !important;
+ }
+ .position-sm-fixed {
+ position: fixed !important;
+ }
+ .position-sm-sticky {
+ position: sticky !important;
+ }
+ .w-sm-unset {
+ width: unset !important;
+ }
+ .w-sm-25 {
+ width: 25% !important;
+ }
+ .w-sm-50 {
+ width: 50% !important;
+ }
+ .w-sm-75 {
+ width: 75% !important;
+ }
+ .w-sm-100 {
+ width: 100% !important;
+ }
+ .w-sm-auto {
+ width: auto !important;
+ }
+ .w-sm-1px {
+ width: 1px !important;
+ }
+ .w-sm-2px {
+ width: 2px !important;
+ }
+ .w-sm-3px {
+ width: 3px !important;
+ }
+ .w-sm-4px {
+ width: 4px !important;
+ }
+ .w-sm-5px {
+ width: 5px !important;
+ }
+ .w-sm-6px {
+ width: 6px !important;
+ }
+ .w-sm-7px {
+ width: 7px !important;
+ }
+ .w-sm-8px {
+ width: 8px !important;
+ }
+ .w-sm-9px {
+ width: 9px !important;
+ }
+ .w-sm-10px {
+ width: 10px !important;
+ }
+ .w-sm-15px {
+ width: 15px !important;
+ }
+ .w-sm-20px {
+ width: 20px !important;
+ }
+ .w-sm-25px {
+ width: 25px !important;
+ }
+ .w-sm-30px {
+ width: 30px !important;
+ }
+ .w-sm-35px {
+ width: 35px !important;
+ }
+ .w-sm-40px {
+ width: 40px !important;
+ }
+ .w-sm-45px {
+ width: 45px !important;
+ }
+ .w-sm-50px {
+ width: 50px !important;
+ }
+ .w-sm-55px {
+ width: 55px !important;
+ }
+ .w-sm-60px {
+ width: 60px !important;
+ }
+ .w-sm-65px {
+ width: 65px !important;
+ }
+ .w-sm-70px {
+ width: 70px !important;
+ }
+ .w-sm-75px {
+ width: 75px !important;
+ }
+ .w-sm-80px {
+ width: 80px !important;
+ }
+ .w-sm-85px {
+ width: 85px !important;
+ }
+ .w-sm-90px {
+ width: 90px !important;
+ }
+ .w-sm-95px {
+ width: 95px !important;
+ }
+ .w-sm-100px {
+ width: 100px !important;
+ }
+ .w-sm-125px {
+ width: 125px !important;
+ }
+ .w-sm-150px {
+ width: 150px !important;
+ }
+ .w-sm-175px {
+ width: 175px !important;
+ }
+ .w-sm-200px {
+ width: 200px !important;
+ }
+ .w-sm-225px {
+ width: 225px !important;
+ }
+ .w-sm-250px {
+ width: 250px !important;
+ }
+ .w-sm-275px {
+ width: 275px !important;
+ }
+ .w-sm-300px {
+ width: 300px !important;
+ }
+ .w-sm-325px {
+ width: 325px !important;
+ }
+ .w-sm-350px {
+ width: 350px !important;
+ }
+ .w-sm-375px {
+ width: 375px !important;
+ }
+ .w-sm-400px {
+ width: 400px !important;
+ }
+ .w-sm-425px {
+ width: 425px !important;
+ }
+ .w-sm-450px {
+ width: 450px !important;
+ }
+ .w-sm-475px {
+ width: 475px !important;
+ }
+ .w-sm-500px {
+ width: 500px !important;
+ }
+ .w-sm-550px {
+ width: 550px !important;
+ }
+ .w-sm-600px {
+ width: 600px !important;
+ }
+ .w-sm-650px {
+ width: 650px !important;
+ }
+ .w-sm-700px {
+ width: 700px !important;
+ }
+ .w-sm-750px {
+ width: 750px !important;
+ }
+ .w-sm-800px {
+ width: 800px !important;
+ }
+ .w-sm-850px {
+ width: 850px !important;
+ }
+ .w-sm-900px {
+ width: 900px !important;
+ }
+ .w-sm-950px {
+ width: 950px !important;
+ }
+ .w-sm-1000px {
+ width: 1000px !important;
+ }
+ .mw-sm-unset {
+ max-width: unset !important;
+ }
+ .mw-sm-25 {
+ max-width: 25% !important;
+ }
+ .mw-sm-50 {
+ max-width: 50% !important;
+ }
+ .mw-sm-75 {
+ max-width: 75% !important;
+ }
+ .mw-sm-100 {
+ max-width: 100% !important;
+ }
+ .mw-sm-auto {
+ max-width: auto !important;
+ }
+ .mw-sm-1px {
+ max-width: 1px !important;
+ }
+ .mw-sm-2px {
+ max-width: 2px !important;
+ }
+ .mw-sm-3px {
+ max-width: 3px !important;
+ }
+ .mw-sm-4px {
+ max-width: 4px !important;
+ }
+ .mw-sm-5px {
+ max-width: 5px !important;
+ }
+ .mw-sm-6px {
+ max-width: 6px !important;
+ }
+ .mw-sm-7px {
+ max-width: 7px !important;
+ }
+ .mw-sm-8px {
+ max-width: 8px !important;
+ }
+ .mw-sm-9px {
+ max-width: 9px !important;
+ }
+ .mw-sm-10px {
+ max-width: 10px !important;
+ }
+ .mw-sm-15px {
+ max-width: 15px !important;
+ }
+ .mw-sm-20px {
+ max-width: 20px !important;
+ }
+ .mw-sm-25px {
+ max-width: 25px !important;
+ }
+ .mw-sm-30px {
+ max-width: 30px !important;
+ }
+ .mw-sm-35px {
+ max-width: 35px !important;
+ }
+ .mw-sm-40px {
+ max-width: 40px !important;
+ }
+ .mw-sm-45px {
+ max-width: 45px !important;
+ }
+ .mw-sm-50px {
+ max-width: 50px !important;
+ }
+ .mw-sm-55px {
+ max-width: 55px !important;
+ }
+ .mw-sm-60px {
+ max-width: 60px !important;
+ }
+ .mw-sm-65px {
+ max-width: 65px !important;
+ }
+ .mw-sm-70px {
+ max-width: 70px !important;
+ }
+ .mw-sm-75px {
+ max-width: 75px !important;
+ }
+ .mw-sm-80px {
+ max-width: 80px !important;
+ }
+ .mw-sm-85px {
+ max-width: 85px !important;
+ }
+ .mw-sm-90px {
+ max-width: 90px !important;
+ }
+ .mw-sm-95px {
+ max-width: 95px !important;
+ }
+ .mw-sm-100px {
+ max-width: 100px !important;
+ }
+ .mw-sm-125px {
+ max-width: 125px !important;
+ }
+ .mw-sm-150px {
+ max-width: 150px !important;
+ }
+ .mw-sm-175px {
+ max-width: 175px !important;
+ }
+ .mw-sm-200px {
+ max-width: 200px !important;
+ }
+ .mw-sm-225px {
+ max-width: 225px !important;
+ }
+ .mw-sm-250px {
+ max-width: 250px !important;
+ }
+ .mw-sm-275px {
+ max-width: 275px !important;
+ }
+ .mw-sm-300px {
+ max-width: 300px !important;
+ }
+ .mw-sm-325px {
+ max-width: 325px !important;
+ }
+ .mw-sm-350px {
+ max-width: 350px !important;
+ }
+ .mw-sm-375px {
+ max-width: 375px !important;
+ }
+ .mw-sm-400px {
+ max-width: 400px !important;
+ }
+ .mw-sm-425px {
+ max-width: 425px !important;
+ }
+ .mw-sm-450px {
+ max-width: 450px !important;
+ }
+ .mw-sm-475px {
+ max-width: 475px !important;
+ }
+ .mw-sm-500px {
+ max-width: 500px !important;
+ }
+ .mw-sm-550px {
+ max-width: 550px !important;
+ }
+ .mw-sm-600px {
+ max-width: 600px !important;
+ }
+ .mw-sm-650px {
+ max-width: 650px !important;
+ }
+ .mw-sm-700px {
+ max-width: 700px !important;
+ }
+ .mw-sm-750px {
+ max-width: 750px !important;
+ }
+ .mw-sm-800px {
+ max-width: 800px !important;
+ }
+ .mw-sm-850px {
+ max-width: 850px !important;
+ }
+ .mw-sm-900px {
+ max-width: 900px !important;
+ }
+ .mw-sm-950px {
+ max-width: 950px !important;
+ }
+ .mw-sm-1000px {
+ max-width: 1000px !important;
+ }
+ .h-sm-unset {
+ height: unset !important;
+ }
+ .h-sm-25 {
+ height: 25% !important;
+ }
+ .h-sm-50 {
+ height: 50% !important;
+ }
+ .h-sm-75 {
+ height: 75% !important;
+ }
+ .h-sm-100 {
+ height: 100% !important;
+ }
+ .h-sm-auto {
+ height: auto !important;
+ }
+ .h-sm-1px {
+ height: 1px !important;
+ }
+ .h-sm-2px {
+ height: 2px !important;
+ }
+ .h-sm-3px {
+ height: 3px !important;
+ }
+ .h-sm-4px {
+ height: 4px !important;
+ }
+ .h-sm-5px {
+ height: 5px !important;
+ }
+ .h-sm-6px {
+ height: 6px !important;
+ }
+ .h-sm-7px {
+ height: 7px !important;
+ }
+ .h-sm-8px {
+ height: 8px !important;
+ }
+ .h-sm-9px {
+ height: 9px !important;
+ }
+ .h-sm-10px {
+ height: 10px !important;
+ }
+ .h-sm-15px {
+ height: 15px !important;
+ }
+ .h-sm-20px {
+ height: 20px !important;
+ }
+ .h-sm-25px {
+ height: 25px !important;
+ }
+ .h-sm-30px {
+ height: 30px !important;
+ }
+ .h-sm-35px {
+ height: 35px !important;
+ }
+ .h-sm-40px {
+ height: 40px !important;
+ }
+ .h-sm-45px {
+ height: 45px !important;
+ }
+ .h-sm-50px {
+ height: 50px !important;
+ }
+ .h-sm-55px {
+ height: 55px !important;
+ }
+ .h-sm-60px {
+ height: 60px !important;
+ }
+ .h-sm-65px {
+ height: 65px !important;
+ }
+ .h-sm-70px {
+ height: 70px !important;
+ }
+ .h-sm-75px {
+ height: 75px !important;
+ }
+ .h-sm-80px {
+ height: 80px !important;
+ }
+ .h-sm-85px {
+ height: 85px !important;
+ }
+ .h-sm-90px {
+ height: 90px !important;
+ }
+ .h-sm-95px {
+ height: 95px !important;
+ }
+ .h-sm-100px {
+ height: 100px !important;
+ }
+ .h-sm-125px {
+ height: 125px !important;
+ }
+ .h-sm-150px {
+ height: 150px !important;
+ }
+ .h-sm-175px {
+ height: 175px !important;
+ }
+ .h-sm-200px {
+ height: 200px !important;
+ }
+ .h-sm-225px {
+ height: 225px !important;
+ }
+ .h-sm-250px {
+ height: 250px !important;
+ }
+ .h-sm-275px {
+ height: 275px !important;
+ }
+ .h-sm-300px {
+ height: 300px !important;
+ }
+ .h-sm-325px {
+ height: 325px !important;
+ }
+ .h-sm-350px {
+ height: 350px !important;
+ }
+ .h-sm-375px {
+ height: 375px !important;
+ }
+ .h-sm-400px {
+ height: 400px !important;
+ }
+ .h-sm-425px {
+ height: 425px !important;
+ }
+ .h-sm-450px {
+ height: 450px !important;
+ }
+ .h-sm-475px {
+ height: 475px !important;
+ }
+ .h-sm-500px {
+ height: 500px !important;
+ }
+ .h-sm-550px {
+ height: 550px !important;
+ }
+ .h-sm-600px {
+ height: 600px !important;
+ }
+ .h-sm-650px {
+ height: 650px !important;
+ }
+ .h-sm-700px {
+ height: 700px !important;
+ }
+ .h-sm-750px {
+ height: 750px !important;
+ }
+ .h-sm-800px {
+ height: 800px !important;
+ }
+ .h-sm-850px {
+ height: 850px !important;
+ }
+ .h-sm-900px {
+ height: 900px !important;
+ }
+ .h-sm-950px {
+ height: 950px !important;
+ }
+ .h-sm-1000px {
+ height: 1000px !important;
+ }
+ .mh-sm-unset {
+ max-height: unset !important;
+ }
+ .mh-sm-25 {
+ max-height: 25% !important;
+ }
+ .mh-sm-50 {
+ max-height: 50% !important;
+ }
+ .mh-sm-75 {
+ max-height: 75% !important;
+ }
+ .mh-sm-100 {
+ max-height: 100% !important;
+ }
+ .mh-sm-auto {
+ max-height: auto !important;
+ }
+ .mh-sm-1px {
+ max-height: 1px !important;
+ }
+ .mh-sm-2px {
+ max-height: 2px !important;
+ }
+ .mh-sm-3px {
+ max-height: 3px !important;
+ }
+ .mh-sm-4px {
+ max-height: 4px !important;
+ }
+ .mh-sm-5px {
+ max-height: 5px !important;
+ }
+ .mh-sm-6px {
+ max-height: 6px !important;
+ }
+ .mh-sm-7px {
+ max-height: 7px !important;
+ }
+ .mh-sm-8px {
+ max-height: 8px !important;
+ }
+ .mh-sm-9px {
+ max-height: 9px !important;
+ }
+ .mh-sm-10px {
+ max-height: 10px !important;
+ }
+ .mh-sm-15px {
+ max-height: 15px !important;
+ }
+ .mh-sm-20px {
+ max-height: 20px !important;
+ }
+ .mh-sm-25px {
+ max-height: 25px !important;
+ }
+ .mh-sm-30px {
+ max-height: 30px !important;
+ }
+ .mh-sm-35px {
+ max-height: 35px !important;
+ }
+ .mh-sm-40px {
+ max-height: 40px !important;
+ }
+ .mh-sm-45px {
+ max-height: 45px !important;
+ }
+ .mh-sm-50px {
+ max-height: 50px !important;
+ }
+ .mh-sm-55px {
+ max-height: 55px !important;
+ }
+ .mh-sm-60px {
+ max-height: 60px !important;
+ }
+ .mh-sm-65px {
+ max-height: 65px !important;
+ }
+ .mh-sm-70px {
+ max-height: 70px !important;
+ }
+ .mh-sm-75px {
+ max-height: 75px !important;
+ }
+ .mh-sm-80px {
+ max-height: 80px !important;
+ }
+ .mh-sm-85px {
+ max-height: 85px !important;
+ }
+ .mh-sm-90px {
+ max-height: 90px !important;
+ }
+ .mh-sm-95px {
+ max-height: 95px !important;
+ }
+ .mh-sm-100px {
+ max-height: 100px !important;
+ }
+ .mh-sm-125px {
+ max-height: 125px !important;
+ }
+ .mh-sm-150px {
+ max-height: 150px !important;
+ }
+ .mh-sm-175px {
+ max-height: 175px !important;
+ }
+ .mh-sm-200px {
+ max-height: 200px !important;
+ }
+ .mh-sm-225px {
+ max-height: 225px !important;
+ }
+ .mh-sm-250px {
+ max-height: 250px !important;
+ }
+ .mh-sm-275px {
+ max-height: 275px !important;
+ }
+ .mh-sm-300px {
+ max-height: 300px !important;
+ }
+ .mh-sm-325px {
+ max-height: 325px !important;
+ }
+ .mh-sm-350px {
+ max-height: 350px !important;
+ }
+ .mh-sm-375px {
+ max-height: 375px !important;
+ }
+ .mh-sm-400px {
+ max-height: 400px !important;
+ }
+ .mh-sm-425px {
+ max-height: 425px !important;
+ }
+ .mh-sm-450px {
+ max-height: 450px !important;
+ }
+ .mh-sm-475px {
+ max-height: 475px !important;
+ }
+ .mh-sm-500px {
+ max-height: 500px !important;
+ }
+ .mh-sm-550px {
+ max-height: 550px !important;
+ }
+ .mh-sm-600px {
+ max-height: 600px !important;
+ }
+ .mh-sm-650px {
+ max-height: 650px !important;
+ }
+ .mh-sm-700px {
+ max-height: 700px !important;
+ }
+ .mh-sm-750px {
+ max-height: 750px !important;
+ }
+ .mh-sm-800px {
+ max-height: 800px !important;
+ }
+ .mh-sm-850px {
+ max-height: 850px !important;
+ }
+ .mh-sm-900px {
+ max-height: 900px !important;
+ }
+ .mh-sm-950px {
+ max-height: 950px !important;
+ }
+ .mh-sm-1000px {
+ max-height: 1000px !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: 0.25rem !important;
+ }
+ .m-sm-2 {
+ margin: 0.5rem !important;
+ }
+ .m-sm-3 {
+ margin: 0.75rem !important;
+ }
+ .m-sm-4 {
+ margin: 1rem !important;
+ }
+ .m-sm-5 {
+ margin: 1.25rem !important;
+ }
+ .m-sm-6 {
+ margin: 1.5rem !important;
+ }
+ .m-sm-7 {
+ margin: 1.75rem !important;
+ }
+ .m-sm-8 {
+ margin: 2rem !important;
+ }
+ .m-sm-9 {
+ margin: 2.25rem !important;
+ }
+ .m-sm-10 {
+ margin: 2.5rem !important;
+ }
+ .m-sm-11 {
+ margin: 2.75rem !important;
+ }
+ .m-sm-12 {
+ margin: 3rem !important;
+ }
+ .m-sm-13 {
+ margin: 3.25rem !important;
+ }
+ .m-sm-14 {
+ margin: 3.5rem !important;
+ }
+ .m-sm-15 {
+ margin: 3.75rem !important;
+ }
+ .m-sm-16 {
+ margin: 4rem !important;
+ }
+ .m-sm-17 {
+ margin: 4.25rem !important;
+ }
+ .m-sm-18 {
+ margin: 4.5rem !important;
+ }
+ .m-sm-19 {
+ margin: 4.75rem !important;
+ }
+ .m-sm-20 {
+ margin: 5rem !important;
+ }
+ .m-sm-auto {
+ margin: auto !important;
+ }
+ .mx-sm-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-sm-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-sm-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-sm-3 {
+ margin-right: 0.75rem !important;
+ margin-left: 0.75rem !important;
+ }
+ .mx-sm-4 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-sm-5 {
+ margin-right: 1.25rem !important;
+ margin-left: 1.25rem !important;
+ }
+ .mx-sm-6 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-sm-7 {
+ margin-right: 1.75rem !important;
+ margin-left: 1.75rem !important;
+ }
+ .mx-sm-8 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important;
+ }
+ .mx-sm-9 {
+ margin-right: 2.25rem !important;
+ margin-left: 2.25rem !important;
+ }
+ .mx-sm-10 {
+ margin-right: 2.5rem !important;
+ margin-left: 2.5rem !important;
+ }
+ .mx-sm-11 {
+ margin-right: 2.75rem !important;
+ margin-left: 2.75rem !important;
+ }
+ .mx-sm-12 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-sm-13 {
+ margin-right: 3.25rem !important;
+ margin-left: 3.25rem !important;
+ }
+ .mx-sm-14 {
+ margin-right: 3.5rem !important;
+ margin-left: 3.5rem !important;
+ }
+ .mx-sm-15 {
+ margin-right: 3.75rem !important;
+ margin-left: 3.75rem !important;
+ }
+ .mx-sm-16 {
+ margin-right: 4rem !important;
+ margin-left: 4rem !important;
+ }
+ .mx-sm-17 {
+ margin-right: 4.25rem !important;
+ margin-left: 4.25rem !important;
+ }
+ .mx-sm-18 {
+ margin-right: 4.5rem !important;
+ margin-left: 4.5rem !important;
+ }
+ .mx-sm-19 {
+ margin-right: 4.75rem !important;
+ margin-left: 4.75rem !important;
+ }
+ .mx-sm-20 {
+ margin-right: 5rem !important;
+ margin-left: 5rem !important;
+ }
+ .mx-sm-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-sm-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-sm-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-sm-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-sm-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+ }
+ .my-sm-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-sm-5 {
+ margin-top: 1.25rem !important;
+ margin-bottom: 1.25rem !important;
+ }
+ .my-sm-6 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-sm-7 {
+ margin-top: 1.75rem !important;
+ margin-bottom: 1.75rem !important;
+ }
+ .my-sm-8 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important;
+ }
+ .my-sm-9 {
+ margin-top: 2.25rem !important;
+ margin-bottom: 2.25rem !important;
+ }
+ .my-sm-10 {
+ margin-top: 2.5rem !important;
+ margin-bottom: 2.5rem !important;
+ }
+ .my-sm-11 {
+ margin-top: 2.75rem !important;
+ margin-bottom: 2.75rem !important;
+ }
+ .my-sm-12 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-sm-13 {
+ margin-top: 3.25rem !important;
+ margin-bottom: 3.25rem !important;
+ }
+ .my-sm-14 {
+ margin-top: 3.5rem !important;
+ margin-bottom: 3.5rem !important;
+ }
+ .my-sm-15 {
+ margin-top: 3.75rem !important;
+ margin-bottom: 3.75rem !important;
+ }
+ .my-sm-16 {
+ margin-top: 4rem !important;
+ margin-bottom: 4rem !important;
+ }
+ .my-sm-17 {
+ margin-top: 4.25rem !important;
+ margin-bottom: 4.25rem !important;
+ }
+ .my-sm-18 {
+ margin-top: 4.5rem !important;
+ margin-bottom: 4.5rem !important;
+ }
+ .my-sm-19 {
+ margin-top: 4.75rem !important;
+ margin-bottom: 4.75rem !important;
+ }
+ .my-sm-20 {
+ margin-top: 5rem !important;
+ margin-bottom: 5rem !important;
+ }
+ .my-sm-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-sm-0 {
+ margin-top: 0 !important;
+ }
+ .mt-sm-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-sm-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-sm-3 {
+ margin-top: 0.75rem !important;
+ }
+ .mt-sm-4 {
+ margin-top: 1rem !important;
+ }
+ .mt-sm-5 {
+ margin-top: 1.25rem !important;
+ }
+ .mt-sm-6 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-sm-7 {
+ margin-top: 1.75rem !important;
+ }
+ .mt-sm-8 {
+ margin-top: 2rem !important;
+ }
+ .mt-sm-9 {
+ margin-top: 2.25rem !important;
+ }
+ .mt-sm-10 {
+ margin-top: 2.5rem !important;
+ }
+ .mt-sm-11 {
+ margin-top: 2.75rem !important;
+ }
+ .mt-sm-12 {
+ margin-top: 3rem !important;
+ }
+ .mt-sm-13 {
+ margin-top: 3.25rem !important;
+ }
+ .mt-sm-14 {
+ margin-top: 3.5rem !important;
+ }
+ .mt-sm-15 {
+ margin-top: 3.75rem !important;
+ }
+ .mt-sm-16 {
+ margin-top: 4rem !important;
+ }
+ .mt-sm-17 {
+ margin-top: 4.25rem !important;
+ }
+ .mt-sm-18 {
+ margin-top: 4.5rem !important;
+ }
+ .mt-sm-19 {
+ margin-top: 4.75rem !important;
+ }
+ .mt-sm-20 {
+ margin-top: 5rem !important;
+ }
+ .mt-sm-auto {
+ margin-top: auto !important;
+ }
+ .me-sm-0 {
+ margin-right: 0 !important;
+ }
+ .me-sm-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-sm-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-sm-3 {
+ margin-right: 0.75rem !important;
+ }
+ .me-sm-4 {
+ margin-right: 1rem !important;
+ }
+ .me-sm-5 {
+ margin-right: 1.25rem !important;
+ }
+ .me-sm-6 {
+ margin-right: 1.5rem !important;
+ }
+ .me-sm-7 {
+ margin-right: 1.75rem !important;
+ }
+ .me-sm-8 {
+ margin-right: 2rem !important;
+ }
+ .me-sm-9 {
+ margin-right: 2.25rem !important;
+ }
+ .me-sm-10 {
+ margin-right: 2.5rem !important;
+ }
+ .me-sm-11 {
+ margin-right: 2.75rem !important;
+ }
+ .me-sm-12 {
+ margin-right: 3rem !important;
+ }
+ .me-sm-13 {
+ margin-right: 3.25rem !important;
+ }
+ .me-sm-14 {
+ margin-right: 3.5rem !important;
+ }
+ .me-sm-15 {
+ margin-right: 3.75rem !important;
+ }
+ .me-sm-16 {
+ margin-right: 4rem !important;
+ }
+ .me-sm-17 {
+ margin-right: 4.25rem !important;
+ }
+ .me-sm-18 {
+ margin-right: 4.5rem !important;
+ }
+ .me-sm-19 {
+ margin-right: 4.75rem !important;
+ }
+ .me-sm-20 {
+ margin-right: 5rem !important;
+ }
+ .me-sm-auto {
+ margin-right: auto !important;
+ }
+ .mb-sm-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-sm-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-sm-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-sm-3 {
+ margin-bottom: 0.75rem !important;
+ }
+ .mb-sm-4 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-sm-5 {
+ margin-bottom: 1.25rem !important;
+ }
+ .mb-sm-6 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-sm-7 {
+ margin-bottom: 1.75rem !important;
+ }
+ .mb-sm-8 {
+ margin-bottom: 2rem !important;
+ }
+ .mb-sm-9 {
+ margin-bottom: 2.25rem !important;
+ }
+ .mb-sm-10 {
+ margin-bottom: 2.5rem !important;
+ }
+ .mb-sm-11 {
+ margin-bottom: 2.75rem !important;
+ }
+ .mb-sm-12 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-sm-13 {
+ margin-bottom: 3.25rem !important;
+ }
+ .mb-sm-14 {
+ margin-bottom: 3.5rem !important;
+ }
+ .mb-sm-15 {
+ margin-bottom: 3.75rem !important;
+ }
+ .mb-sm-16 {
+ margin-bottom: 4rem !important;
+ }
+ .mb-sm-17 {
+ margin-bottom: 4.25rem !important;
+ }
+ .mb-sm-18 {
+ margin-bottom: 4.5rem !important;
+ }
+ .mb-sm-19 {
+ margin-bottom: 4.75rem !important;
+ }
+ .mb-sm-20 {
+ margin-bottom: 5rem !important;
+ }
+ .mb-sm-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-sm-0 {
+ margin-left: 0 !important;
+ }
+ .ms-sm-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-sm-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-sm-3 {
+ margin-left: 0.75rem !important;
+ }
+ .ms-sm-4 {
+ margin-left: 1rem !important;
+ }
+ .ms-sm-5 {
+ margin-left: 1.25rem !important;
+ }
+ .ms-sm-6 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-sm-7 {
+ margin-left: 1.75rem !important;
+ }
+ .ms-sm-8 {
+ margin-left: 2rem !important;
+ }
+ .ms-sm-9 {
+ margin-left: 2.25rem !important;
+ }
+ .ms-sm-10 {
+ margin-left: 2.5rem !important;
+ }
+ .ms-sm-11 {
+ margin-left: 2.75rem !important;
+ }
+ .ms-sm-12 {
+ margin-left: 3rem !important;
+ }
+ .ms-sm-13 {
+ margin-left: 3.25rem !important;
+ }
+ .ms-sm-14 {
+ margin-left: 3.5rem !important;
+ }
+ .ms-sm-15 {
+ margin-left: 3.75rem !important;
+ }
+ .ms-sm-16 {
+ margin-left: 4rem !important;
+ }
+ .ms-sm-17 {
+ margin-left: 4.25rem !important;
+ }
+ .ms-sm-18 {
+ margin-left: 4.5rem !important;
+ }
+ .ms-sm-19 {
+ margin-left: 4.75rem !important;
+ }
+ .ms-sm-20 {
+ margin-left: 5rem !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: -0.75rem !important;
+ }
+ .m-sm-n4 {
+ margin: -1rem !important;
+ }
+ .m-sm-n5 {
+ margin: -1.25rem !important;
+ }
+ .m-sm-n6 {
+ margin: -1.5rem !important;
+ }
+ .m-sm-n7 {
+ margin: -1.75rem !important;
+ }
+ .m-sm-n8 {
+ margin: -2rem !important;
+ }
+ .m-sm-n9 {
+ margin: -2.25rem !important;
+ }
+ .m-sm-n10 {
+ margin: -2.5rem !important;
+ }
+ .m-sm-n11 {
+ margin: -2.75rem !important;
+ }
+ .m-sm-n12 {
+ margin: -3rem !important;
+ }
+ .m-sm-n13 {
+ margin: -3.25rem !important;
+ }
+ .m-sm-n14 {
+ margin: -3.5rem !important;
+ }
+ .m-sm-n15 {
+ margin: -3.75rem !important;
+ }
+ .m-sm-n16 {
+ margin: -4rem !important;
+ }
+ .m-sm-n17 {
+ margin: -4.25rem !important;
+ }
+ .m-sm-n18 {
+ margin: -4.5rem !important;
+ }
+ .m-sm-n19 {
+ margin: -4.75rem !important;
+ }
+ .m-sm-n20 {
+ margin: -5rem !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: -0.75rem !important;
+ margin-left: -0.75rem !important;
+ }
+ .mx-sm-n4 {
+ margin-right: -1rem !important;
+ margin-left: -1rem !important;
+ }
+ .mx-sm-n5 {
+ margin-right: -1.25rem !important;
+ margin-left: -1.25rem !important;
+ }
+ .mx-sm-n6 {
+ margin-right: -1.5rem !important;
+ margin-left: -1.5rem !important;
+ }
+ .mx-sm-n7 {
+ margin-right: -1.75rem !important;
+ margin-left: -1.75rem !important;
+ }
+ .mx-sm-n8 {
+ margin-right: -2rem !important;
+ margin-left: -2rem !important;
+ }
+ .mx-sm-n9 {
+ margin-right: -2.25rem !important;
+ margin-left: -2.25rem !important;
+ }
+ .mx-sm-n10 {
+ margin-right: -2.5rem !important;
+ margin-left: -2.5rem !important;
+ }
+ .mx-sm-n11 {
+ margin-right: -2.75rem !important;
+ margin-left: -2.75rem !important;
+ }
+ .mx-sm-n12 {
+ margin-right: -3rem !important;
+ margin-left: -3rem !important;
+ }
+ .mx-sm-n13 {
+ margin-right: -3.25rem !important;
+ margin-left: -3.25rem !important;
+ }
+ .mx-sm-n14 {
+ margin-right: -3.5rem !important;
+ margin-left: -3.5rem !important;
+ }
+ .mx-sm-n15 {
+ margin-right: -3.75rem !important;
+ margin-left: -3.75rem !important;
+ }
+ .mx-sm-n16 {
+ margin-right: -4rem !important;
+ margin-left: -4rem !important;
+ }
+ .mx-sm-n17 {
+ margin-right: -4.25rem !important;
+ margin-left: -4.25rem !important;
+ }
+ .mx-sm-n18 {
+ margin-right: -4.5rem !important;
+ margin-left: -4.5rem !important;
+ }
+ .mx-sm-n19 {
+ margin-right: -4.75rem !important;
+ margin-left: -4.75rem !important;
+ }
+ .mx-sm-n20 {
+ margin-right: -5rem !important;
+ margin-left: -5rem !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: -0.75rem !important;
+ margin-bottom: -0.75rem !important;
+ }
+ .my-sm-n4 {
+ margin-top: -1rem !important;
+ margin-bottom: -1rem !important;
+ }
+ .my-sm-n5 {
+ margin-top: -1.25rem !important;
+ margin-bottom: -1.25rem !important;
+ }
+ .my-sm-n6 {
+ margin-top: -1.5rem !important;
+ margin-bottom: -1.5rem !important;
+ }
+ .my-sm-n7 {
+ margin-top: -1.75rem !important;
+ margin-bottom: -1.75rem !important;
+ }
+ .my-sm-n8 {
+ margin-top: -2rem !important;
+ margin-bottom: -2rem !important;
+ }
+ .my-sm-n9 {
+ margin-top: -2.25rem !important;
+ margin-bottom: -2.25rem !important;
+ }
+ .my-sm-n10 {
+ margin-top: -2.5rem !important;
+ margin-bottom: -2.5rem !important;
+ }
+ .my-sm-n11 {
+ margin-top: -2.75rem !important;
+ margin-bottom: -2.75rem !important;
+ }
+ .my-sm-n12 {
+ margin-top: -3rem !important;
+ margin-bottom: -3rem !important;
+ }
+ .my-sm-n13 {
+ margin-top: -3.25rem !important;
+ margin-bottom: -3.25rem !important;
+ }
+ .my-sm-n14 {
+ margin-top: -3.5rem !important;
+ margin-bottom: -3.5rem !important;
+ }
+ .my-sm-n15 {
+ margin-top: -3.75rem !important;
+ margin-bottom: -3.75rem !important;
+ }
+ .my-sm-n16 {
+ margin-top: -4rem !important;
+ margin-bottom: -4rem !important;
+ }
+ .my-sm-n17 {
+ margin-top: -4.25rem !important;
+ margin-bottom: -4.25rem !important;
+ }
+ .my-sm-n18 {
+ margin-top: -4.5rem !important;
+ margin-bottom: -4.5rem !important;
+ }
+ .my-sm-n19 {
+ margin-top: -4.75rem !important;
+ margin-bottom: -4.75rem !important;
+ }
+ .my-sm-n20 {
+ margin-top: -5rem !important;
+ margin-bottom: -5rem !important;
+ }
+ .mt-sm-n1 {
+ margin-top: -0.25rem !important;
+ }
+ .mt-sm-n2 {
+ margin-top: -0.5rem !important;
+ }
+ .mt-sm-n3 {
+ margin-top: -0.75rem !important;
+ }
+ .mt-sm-n4 {
+ margin-top: -1rem !important;
+ }
+ .mt-sm-n5 {
+ margin-top: -1.25rem !important;
+ }
+ .mt-sm-n6 {
+ margin-top: -1.5rem !important;
+ }
+ .mt-sm-n7 {
+ margin-top: -1.75rem !important;
+ }
+ .mt-sm-n8 {
+ margin-top: -2rem !important;
+ }
+ .mt-sm-n9 {
+ margin-top: -2.25rem !important;
+ }
+ .mt-sm-n10 {
+ margin-top: -2.5rem !important;
+ }
+ .mt-sm-n11 {
+ margin-top: -2.75rem !important;
+ }
+ .mt-sm-n12 {
+ margin-top: -3rem !important;
+ }
+ .mt-sm-n13 {
+ margin-top: -3.25rem !important;
+ }
+ .mt-sm-n14 {
+ margin-top: -3.5rem !important;
+ }
+ .mt-sm-n15 {
+ margin-top: -3.75rem !important;
+ }
+ .mt-sm-n16 {
+ margin-top: -4rem !important;
+ }
+ .mt-sm-n17 {
+ margin-top: -4.25rem !important;
+ }
+ .mt-sm-n18 {
+ margin-top: -4.5rem !important;
+ }
+ .mt-sm-n19 {
+ margin-top: -4.75rem !important;
+ }
+ .mt-sm-n20 {
+ margin-top: -5rem !important;
+ }
+ .me-sm-n1 {
+ margin-right: -0.25rem !important;
+ }
+ .me-sm-n2 {
+ margin-right: -0.5rem !important;
+ }
+ .me-sm-n3 {
+ margin-right: -0.75rem !important;
+ }
+ .me-sm-n4 {
+ margin-right: -1rem !important;
+ }
+ .me-sm-n5 {
+ margin-right: -1.25rem !important;
+ }
+ .me-sm-n6 {
+ margin-right: -1.5rem !important;
+ }
+ .me-sm-n7 {
+ margin-right: -1.75rem !important;
+ }
+ .me-sm-n8 {
+ margin-right: -2rem !important;
+ }
+ .me-sm-n9 {
+ margin-right: -2.25rem !important;
+ }
+ .me-sm-n10 {
+ margin-right: -2.5rem !important;
+ }
+ .me-sm-n11 {
+ margin-right: -2.75rem !important;
+ }
+ .me-sm-n12 {
+ margin-right: -3rem !important;
+ }
+ .me-sm-n13 {
+ margin-right: -3.25rem !important;
+ }
+ .me-sm-n14 {
+ margin-right: -3.5rem !important;
+ }
+ .me-sm-n15 {
+ margin-right: -3.75rem !important;
+ }
+ .me-sm-n16 {
+ margin-right: -4rem !important;
+ }
+ .me-sm-n17 {
+ margin-right: -4.25rem !important;
+ }
+ .me-sm-n18 {
+ margin-right: -4.5rem !important;
+ }
+ .me-sm-n19 {
+ margin-right: -4.75rem !important;
+ }
+ .me-sm-n20 {
+ margin-right: -5rem !important;
+ }
+ .mb-sm-n1 {
+ margin-bottom: -0.25rem !important;
+ }
+ .mb-sm-n2 {
+ margin-bottom: -0.5rem !important;
+ }
+ .mb-sm-n3 {
+ margin-bottom: -0.75rem !important;
+ }
+ .mb-sm-n4 {
+ margin-bottom: -1rem !important;
+ }
+ .mb-sm-n5 {
+ margin-bottom: -1.25rem !important;
+ }
+ .mb-sm-n6 {
+ margin-bottom: -1.5rem !important;
+ }
+ .mb-sm-n7 {
+ margin-bottom: -1.75rem !important;
+ }
+ .mb-sm-n8 {
+ margin-bottom: -2rem !important;
+ }
+ .mb-sm-n9 {
+ margin-bottom: -2.25rem !important;
+ }
+ .mb-sm-n10 {
+ margin-bottom: -2.5rem !important;
+ }
+ .mb-sm-n11 {
+ margin-bottom: -2.75rem !important;
+ }
+ .mb-sm-n12 {
+ margin-bottom: -3rem !important;
+ }
+ .mb-sm-n13 {
+ margin-bottom: -3.25rem !important;
+ }
+ .mb-sm-n14 {
+ margin-bottom: -3.5rem !important;
+ }
+ .mb-sm-n15 {
+ margin-bottom: -3.75rem !important;
+ }
+ .mb-sm-n16 {
+ margin-bottom: -4rem !important;
+ }
+ .mb-sm-n17 {
+ margin-bottom: -4.25rem !important;
+ }
+ .mb-sm-n18 {
+ margin-bottom: -4.5rem !important;
+ }
+ .mb-sm-n19 {
+ margin-bottom: -4.75rem !important;
+ }
+ .mb-sm-n20 {
+ margin-bottom: -5rem !important;
+ }
+ .ms-sm-n1 {
+ margin-left: -0.25rem !important;
+ }
+ .ms-sm-n2 {
+ margin-left: -0.5rem !important;
+ }
+ .ms-sm-n3 {
+ margin-left: -0.75rem !important;
+ }
+ .ms-sm-n4 {
+ margin-left: -1rem !important;
+ }
+ .ms-sm-n5 {
+ margin-left: -1.25rem !important;
+ }
+ .ms-sm-n6 {
+ margin-left: -1.5rem !important;
+ }
+ .ms-sm-n7 {
+ margin-left: -1.75rem !important;
+ }
+ .ms-sm-n8 {
+ margin-left: -2rem !important;
+ }
+ .ms-sm-n9 {
+ margin-left: -2.25rem !important;
+ }
+ .ms-sm-n10 {
+ margin-left: -2.5rem !important;
+ }
+ .ms-sm-n11 {
+ margin-left: -2.75rem !important;
+ }
+ .ms-sm-n12 {
+ margin-left: -3rem !important;
+ }
+ .ms-sm-n13 {
+ margin-left: -3.25rem !important;
+ }
+ .ms-sm-n14 {
+ margin-left: -3.5rem !important;
+ }
+ .ms-sm-n15 {
+ margin-left: -3.75rem !important;
+ }
+ .ms-sm-n16 {
+ margin-left: -4rem !important;
+ }
+ .ms-sm-n17 {
+ margin-left: -4.25rem !important;
+ }
+ .ms-sm-n18 {
+ margin-left: -4.5rem !important;
+ }
+ .ms-sm-n19 {
+ margin-left: -4.75rem !important;
+ }
+ .ms-sm-n20 {
+ margin-left: -5rem !important;
+ }
+ .p-sm-0 {
+ padding: 0 !important;
+ }
+ .p-sm-1 {
+ padding: 0.25rem !important;
+ }
+ .p-sm-2 {
+ padding: 0.5rem !important;
+ }
+ .p-sm-3 {
+ padding: 0.75rem !important;
+ }
+ .p-sm-4 {
+ padding: 1rem !important;
+ }
+ .p-sm-5 {
+ padding: 1.25rem !important;
+ }
+ .p-sm-6 {
+ padding: 1.5rem !important;
+ }
+ .p-sm-7 {
+ padding: 1.75rem !important;
+ }
+ .p-sm-8 {
+ padding: 2rem !important;
+ }
+ .p-sm-9 {
+ padding: 2.25rem !important;
+ }
+ .p-sm-10 {
+ padding: 2.5rem !important;
+ }
+ .p-sm-11 {
+ padding: 2.75rem !important;
+ }
+ .p-sm-12 {
+ padding: 3rem !important;
+ }
+ .p-sm-13 {
+ padding: 3.25rem !important;
+ }
+ .p-sm-14 {
+ padding: 3.5rem !important;
+ }
+ .p-sm-15 {
+ padding: 3.75rem !important;
+ }
+ .p-sm-16 {
+ padding: 4rem !important;
+ }
+ .p-sm-17 {
+ padding: 4.25rem !important;
+ }
+ .p-sm-18 {
+ padding: 4.5rem !important;
+ }
+ .p-sm-19 {
+ padding: 4.75rem !important;
+ }
+ .p-sm-20 {
+ padding: 5rem !important;
+ }
+ .px-sm-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-sm-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-sm-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-sm-3 {
+ padding-right: 0.75rem !important;
+ padding-left: 0.75rem !important;
+ }
+ .px-sm-4 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-sm-5 {
+ padding-right: 1.25rem !important;
+ padding-left: 1.25rem !important;
+ }
+ .px-sm-6 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-sm-7 {
+ padding-right: 1.75rem !important;
+ padding-left: 1.75rem !important;
+ }
+ .px-sm-8 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important;
+ }
+ .px-sm-9 {
+ padding-right: 2.25rem !important;
+ padding-left: 2.25rem !important;
+ }
+ .px-sm-10 {
+ padding-right: 2.5rem !important;
+ padding-left: 2.5rem !important;
+ }
+ .px-sm-11 {
+ padding-right: 2.75rem !important;
+ padding-left: 2.75rem !important;
+ }
+ .px-sm-12 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .px-sm-13 {
+ padding-right: 3.25rem !important;
+ padding-left: 3.25rem !important;
+ }
+ .px-sm-14 {
+ padding-right: 3.5rem !important;
+ padding-left: 3.5rem !important;
+ }
+ .px-sm-15 {
+ padding-right: 3.75rem !important;
+ padding-left: 3.75rem !important;
+ }
+ .px-sm-16 {
+ padding-right: 4rem !important;
+ padding-left: 4rem !important;
+ }
+ .px-sm-17 {
+ padding-right: 4.25rem !important;
+ padding-left: 4.25rem !important;
+ }
+ .px-sm-18 {
+ padding-right: 4.5rem !important;
+ padding-left: 4.5rem !important;
+ }
+ .px-sm-19 {
+ padding-right: 4.75rem !important;
+ padding-left: 4.75rem !important;
+ }
+ .px-sm-20 {
+ padding-right: 5rem !important;
+ padding-left: 5rem !important;
+ }
+ .py-sm-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-sm-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-sm-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-sm-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+ }
+ .py-sm-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-sm-5 {
+ padding-top: 1.25rem !important;
+ padding-bottom: 1.25rem !important;
+ }
+ .py-sm-6 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-sm-7 {
+ padding-top: 1.75rem !important;
+ padding-bottom: 1.75rem !important;
+ }
+ .py-sm-8 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+ }
+ .py-sm-9 {
+ padding-top: 2.25rem !important;
+ padding-bottom: 2.25rem !important;
+ }
+ .py-sm-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+ }
+ .py-sm-11 {
+ padding-top: 2.75rem !important;
+ padding-bottom: 2.75rem !important;
+ }
+ .py-sm-12 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .py-sm-13 {
+ padding-top: 3.25rem !important;
+ padding-bottom: 3.25rem !important;
+ }
+ .py-sm-14 {
+ padding-top: 3.5rem !important;
+ padding-bottom: 3.5rem !important;
+ }
+ .py-sm-15 {
+ padding-top: 3.75rem !important;
+ padding-bottom: 3.75rem !important;
+ }
+ .py-sm-16 {
+ padding-top: 4rem !important;
+ padding-bottom: 4rem !important;
+ }
+ .py-sm-17 {
+ padding-top: 4.25rem !important;
+ padding-bottom: 4.25rem !important;
+ }
+ .py-sm-18 {
+ padding-top: 4.5rem !important;
+ padding-bottom: 4.5rem !important;
+ }
+ .py-sm-19 {
+ padding-top: 4.75rem !important;
+ padding-bottom: 4.75rem !important;
+ }
+ .py-sm-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+ .pt-sm-0 {
+ padding-top: 0 !important;
+ }
+ .pt-sm-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-sm-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-sm-3 {
+ padding-top: 0.75rem !important;
+ }
+ .pt-sm-4 {
+ padding-top: 1rem !important;
+ }
+ .pt-sm-5 {
+ padding-top: 1.25rem !important;
+ }
+ .pt-sm-6 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-sm-7 {
+ padding-top: 1.75rem !important;
+ }
+ .pt-sm-8 {
+ padding-top: 2rem !important;
+ }
+ .pt-sm-9 {
+ padding-top: 2.25rem !important;
+ }
+ .pt-sm-10 {
+ padding-top: 2.5rem !important;
+ }
+ .pt-sm-11 {
+ padding-top: 2.75rem !important;
+ }
+ .pt-sm-12 {
+ padding-top: 3rem !important;
+ }
+ .pt-sm-13 {
+ padding-top: 3.25rem !important;
+ }
+ .pt-sm-14 {
+ padding-top: 3.5rem !important;
+ }
+ .pt-sm-15 {
+ padding-top: 3.75rem !important;
+ }
+ .pt-sm-16 {
+ padding-top: 4rem !important;
+ }
+ .pt-sm-17 {
+ padding-top: 4.25rem !important;
+ }
+ .pt-sm-18 {
+ padding-top: 4.5rem !important;
+ }
+ .pt-sm-19 {
+ padding-top: 4.75rem !important;
+ }
+ .pt-sm-20 {
+ padding-top: 5rem !important;
+ }
+ .pe-sm-0 {
+ padding-right: 0 !important;
+ }
+ .pe-sm-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-sm-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-sm-3 {
+ padding-right: 0.75rem !important;
+ }
+ .pe-sm-4 {
+ padding-right: 1rem !important;
+ }
+ .pe-sm-5 {
+ padding-right: 1.25rem !important;
+ }
+ .pe-sm-6 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-sm-7 {
+ padding-right: 1.75rem !important;
+ }
+ .pe-sm-8 {
+ padding-right: 2rem !important;
+ }
+ .pe-sm-9 {
+ padding-right: 2.25rem !important;
+ }
+ .pe-sm-10 {
+ padding-right: 2.5rem !important;
+ }
+ .pe-sm-11 {
+ padding-right: 2.75rem !important;
+ }
+ .pe-sm-12 {
+ padding-right: 3rem !important;
+ }
+ .pe-sm-13 {
+ padding-right: 3.25rem !important;
+ }
+ .pe-sm-14 {
+ padding-right: 3.5rem !important;
+ }
+ .pe-sm-15 {
+ padding-right: 3.75rem !important;
+ }
+ .pe-sm-16 {
+ padding-right: 4rem !important;
+ }
+ .pe-sm-17 {
+ padding-right: 4.25rem !important;
+ }
+ .pe-sm-18 {
+ padding-right: 4.5rem !important;
+ }
+ .pe-sm-19 {
+ padding-right: 4.75rem !important;
+ }
+ .pe-sm-20 {
+ padding-right: 5rem !important;
+ }
+ .pb-sm-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-sm-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-sm-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-sm-3 {
+ padding-bottom: 0.75rem !important;
+ }
+ .pb-sm-4 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-sm-5 {
+ padding-bottom: 1.25rem !important;
+ }
+ .pb-sm-6 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-sm-7 {
+ padding-bottom: 1.75rem !important;
+ }
+ .pb-sm-8 {
+ padding-bottom: 2rem !important;
+ }
+ .pb-sm-9 {
+ padding-bottom: 2.25rem !important;
+ }
+ .pb-sm-10 {
+ padding-bottom: 2.5rem !important;
+ }
+ .pb-sm-11 {
+ padding-bottom: 2.75rem !important;
+ }
+ .pb-sm-12 {
+ padding-bottom: 3rem !important;
+ }
+ .pb-sm-13 {
+ padding-bottom: 3.25rem !important;
+ }
+ .pb-sm-14 {
+ padding-bottom: 3.5rem !important;
+ }
+ .pb-sm-15 {
+ padding-bottom: 3.75rem !important;
+ }
+ .pb-sm-16 {
+ padding-bottom: 4rem !important;
+ }
+ .pb-sm-17 {
+ padding-bottom: 4.25rem !important;
+ }
+ .pb-sm-18 {
+ padding-bottom: 4.5rem !important;
+ }
+ .pb-sm-19 {
+ padding-bottom: 4.75rem !important;
+ }
+ .pb-sm-20 {
+ padding-bottom: 5rem !important;
+ }
+ .ps-sm-0 {
+ padding-left: 0 !important;
+ }
+ .ps-sm-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-sm-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-sm-3 {
+ padding-left: 0.75rem !important;
+ }
+ .ps-sm-4 {
+ padding-left: 1rem !important;
+ }
+ .ps-sm-5 {
+ padding-left: 1.25rem !important;
+ }
+ .ps-sm-6 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-sm-7 {
+ padding-left: 1.75rem !important;
+ }
+ .ps-sm-8 {
+ padding-left: 2rem !important;
+ }
+ .ps-sm-9 {
+ padding-left: 2.25rem !important;
+ }
+ .ps-sm-10 {
+ padding-left: 2.5rem !important;
+ }
+ .ps-sm-11 {
+ padding-left: 2.75rem !important;
+ }
+ .ps-sm-12 {
+ padding-left: 3rem !important;
+ }
+ .ps-sm-13 {
+ padding-left: 3.25rem !important;
+ }
+ .ps-sm-14 {
+ padding-left: 3.5rem !important;
+ }
+ .ps-sm-15 {
+ padding-left: 3.75rem !important;
+ }
+ .ps-sm-16 {
+ padding-left: 4rem !important;
+ }
+ .ps-sm-17 {
+ padding-left: 4.25rem !important;
+ }
+ .ps-sm-18 {
+ padding-left: 4.5rem !important;
+ }
+ .ps-sm-19 {
+ padding-left: 4.75rem !important;
+ }
+ .ps-sm-20 {
+ padding-left: 5rem !important;
+ }
+ .gap-sm-0 {
+ gap: 0 !important;
+ }
+ .gap-sm-1 {
+ gap: 0.25rem !important;
+ }
+ .gap-sm-2 {
+ gap: 0.5rem !important;
+ }
+ .gap-sm-3 {
+ gap: 0.75rem !important;
+ }
+ .gap-sm-4 {
+ gap: 1rem !important;
+ }
+ .gap-sm-5 {
+ gap: 1.25rem !important;
+ }
+ .gap-sm-6 {
+ gap: 1.5rem !important;
+ }
+ .gap-sm-7 {
+ gap: 1.75rem !important;
+ }
+ .gap-sm-8 {
+ gap: 2rem !important;
+ }
+ .gap-sm-9 {
+ gap: 2.25rem !important;
+ }
+ .gap-sm-10 {
+ gap: 2.5rem !important;
+ }
+ .gap-sm-11 {
+ gap: 2.75rem !important;
+ }
+ .gap-sm-12 {
+ gap: 3rem !important;
+ }
+ .gap-sm-13 {
+ gap: 3.25rem !important;
+ }
+ .gap-sm-14 {
+ gap: 3.5rem !important;
+ }
+ .gap-sm-15 {
+ gap: 3.75rem !important;
+ }
+ .gap-sm-16 {
+ gap: 4rem !important;
+ }
+ .gap-sm-17 {
+ gap: 4.25rem !important;
+ }
+ .gap-sm-18 {
+ gap: 4.5rem !important;
+ }
+ .gap-sm-19 {
+ gap: 4.75rem !important;
+ }
+ .gap-sm-20 {
+ gap: 5rem !important;
+ }
+ .row-gap-sm-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-sm-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-sm-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-sm-3 {
+ row-gap: 0.75rem !important;
+ }
+ .row-gap-sm-4 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-sm-5 {
+ row-gap: 1.25rem !important;
+ }
+ .row-gap-sm-6 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-sm-7 {
+ row-gap: 1.75rem !important;
+ }
+ .row-gap-sm-8 {
+ row-gap: 2rem !important;
+ }
+ .row-gap-sm-9 {
+ row-gap: 2.25rem !important;
+ }
+ .row-gap-sm-10 {
+ row-gap: 2.5rem !important;
+ }
+ .row-gap-sm-11 {
+ row-gap: 2.75rem !important;
+ }
+ .row-gap-sm-12 {
+ row-gap: 3rem !important;
+ }
+ .row-gap-sm-13 {
+ row-gap: 3.25rem !important;
+ }
+ .row-gap-sm-14 {
+ row-gap: 3.5rem !important;
+ }
+ .row-gap-sm-15 {
+ row-gap: 3.75rem !important;
+ }
+ .row-gap-sm-16 {
+ row-gap: 4rem !important;
+ }
+ .row-gap-sm-17 {
+ row-gap: 4.25rem !important;
+ }
+ .row-gap-sm-18 {
+ row-gap: 4.5rem !important;
+ }
+ .row-gap-sm-19 {
+ row-gap: 4.75rem !important;
+ }
+ .row-gap-sm-20 {
+ row-gap: 5rem !important;
+ }
+ .column-gap-sm-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-sm-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-sm-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-sm-3 {
+ column-gap: 0.75rem !important;
+ }
+ .column-gap-sm-4 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-sm-5 {
+ column-gap: 1.25rem !important;
+ }
+ .column-gap-sm-6 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-sm-7 {
+ column-gap: 1.75rem !important;
+ }
+ .column-gap-sm-8 {
+ column-gap: 2rem !important;
+ }
+ .column-gap-sm-9 {
+ column-gap: 2.25rem !important;
+ }
+ .column-gap-sm-10 {
+ column-gap: 2.5rem !important;
+ }
+ .column-gap-sm-11 {
+ column-gap: 2.75rem !important;
+ }
+ .column-gap-sm-12 {
+ column-gap: 3rem !important;
+ }
+ .column-gap-sm-13 {
+ column-gap: 3.25rem !important;
+ }
+ .column-gap-sm-14 {
+ column-gap: 3.5rem !important;
+ }
+ .column-gap-sm-15 {
+ column-gap: 3.75rem !important;
+ }
+ .column-gap-sm-16 {
+ column-gap: 4rem !important;
+ }
+ .column-gap-sm-17 {
+ column-gap: 4.25rem !important;
+ }
+ .column-gap-sm-18 {
+ column-gap: 4.5rem !important;
+ }
+ .column-gap-sm-19 {
+ column-gap: 4.75rem !important;
+ }
+ .column-gap-sm-20 {
+ column-gap: 5rem !important;
+ }
+ .fs-sm-1 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+ }
+ .fs-sm-2 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+ }
+ .fs-sm-3 {
+ font-size: calc(1.26rem + 0.12vw) !important;
+ }
+ .fs-sm-4 {
+ font-size: 1.25rem !important;
+ }
+ .fs-sm-5 {
+ font-size: 1.15rem !important;
+ }
+ .fs-sm-6 {
+ font-size: 1.075rem !important;
+ }
+ .fs-sm-7 {
+ font-size: 0.95rem !important;
+ }
+ .fs-sm-8 {
+ font-size: 0.85rem !important;
+ }
+ .fs-sm-9 {
+ font-size: 0.75rem !important;
+ }
+ .fs-sm-10 {
+ font-size: 0.5rem !important;
+ }
+ .fs-sm-base {
+ font-size: 1rem !important;
+ }
+ .fs-sm-fluid {
+ font-size: 100% !important;
+ }
+ .fs-sm-2x {
+ font-size: calc(1.325rem + 0.9vw) !important;
+ }
+ .fs-sm-2qx {
+ font-size: calc(1.35rem + 1.2vw) !important;
+ }
+ .fs-sm-2hx {
+ font-size: calc(1.375rem + 1.5vw) !important;
+ }
+ .fs-sm-2tx {
+ font-size: calc(1.4rem + 1.8vw) !important;
+ }
+ .fs-sm-3x {
+ font-size: calc(1.425rem + 2.1vw) !important;
+ }
+ .fs-sm-3qx {
+ font-size: calc(1.45rem + 2.4vw) !important;
+ }
+ .fs-sm-3hx {
+ font-size: calc(1.475rem + 2.7vw) !important;
+ }
+ .fs-sm-3tx {
+ font-size: calc(1.5rem + 3vw) !important;
+ }
+ .fs-sm-4x {
+ font-size: calc(1.525rem + 3.3vw) !important;
+ }
+ .fs-sm-4qx {
+ font-size: calc(1.55rem + 3.6vw) !important;
+ }
+ .fs-sm-4hx {
+ font-size: calc(1.575rem + 3.9vw) !important;
+ }
+ .fs-sm-4tx {
+ font-size: calc(1.6rem + 4.2vw) !important;
+ }
+ .fs-sm-5x {
+ font-size: calc(1.625rem + 4.5vw) !important;
+ }
+ .fs-sm-5qx {
+ font-size: calc(1.65rem + 4.8vw) !important;
+ }
+ .fs-sm-5hx {
+ font-size: calc(1.675rem + 5.1vw) !important;
+ }
+ .fs-sm-5tx {
+ font-size: calc(1.7rem + 5.4vw) !important;
+ }
+ .text-sm-start {
+ text-align: left !important;
+ }
+ .text-sm-end {
+ text-align: right !important;
+ }
+ .text-sm-center {
+ text-align: center !important;
+ }
+ .min-w-sm-unset {
+ min-width: unset !important;
+ }
+ .min-w-sm-25 {
+ min-width: 25% !important;
+ }
+ .min-w-sm-50 {
+ min-width: 50% !important;
+ }
+ .min-w-sm-75 {
+ min-width: 75% !important;
+ }
+ .min-w-sm-100 {
+ min-width: 100% !important;
+ }
+ .min-w-sm-auto {
+ min-width: auto !important;
+ }
+ .min-w-sm-1px {
+ min-width: 1px !important;
+ }
+ .min-w-sm-2px {
+ min-width: 2px !important;
+ }
+ .min-w-sm-3px {
+ min-width: 3px !important;
+ }
+ .min-w-sm-4px {
+ min-width: 4px !important;
+ }
+ .min-w-sm-5px {
+ min-width: 5px !important;
+ }
+ .min-w-sm-6px {
+ min-width: 6px !important;
+ }
+ .min-w-sm-7px {
+ min-width: 7px !important;
+ }
+ .min-w-sm-8px {
+ min-width: 8px !important;
+ }
+ .min-w-sm-9px {
+ min-width: 9px !important;
+ }
+ .min-w-sm-10px {
+ min-width: 10px !important;
+ }
+ .min-w-sm-15px {
+ min-width: 15px !important;
+ }
+ .min-w-sm-20px {
+ min-width: 20px !important;
+ }
+ .min-w-sm-25px {
+ min-width: 25px !important;
+ }
+ .min-w-sm-30px {
+ min-width: 30px !important;
+ }
+ .min-w-sm-35px {
+ min-width: 35px !important;
+ }
+ .min-w-sm-40px {
+ min-width: 40px !important;
+ }
+ .min-w-sm-45px {
+ min-width: 45px !important;
+ }
+ .min-w-sm-50px {
+ min-width: 50px !important;
+ }
+ .min-w-sm-55px {
+ min-width: 55px !important;
+ }
+ .min-w-sm-60px {
+ min-width: 60px !important;
+ }
+ .min-w-sm-65px {
+ min-width: 65px !important;
+ }
+ .min-w-sm-70px {
+ min-width: 70px !important;
+ }
+ .min-w-sm-75px {
+ min-width: 75px !important;
+ }
+ .min-w-sm-80px {
+ min-width: 80px !important;
+ }
+ .min-w-sm-85px {
+ min-width: 85px !important;
+ }
+ .min-w-sm-90px {
+ min-width: 90px !important;
+ }
+ .min-w-sm-95px {
+ min-width: 95px !important;
+ }
+ .min-w-sm-100px {
+ min-width: 100px !important;
+ }
+ .min-w-sm-125px {
+ min-width: 125px !important;
+ }
+ .min-w-sm-150px {
+ min-width: 150px !important;
+ }
+ .min-w-sm-175px {
+ min-width: 175px !important;
+ }
+ .min-w-sm-200px {
+ min-width: 200px !important;
+ }
+ .min-w-sm-225px {
+ min-width: 225px !important;
+ }
+ .min-w-sm-250px {
+ min-width: 250px !important;
+ }
+ .min-w-sm-275px {
+ min-width: 275px !important;
+ }
+ .min-w-sm-300px {
+ min-width: 300px !important;
+ }
+ .min-w-sm-325px {
+ min-width: 325px !important;
+ }
+ .min-w-sm-350px {
+ min-width: 350px !important;
+ }
+ .min-w-sm-375px {
+ min-width: 375px !important;
+ }
+ .min-w-sm-400px {
+ min-width: 400px !important;
+ }
+ .min-w-sm-425px {
+ min-width: 425px !important;
+ }
+ .min-w-sm-450px {
+ min-width: 450px !important;
+ }
+ .min-w-sm-475px {
+ min-width: 475px !important;
+ }
+ .min-w-sm-500px {
+ min-width: 500px !important;
+ }
+ .min-w-sm-550px {
+ min-width: 550px !important;
+ }
+ .min-w-sm-600px {
+ min-width: 600px !important;
+ }
+ .min-w-sm-650px {
+ min-width: 650px !important;
+ }
+ .min-w-sm-700px {
+ min-width: 700px !important;
+ }
+ .min-w-sm-750px {
+ min-width: 750px !important;
+ }
+ .min-w-sm-800px {
+ min-width: 800px !important;
+ }
+ .min-w-sm-850px {
+ min-width: 850px !important;
+ }
+ .min-w-sm-900px {
+ min-width: 900px !important;
+ }
+ .min-w-sm-950px {
+ min-width: 950px !important;
+ }
+ .min-w-sm-1000px {
+ min-width: 1000px !important;
+ }
+ .min-h-sm-unset {
+ min-height: unset !important;
+ }
+ .min-h-sm-25 {
+ min-height: 25% !important;
+ }
+ .min-h-sm-50 {
+ min-height: 50% !important;
+ }
+ .min-h-sm-75 {
+ min-height: 75% !important;
+ }
+ .min-h-sm-100 {
+ min-height: 100% !important;
+ }
+ .min-h-sm-auto {
+ min-height: auto !important;
+ }
+ .min-h-sm-1px {
+ min-height: 1px !important;
+ }
+ .min-h-sm-2px {
+ min-height: 2px !important;
+ }
+ .min-h-sm-3px {
+ min-height: 3px !important;
+ }
+ .min-h-sm-4px {
+ min-height: 4px !important;
+ }
+ .min-h-sm-5px {
+ min-height: 5px !important;
+ }
+ .min-h-sm-6px {
+ min-height: 6px !important;
+ }
+ .min-h-sm-7px {
+ min-height: 7px !important;
+ }
+ .min-h-sm-8px {
+ min-height: 8px !important;
+ }
+ .min-h-sm-9px {
+ min-height: 9px !important;
+ }
+ .min-h-sm-10px {
+ min-height: 10px !important;
+ }
+ .min-h-sm-15px {
+ min-height: 15px !important;
+ }
+ .min-h-sm-20px {
+ min-height: 20px !important;
+ }
+ .min-h-sm-25px {
+ min-height: 25px !important;
+ }
+ .min-h-sm-30px {
+ min-height: 30px !important;
+ }
+ .min-h-sm-35px {
+ min-height: 35px !important;
+ }
+ .min-h-sm-40px {
+ min-height: 40px !important;
+ }
+ .min-h-sm-45px {
+ min-height: 45px !important;
+ }
+ .min-h-sm-50px {
+ min-height: 50px !important;
+ }
+ .min-h-sm-55px {
+ min-height: 55px !important;
+ }
+ .min-h-sm-60px {
+ min-height: 60px !important;
+ }
+ .min-h-sm-65px {
+ min-height: 65px !important;
+ }
+ .min-h-sm-70px {
+ min-height: 70px !important;
+ }
+ .min-h-sm-75px {
+ min-height: 75px !important;
+ }
+ .min-h-sm-80px {
+ min-height: 80px !important;
+ }
+ .min-h-sm-85px {
+ min-height: 85px !important;
+ }
+ .min-h-sm-90px {
+ min-height: 90px !important;
+ }
+ .min-h-sm-95px {
+ min-height: 95px !important;
+ }
+ .min-h-sm-100px {
+ min-height: 100px !important;
+ }
+ .min-h-sm-125px {
+ min-height: 125px !important;
+ }
+ .min-h-sm-150px {
+ min-height: 150px !important;
+ }
+ .min-h-sm-175px {
+ min-height: 175px !important;
+ }
+ .min-h-sm-200px {
+ min-height: 200px !important;
+ }
+ .min-h-sm-225px {
+ min-height: 225px !important;
+ }
+ .min-h-sm-250px {
+ min-height: 250px !important;
+ }
+ .min-h-sm-275px {
+ min-height: 275px !important;
+ }
+ .min-h-sm-300px {
+ min-height: 300px !important;
+ }
+ .min-h-sm-325px {
+ min-height: 325px !important;
+ }
+ .min-h-sm-350px {
+ min-height: 350px !important;
+ }
+ .min-h-sm-375px {
+ min-height: 375px !important;
+ }
+ .min-h-sm-400px {
+ min-height: 400px !important;
+ }
+ .min-h-sm-425px {
+ min-height: 425px !important;
+ }
+ .min-h-sm-450px {
+ min-height: 450px !important;
+ }
+ .min-h-sm-475px {
+ min-height: 475px !important;
+ }
+ .min-h-sm-500px {
+ min-height: 500px !important;
+ }
+ .min-h-sm-550px {
+ min-height: 550px !important;
+ }
+ .min-h-sm-600px {
+ min-height: 600px !important;
+ }
+ .min-h-sm-650px {
+ min-height: 650px !important;
+ }
+ .min-h-sm-700px {
+ min-height: 700px !important;
+ }
+ .min-h-sm-750px {
+ min-height: 750px !important;
+ }
+ .min-h-sm-800px {
+ min-height: 800px !important;
+ }
+ .min-h-sm-850px {
+ min-height: 850px !important;
+ }
+ .min-h-sm-900px {
+ min-height: 900px !important;
+ }
+ .min-h-sm-950px {
+ min-height: 950px !important;
+ }
+ .min-h-sm-1000px {
+ min-height: 1000px !important;
+ }
+}
+@media (min-width: 768px) {
+ .float-md-start {
+ float: left !important;
+ }
+ .float-md-end {
+ float: right !important;
+ }
+ .float-md-none {
+ float: none !important;
+ }
+ .object-fit-md-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-md-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-md-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-md-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-md-none {
+ object-fit: none !important;
+ }
+ .overflow-md-auto {
+ overflow: auto !important;
+ }
+ .overflow-md-hidden {
+ overflow: hidden !important;
+ }
+ .overflow-md-visible {
+ overflow: visible !important;
+ }
+ .overflow-md-scroll {
+ overflow: scroll !important;
+ }
+ .d-md-inline {
+ display: inline !important;
+ }
+ .d-md-inline-block {
+ display: inline-block !important;
+ }
+ .d-md-block {
+ display: block !important;
+ }
+ .d-md-grid {
+ display: grid !important;
+ }
+ .d-md-table {
+ display: table !important;
+ }
+ .d-md-table-row {
+ display: table-row !important;
+ }
+ .d-md-table-cell {
+ display: table-cell !important;
+ }
+ .d-md-flex {
+ display: flex !important;
+ }
+ .d-md-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-md-none {
+ display: none !important;
+ }
+ .position-md-static {
+ position: static !important;
+ }
+ .position-md-relative {
+ position: relative !important;
+ }
+ .position-md-absolute {
+ position: absolute !important;
+ }
+ .position-md-fixed {
+ position: fixed !important;
+ }
+ .position-md-sticky {
+ position: sticky !important;
+ }
+ .w-md-unset {
+ width: unset !important;
+ }
+ .w-md-25 {
+ width: 25% !important;
+ }
+ .w-md-50 {
+ width: 50% !important;
+ }
+ .w-md-75 {
+ width: 75% !important;
+ }
+ .w-md-100 {
+ width: 100% !important;
+ }
+ .w-md-auto {
+ width: auto !important;
+ }
+ .w-md-1px {
+ width: 1px !important;
+ }
+ .w-md-2px {
+ width: 2px !important;
+ }
+ .w-md-3px {
+ width: 3px !important;
+ }
+ .w-md-4px {
+ width: 4px !important;
+ }
+ .w-md-5px {
+ width: 5px !important;
+ }
+ .w-md-6px {
+ width: 6px !important;
+ }
+ .w-md-7px {
+ width: 7px !important;
+ }
+ .w-md-8px {
+ width: 8px !important;
+ }
+ .w-md-9px {
+ width: 9px !important;
+ }
+ .w-md-10px {
+ width: 10px !important;
+ }
+ .w-md-15px {
+ width: 15px !important;
+ }
+ .w-md-20px {
+ width: 20px !important;
+ }
+ .w-md-25px {
+ width: 25px !important;
+ }
+ .w-md-30px {
+ width: 30px !important;
+ }
+ .w-md-35px {
+ width: 35px !important;
+ }
+ .w-md-40px {
+ width: 40px !important;
+ }
+ .w-md-45px {
+ width: 45px !important;
+ }
+ .w-md-50px {
+ width: 50px !important;
+ }
+ .w-md-55px {
+ width: 55px !important;
+ }
+ .w-md-60px {
+ width: 60px !important;
+ }
+ .w-md-65px {
+ width: 65px !important;
+ }
+ .w-md-70px {
+ width: 70px !important;
+ }
+ .w-md-75px {
+ width: 75px !important;
+ }
+ .w-md-80px {
+ width: 80px !important;
+ }
+ .w-md-85px {
+ width: 85px !important;
+ }
+ .w-md-90px {
+ width: 90px !important;
+ }
+ .w-md-95px {
+ width: 95px !important;
+ }
+ .w-md-100px {
+ width: 100px !important;
+ }
+ .w-md-125px {
+ width: 125px !important;
+ }
+ .w-md-150px {
+ width: 150px !important;
+ }
+ .w-md-175px {
+ width: 175px !important;
+ }
+ .w-md-200px {
+ width: 200px !important;
+ }
+ .w-md-225px {
+ width: 225px !important;
+ }
+ .w-md-250px {
+ width: 250px !important;
+ }
+ .w-md-275px {
+ width: 275px !important;
+ }
+ .w-md-300px {
+ width: 300px !important;
+ }
+ .w-md-325px {
+ width: 325px !important;
+ }
+ .w-md-350px {
+ width: 350px !important;
+ }
+ .w-md-375px {
+ width: 375px !important;
+ }
+ .w-md-400px {
+ width: 400px !important;
+ }
+ .w-md-425px {
+ width: 425px !important;
+ }
+ .w-md-450px {
+ width: 450px !important;
+ }
+ .w-md-475px {
+ width: 475px !important;
+ }
+ .w-md-500px {
+ width: 500px !important;
+ }
+ .w-md-550px {
+ width: 550px !important;
+ }
+ .w-md-600px {
+ width: 600px !important;
+ }
+ .w-md-650px {
+ width: 650px !important;
+ }
+ .w-md-700px {
+ width: 700px !important;
+ }
+ .w-md-750px {
+ width: 750px !important;
+ }
+ .w-md-800px {
+ width: 800px !important;
+ }
+ .w-md-850px {
+ width: 850px !important;
+ }
+ .w-md-900px {
+ width: 900px !important;
+ }
+ .w-md-950px {
+ width: 950px !important;
+ }
+ .w-md-1000px {
+ width: 1000px !important;
+ }
+ .mw-md-unset {
+ max-width: unset !important;
+ }
+ .mw-md-25 {
+ max-width: 25% !important;
+ }
+ .mw-md-50 {
+ max-width: 50% !important;
+ }
+ .mw-md-75 {
+ max-width: 75% !important;
+ }
+ .mw-md-100 {
+ max-width: 100% !important;
+ }
+ .mw-md-auto {
+ max-width: auto !important;
+ }
+ .mw-md-1px {
+ max-width: 1px !important;
+ }
+ .mw-md-2px {
+ max-width: 2px !important;
+ }
+ .mw-md-3px {
+ max-width: 3px !important;
+ }
+ .mw-md-4px {
+ max-width: 4px !important;
+ }
+ .mw-md-5px {
+ max-width: 5px !important;
+ }
+ .mw-md-6px {
+ max-width: 6px !important;
+ }
+ .mw-md-7px {
+ max-width: 7px !important;
+ }
+ .mw-md-8px {
+ max-width: 8px !important;
+ }
+ .mw-md-9px {
+ max-width: 9px !important;
+ }
+ .mw-md-10px {
+ max-width: 10px !important;
+ }
+ .mw-md-15px {
+ max-width: 15px !important;
+ }
+ .mw-md-20px {
+ max-width: 20px !important;
+ }
+ .mw-md-25px {
+ max-width: 25px !important;
+ }
+ .mw-md-30px {
+ max-width: 30px !important;
+ }
+ .mw-md-35px {
+ max-width: 35px !important;
+ }
+ .mw-md-40px {
+ max-width: 40px !important;
+ }
+ .mw-md-45px {
+ max-width: 45px !important;
+ }
+ .mw-md-50px {
+ max-width: 50px !important;
+ }
+ .mw-md-55px {
+ max-width: 55px !important;
+ }
+ .mw-md-60px {
+ max-width: 60px !important;
+ }
+ .mw-md-65px {
+ max-width: 65px !important;
+ }
+ .mw-md-70px {
+ max-width: 70px !important;
+ }
+ .mw-md-75px {
+ max-width: 75px !important;
+ }
+ .mw-md-80px {
+ max-width: 80px !important;
+ }
+ .mw-md-85px {
+ max-width: 85px !important;
+ }
+ .mw-md-90px {
+ max-width: 90px !important;
+ }
+ .mw-md-95px {
+ max-width: 95px !important;
+ }
+ .mw-md-100px {
+ max-width: 100px !important;
+ }
+ .mw-md-125px {
+ max-width: 125px !important;
+ }
+ .mw-md-150px {
+ max-width: 150px !important;
+ }
+ .mw-md-175px {
+ max-width: 175px !important;
+ }
+ .mw-md-200px {
+ max-width: 200px !important;
+ }
+ .mw-md-225px {
+ max-width: 225px !important;
+ }
+ .mw-md-250px {
+ max-width: 250px !important;
+ }
+ .mw-md-275px {
+ max-width: 275px !important;
+ }
+ .mw-md-300px {
+ max-width: 300px !important;
+ }
+ .mw-md-325px {
+ max-width: 325px !important;
+ }
+ .mw-md-350px {
+ max-width: 350px !important;
+ }
+ .mw-md-375px {
+ max-width: 375px !important;
+ }
+ .mw-md-400px {
+ max-width: 400px !important;
+ }
+ .mw-md-425px {
+ max-width: 425px !important;
+ }
+ .mw-md-450px {
+ max-width: 450px !important;
+ }
+ .mw-md-475px {
+ max-width: 475px !important;
+ }
+ .mw-md-500px {
+ max-width: 500px !important;
+ }
+ .mw-md-550px {
+ max-width: 550px !important;
+ }
+ .mw-md-600px {
+ max-width: 600px !important;
+ }
+ .mw-md-650px {
+ max-width: 650px !important;
+ }
+ .mw-md-700px {
+ max-width: 700px !important;
+ }
+ .mw-md-750px {
+ max-width: 750px !important;
+ }
+ .mw-md-800px {
+ max-width: 800px !important;
+ }
+ .mw-md-850px {
+ max-width: 850px !important;
+ }
+ .mw-md-900px {
+ max-width: 900px !important;
+ }
+ .mw-md-950px {
+ max-width: 950px !important;
+ }
+ .mw-md-1000px {
+ max-width: 1000px !important;
+ }
+ .h-md-unset {
+ height: unset !important;
+ }
+ .h-md-25 {
+ height: 25% !important;
+ }
+ .h-md-50 {
+ height: 50% !important;
+ }
+ .h-md-75 {
+ height: 75% !important;
+ }
+ .h-md-100 {
+ height: 100% !important;
+ }
+ .h-md-auto {
+ height: auto !important;
+ }
+ .h-md-1px {
+ height: 1px !important;
+ }
+ .h-md-2px {
+ height: 2px !important;
+ }
+ .h-md-3px {
+ height: 3px !important;
+ }
+ .h-md-4px {
+ height: 4px !important;
+ }
+ .h-md-5px {
+ height: 5px !important;
+ }
+ .h-md-6px {
+ height: 6px !important;
+ }
+ .h-md-7px {
+ height: 7px !important;
+ }
+ .h-md-8px {
+ height: 8px !important;
+ }
+ .h-md-9px {
+ height: 9px !important;
+ }
+ .h-md-10px {
+ height: 10px !important;
+ }
+ .h-md-15px {
+ height: 15px !important;
+ }
+ .h-md-20px {
+ height: 20px !important;
+ }
+ .h-md-25px {
+ height: 25px !important;
+ }
+ .h-md-30px {
+ height: 30px !important;
+ }
+ .h-md-35px {
+ height: 35px !important;
+ }
+ .h-md-40px {
+ height: 40px !important;
+ }
+ .h-md-45px {
+ height: 45px !important;
+ }
+ .h-md-50px {
+ height: 50px !important;
+ }
+ .h-md-55px {
+ height: 55px !important;
+ }
+ .h-md-60px {
+ height: 60px !important;
+ }
+ .h-md-65px {
+ height: 65px !important;
+ }
+ .h-md-70px {
+ height: 70px !important;
+ }
+ .h-md-75px {
+ height: 75px !important;
+ }
+ .h-md-80px {
+ height: 80px !important;
+ }
+ .h-md-85px {
+ height: 85px !important;
+ }
+ .h-md-90px {
+ height: 90px !important;
+ }
+ .h-md-95px {
+ height: 95px !important;
+ }
+ .h-md-100px {
+ height: 100px !important;
+ }
+ .h-md-125px {
+ height: 125px !important;
+ }
+ .h-md-150px {
+ height: 150px !important;
+ }
+ .h-md-175px {
+ height: 175px !important;
+ }
+ .h-md-200px {
+ height: 200px !important;
+ }
+ .h-md-225px {
+ height: 225px !important;
+ }
+ .h-md-250px {
+ height: 250px !important;
+ }
+ .h-md-275px {
+ height: 275px !important;
+ }
+ .h-md-300px {
+ height: 300px !important;
+ }
+ .h-md-325px {
+ height: 325px !important;
+ }
+ .h-md-350px {
+ height: 350px !important;
+ }
+ .h-md-375px {
+ height: 375px !important;
+ }
+ .h-md-400px {
+ height: 400px !important;
+ }
+ .h-md-425px {
+ height: 425px !important;
+ }
+ .h-md-450px {
+ height: 450px !important;
+ }
+ .h-md-475px {
+ height: 475px !important;
+ }
+ .h-md-500px {
+ height: 500px !important;
+ }
+ .h-md-550px {
+ height: 550px !important;
+ }
+ .h-md-600px {
+ height: 600px !important;
+ }
+ .h-md-650px {
+ height: 650px !important;
+ }
+ .h-md-700px {
+ height: 700px !important;
+ }
+ .h-md-750px {
+ height: 750px !important;
+ }
+ .h-md-800px {
+ height: 800px !important;
+ }
+ .h-md-850px {
+ height: 850px !important;
+ }
+ .h-md-900px {
+ height: 900px !important;
+ }
+ .h-md-950px {
+ height: 950px !important;
+ }
+ .h-md-1000px {
+ height: 1000px !important;
+ }
+ .mh-md-unset {
+ max-height: unset !important;
+ }
+ .mh-md-25 {
+ max-height: 25% !important;
+ }
+ .mh-md-50 {
+ max-height: 50% !important;
+ }
+ .mh-md-75 {
+ max-height: 75% !important;
+ }
+ .mh-md-100 {
+ max-height: 100% !important;
+ }
+ .mh-md-auto {
+ max-height: auto !important;
+ }
+ .mh-md-1px {
+ max-height: 1px !important;
+ }
+ .mh-md-2px {
+ max-height: 2px !important;
+ }
+ .mh-md-3px {
+ max-height: 3px !important;
+ }
+ .mh-md-4px {
+ max-height: 4px !important;
+ }
+ .mh-md-5px {
+ max-height: 5px !important;
+ }
+ .mh-md-6px {
+ max-height: 6px !important;
+ }
+ .mh-md-7px {
+ max-height: 7px !important;
+ }
+ .mh-md-8px {
+ max-height: 8px !important;
+ }
+ .mh-md-9px {
+ max-height: 9px !important;
+ }
+ .mh-md-10px {
+ max-height: 10px !important;
+ }
+ .mh-md-15px {
+ max-height: 15px !important;
+ }
+ .mh-md-20px {
+ max-height: 20px !important;
+ }
+ .mh-md-25px {
+ max-height: 25px !important;
+ }
+ .mh-md-30px {
+ max-height: 30px !important;
+ }
+ .mh-md-35px {
+ max-height: 35px !important;
+ }
+ .mh-md-40px {
+ max-height: 40px !important;
+ }
+ .mh-md-45px {
+ max-height: 45px !important;
+ }
+ .mh-md-50px {
+ max-height: 50px !important;
+ }
+ .mh-md-55px {
+ max-height: 55px !important;
+ }
+ .mh-md-60px {
+ max-height: 60px !important;
+ }
+ .mh-md-65px {
+ max-height: 65px !important;
+ }
+ .mh-md-70px {
+ max-height: 70px !important;
+ }
+ .mh-md-75px {
+ max-height: 75px !important;
+ }
+ .mh-md-80px {
+ max-height: 80px !important;
+ }
+ .mh-md-85px {
+ max-height: 85px !important;
+ }
+ .mh-md-90px {
+ max-height: 90px !important;
+ }
+ .mh-md-95px {
+ max-height: 95px !important;
+ }
+ .mh-md-100px {
+ max-height: 100px !important;
+ }
+ .mh-md-125px {
+ max-height: 125px !important;
+ }
+ .mh-md-150px {
+ max-height: 150px !important;
+ }
+ .mh-md-175px {
+ max-height: 175px !important;
+ }
+ .mh-md-200px {
+ max-height: 200px !important;
+ }
+ .mh-md-225px {
+ max-height: 225px !important;
+ }
+ .mh-md-250px {
+ max-height: 250px !important;
+ }
+ .mh-md-275px {
+ max-height: 275px !important;
+ }
+ .mh-md-300px {
+ max-height: 300px !important;
+ }
+ .mh-md-325px {
+ max-height: 325px !important;
+ }
+ .mh-md-350px {
+ max-height: 350px !important;
+ }
+ .mh-md-375px {
+ max-height: 375px !important;
+ }
+ .mh-md-400px {
+ max-height: 400px !important;
+ }
+ .mh-md-425px {
+ max-height: 425px !important;
+ }
+ .mh-md-450px {
+ max-height: 450px !important;
+ }
+ .mh-md-475px {
+ max-height: 475px !important;
+ }
+ .mh-md-500px {
+ max-height: 500px !important;
+ }
+ .mh-md-550px {
+ max-height: 550px !important;
+ }
+ .mh-md-600px {
+ max-height: 600px !important;
+ }
+ .mh-md-650px {
+ max-height: 650px !important;
+ }
+ .mh-md-700px {
+ max-height: 700px !important;
+ }
+ .mh-md-750px {
+ max-height: 750px !important;
+ }
+ .mh-md-800px {
+ max-height: 800px !important;
+ }
+ .mh-md-850px {
+ max-height: 850px !important;
+ }
+ .mh-md-900px {
+ max-height: 900px !important;
+ }
+ .mh-md-950px {
+ max-height: 950px !important;
+ }
+ .mh-md-1000px {
+ max-height: 1000px !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: 0.25rem !important;
+ }
+ .m-md-2 {
+ margin: 0.5rem !important;
+ }
+ .m-md-3 {
+ margin: 0.75rem !important;
+ }
+ .m-md-4 {
+ margin: 1rem !important;
+ }
+ .m-md-5 {
+ margin: 1.25rem !important;
+ }
+ .m-md-6 {
+ margin: 1.5rem !important;
+ }
+ .m-md-7 {
+ margin: 1.75rem !important;
+ }
+ .m-md-8 {
+ margin: 2rem !important;
+ }
+ .m-md-9 {
+ margin: 2.25rem !important;
+ }
+ .m-md-10 {
+ margin: 2.5rem !important;
+ }
+ .m-md-11 {
+ margin: 2.75rem !important;
+ }
+ .m-md-12 {
+ margin: 3rem !important;
+ }
+ .m-md-13 {
+ margin: 3.25rem !important;
+ }
+ .m-md-14 {
+ margin: 3.5rem !important;
+ }
+ .m-md-15 {
+ margin: 3.75rem !important;
+ }
+ .m-md-16 {
+ margin: 4rem !important;
+ }
+ .m-md-17 {
+ margin: 4.25rem !important;
+ }
+ .m-md-18 {
+ margin: 4.5rem !important;
+ }
+ .m-md-19 {
+ margin: 4.75rem !important;
+ }
+ .m-md-20 {
+ margin: 5rem !important;
+ }
+ .m-md-auto {
+ margin: auto !important;
+ }
+ .mx-md-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-md-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-md-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-md-3 {
+ margin-right: 0.75rem !important;
+ margin-left: 0.75rem !important;
+ }
+ .mx-md-4 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-md-5 {
+ margin-right: 1.25rem !important;
+ margin-left: 1.25rem !important;
+ }
+ .mx-md-6 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-md-7 {
+ margin-right: 1.75rem !important;
+ margin-left: 1.75rem !important;
+ }
+ .mx-md-8 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important;
+ }
+ .mx-md-9 {
+ margin-right: 2.25rem !important;
+ margin-left: 2.25rem !important;
+ }
+ .mx-md-10 {
+ margin-right: 2.5rem !important;
+ margin-left: 2.5rem !important;
+ }
+ .mx-md-11 {
+ margin-right: 2.75rem !important;
+ margin-left: 2.75rem !important;
+ }
+ .mx-md-12 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-md-13 {
+ margin-right: 3.25rem !important;
+ margin-left: 3.25rem !important;
+ }
+ .mx-md-14 {
+ margin-right: 3.5rem !important;
+ margin-left: 3.5rem !important;
+ }
+ .mx-md-15 {
+ margin-right: 3.75rem !important;
+ margin-left: 3.75rem !important;
+ }
+ .mx-md-16 {
+ margin-right: 4rem !important;
+ margin-left: 4rem !important;
+ }
+ .mx-md-17 {
+ margin-right: 4.25rem !important;
+ margin-left: 4.25rem !important;
+ }
+ .mx-md-18 {
+ margin-right: 4.5rem !important;
+ margin-left: 4.5rem !important;
+ }
+ .mx-md-19 {
+ margin-right: 4.75rem !important;
+ margin-left: 4.75rem !important;
+ }
+ .mx-md-20 {
+ margin-right: 5rem !important;
+ margin-left: 5rem !important;
+ }
+ .mx-md-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-md-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-md-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-md-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-md-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+ }
+ .my-md-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-md-5 {
+ margin-top: 1.25rem !important;
+ margin-bottom: 1.25rem !important;
+ }
+ .my-md-6 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-md-7 {
+ margin-top: 1.75rem !important;
+ margin-bottom: 1.75rem !important;
+ }
+ .my-md-8 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important;
+ }
+ .my-md-9 {
+ margin-top: 2.25rem !important;
+ margin-bottom: 2.25rem !important;
+ }
+ .my-md-10 {
+ margin-top: 2.5rem !important;
+ margin-bottom: 2.5rem !important;
+ }
+ .my-md-11 {
+ margin-top: 2.75rem !important;
+ margin-bottom: 2.75rem !important;
+ }
+ .my-md-12 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-md-13 {
+ margin-top: 3.25rem !important;
+ margin-bottom: 3.25rem !important;
+ }
+ .my-md-14 {
+ margin-top: 3.5rem !important;
+ margin-bottom: 3.5rem !important;
+ }
+ .my-md-15 {
+ margin-top: 3.75rem !important;
+ margin-bottom: 3.75rem !important;
+ }
+ .my-md-16 {
+ margin-top: 4rem !important;
+ margin-bottom: 4rem !important;
+ }
+ .my-md-17 {
+ margin-top: 4.25rem !important;
+ margin-bottom: 4.25rem !important;
+ }
+ .my-md-18 {
+ margin-top: 4.5rem !important;
+ margin-bottom: 4.5rem !important;
+ }
+ .my-md-19 {
+ margin-top: 4.75rem !important;
+ margin-bottom: 4.75rem !important;
+ }
+ .my-md-20 {
+ margin-top: 5rem !important;
+ margin-bottom: 5rem !important;
+ }
+ .my-md-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-md-0 {
+ margin-top: 0 !important;
+ }
+ .mt-md-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-md-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-md-3 {
+ margin-top: 0.75rem !important;
+ }
+ .mt-md-4 {
+ margin-top: 1rem !important;
+ }
+ .mt-md-5 {
+ margin-top: 1.25rem !important;
+ }
+ .mt-md-6 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-md-7 {
+ margin-top: 1.75rem !important;
+ }
+ .mt-md-8 {
+ margin-top: 2rem !important;
+ }
+ .mt-md-9 {
+ margin-top: 2.25rem !important;
+ }
+ .mt-md-10 {
+ margin-top: 2.5rem !important;
+ }
+ .mt-md-11 {
+ margin-top: 2.75rem !important;
+ }
+ .mt-md-12 {
+ margin-top: 3rem !important;
+ }
+ .mt-md-13 {
+ margin-top: 3.25rem !important;
+ }
+ .mt-md-14 {
+ margin-top: 3.5rem !important;
+ }
+ .mt-md-15 {
+ margin-top: 3.75rem !important;
+ }
+ .mt-md-16 {
+ margin-top: 4rem !important;
+ }
+ .mt-md-17 {
+ margin-top: 4.25rem !important;
+ }
+ .mt-md-18 {
+ margin-top: 4.5rem !important;
+ }
+ .mt-md-19 {
+ margin-top: 4.75rem !important;
+ }
+ .mt-md-20 {
+ margin-top: 5rem !important;
+ }
+ .mt-md-auto {
+ margin-top: auto !important;
+ }
+ .me-md-0 {
+ margin-right: 0 !important;
+ }
+ .me-md-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-md-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-md-3 {
+ margin-right: 0.75rem !important;
+ }
+ .me-md-4 {
+ margin-right: 1rem !important;
+ }
+ .me-md-5 {
+ margin-right: 1.25rem !important;
+ }
+ .me-md-6 {
+ margin-right: 1.5rem !important;
+ }
+ .me-md-7 {
+ margin-right: 1.75rem !important;
+ }
+ .me-md-8 {
+ margin-right: 2rem !important;
+ }
+ .me-md-9 {
+ margin-right: 2.25rem !important;
+ }
+ .me-md-10 {
+ margin-right: 2.5rem !important;
+ }
+ .me-md-11 {
+ margin-right: 2.75rem !important;
+ }
+ .me-md-12 {
+ margin-right: 3rem !important;
+ }
+ .me-md-13 {
+ margin-right: 3.25rem !important;
+ }
+ .me-md-14 {
+ margin-right: 3.5rem !important;
+ }
+ .me-md-15 {
+ margin-right: 3.75rem !important;
+ }
+ .me-md-16 {
+ margin-right: 4rem !important;
+ }
+ .me-md-17 {
+ margin-right: 4.25rem !important;
+ }
+ .me-md-18 {
+ margin-right: 4.5rem !important;
+ }
+ .me-md-19 {
+ margin-right: 4.75rem !important;
+ }
+ .me-md-20 {
+ margin-right: 5rem !important;
+ }
+ .me-md-auto {
+ margin-right: auto !important;
+ }
+ .mb-md-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-md-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-md-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-md-3 {
+ margin-bottom: 0.75rem !important;
+ }
+ .mb-md-4 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-md-5 {
+ margin-bottom: 1.25rem !important;
+ }
+ .mb-md-6 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-md-7 {
+ margin-bottom: 1.75rem !important;
+ }
+ .mb-md-8 {
+ margin-bottom: 2rem !important;
+ }
+ .mb-md-9 {
+ margin-bottom: 2.25rem !important;
+ }
+ .mb-md-10 {
+ margin-bottom: 2.5rem !important;
+ }
+ .mb-md-11 {
+ margin-bottom: 2.75rem !important;
+ }
+ .mb-md-12 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-md-13 {
+ margin-bottom: 3.25rem !important;
+ }
+ .mb-md-14 {
+ margin-bottom: 3.5rem !important;
+ }
+ .mb-md-15 {
+ margin-bottom: 3.75rem !important;
+ }
+ .mb-md-16 {
+ margin-bottom: 4rem !important;
+ }
+ .mb-md-17 {
+ margin-bottom: 4.25rem !important;
+ }
+ .mb-md-18 {
+ margin-bottom: 4.5rem !important;
+ }
+ .mb-md-19 {
+ margin-bottom: 4.75rem !important;
+ }
+ .mb-md-20 {
+ margin-bottom: 5rem !important;
+ }
+ .mb-md-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-md-0 {
+ margin-left: 0 !important;
+ }
+ .ms-md-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-md-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-md-3 {
+ margin-left: 0.75rem !important;
+ }
+ .ms-md-4 {
+ margin-left: 1rem !important;
+ }
+ .ms-md-5 {
+ margin-left: 1.25rem !important;
+ }
+ .ms-md-6 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-md-7 {
+ margin-left: 1.75rem !important;
+ }
+ .ms-md-8 {
+ margin-left: 2rem !important;
+ }
+ .ms-md-9 {
+ margin-left: 2.25rem !important;
+ }
+ .ms-md-10 {
+ margin-left: 2.5rem !important;
+ }
+ .ms-md-11 {
+ margin-left: 2.75rem !important;
+ }
+ .ms-md-12 {
+ margin-left: 3rem !important;
+ }
+ .ms-md-13 {
+ margin-left: 3.25rem !important;
+ }
+ .ms-md-14 {
+ margin-left: 3.5rem !important;
+ }
+ .ms-md-15 {
+ margin-left: 3.75rem !important;
+ }
+ .ms-md-16 {
+ margin-left: 4rem !important;
+ }
+ .ms-md-17 {
+ margin-left: 4.25rem !important;
+ }
+ .ms-md-18 {
+ margin-left: 4.5rem !important;
+ }
+ .ms-md-19 {
+ margin-left: 4.75rem !important;
+ }
+ .ms-md-20 {
+ margin-left: 5rem !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: -0.75rem !important;
+ }
+ .m-md-n4 {
+ margin: -1rem !important;
+ }
+ .m-md-n5 {
+ margin: -1.25rem !important;
+ }
+ .m-md-n6 {
+ margin: -1.5rem !important;
+ }
+ .m-md-n7 {
+ margin: -1.75rem !important;
+ }
+ .m-md-n8 {
+ margin: -2rem !important;
+ }
+ .m-md-n9 {
+ margin: -2.25rem !important;
+ }
+ .m-md-n10 {
+ margin: -2.5rem !important;
+ }
+ .m-md-n11 {
+ margin: -2.75rem !important;
+ }
+ .m-md-n12 {
+ margin: -3rem !important;
+ }
+ .m-md-n13 {
+ margin: -3.25rem !important;
+ }
+ .m-md-n14 {
+ margin: -3.5rem !important;
+ }
+ .m-md-n15 {
+ margin: -3.75rem !important;
+ }
+ .m-md-n16 {
+ margin: -4rem !important;
+ }
+ .m-md-n17 {
+ margin: -4.25rem !important;
+ }
+ .m-md-n18 {
+ margin: -4.5rem !important;
+ }
+ .m-md-n19 {
+ margin: -4.75rem !important;
+ }
+ .m-md-n20 {
+ margin: -5rem !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: -0.75rem !important;
+ margin-left: -0.75rem !important;
+ }
+ .mx-md-n4 {
+ margin-right: -1rem !important;
+ margin-left: -1rem !important;
+ }
+ .mx-md-n5 {
+ margin-right: -1.25rem !important;
+ margin-left: -1.25rem !important;
+ }
+ .mx-md-n6 {
+ margin-right: -1.5rem !important;
+ margin-left: -1.5rem !important;
+ }
+ .mx-md-n7 {
+ margin-right: -1.75rem !important;
+ margin-left: -1.75rem !important;
+ }
+ .mx-md-n8 {
+ margin-right: -2rem !important;
+ margin-left: -2rem !important;
+ }
+ .mx-md-n9 {
+ margin-right: -2.25rem !important;
+ margin-left: -2.25rem !important;
+ }
+ .mx-md-n10 {
+ margin-right: -2.5rem !important;
+ margin-left: -2.5rem !important;
+ }
+ .mx-md-n11 {
+ margin-right: -2.75rem !important;
+ margin-left: -2.75rem !important;
+ }
+ .mx-md-n12 {
+ margin-right: -3rem !important;
+ margin-left: -3rem !important;
+ }
+ .mx-md-n13 {
+ margin-right: -3.25rem !important;
+ margin-left: -3.25rem !important;
+ }
+ .mx-md-n14 {
+ margin-right: -3.5rem !important;
+ margin-left: -3.5rem !important;
+ }
+ .mx-md-n15 {
+ margin-right: -3.75rem !important;
+ margin-left: -3.75rem !important;
+ }
+ .mx-md-n16 {
+ margin-right: -4rem !important;
+ margin-left: -4rem !important;
+ }
+ .mx-md-n17 {
+ margin-right: -4.25rem !important;
+ margin-left: -4.25rem !important;
+ }
+ .mx-md-n18 {
+ margin-right: -4.5rem !important;
+ margin-left: -4.5rem !important;
+ }
+ .mx-md-n19 {
+ margin-right: -4.75rem !important;
+ margin-left: -4.75rem !important;
+ }
+ .mx-md-n20 {
+ margin-right: -5rem !important;
+ margin-left: -5rem !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: -0.75rem !important;
+ margin-bottom: -0.75rem !important;
+ }
+ .my-md-n4 {
+ margin-top: -1rem !important;
+ margin-bottom: -1rem !important;
+ }
+ .my-md-n5 {
+ margin-top: -1.25rem !important;
+ margin-bottom: -1.25rem !important;
+ }
+ .my-md-n6 {
+ margin-top: -1.5rem !important;
+ margin-bottom: -1.5rem !important;
+ }
+ .my-md-n7 {
+ margin-top: -1.75rem !important;
+ margin-bottom: -1.75rem !important;
+ }
+ .my-md-n8 {
+ margin-top: -2rem !important;
+ margin-bottom: -2rem !important;
+ }
+ .my-md-n9 {
+ margin-top: -2.25rem !important;
+ margin-bottom: -2.25rem !important;
+ }
+ .my-md-n10 {
+ margin-top: -2.5rem !important;
+ margin-bottom: -2.5rem !important;
+ }
+ .my-md-n11 {
+ margin-top: -2.75rem !important;
+ margin-bottom: -2.75rem !important;
+ }
+ .my-md-n12 {
+ margin-top: -3rem !important;
+ margin-bottom: -3rem !important;
+ }
+ .my-md-n13 {
+ margin-top: -3.25rem !important;
+ margin-bottom: -3.25rem !important;
+ }
+ .my-md-n14 {
+ margin-top: -3.5rem !important;
+ margin-bottom: -3.5rem !important;
+ }
+ .my-md-n15 {
+ margin-top: -3.75rem !important;
+ margin-bottom: -3.75rem !important;
+ }
+ .my-md-n16 {
+ margin-top: -4rem !important;
+ margin-bottom: -4rem !important;
+ }
+ .my-md-n17 {
+ margin-top: -4.25rem !important;
+ margin-bottom: -4.25rem !important;
+ }
+ .my-md-n18 {
+ margin-top: -4.5rem !important;
+ margin-bottom: -4.5rem !important;
+ }
+ .my-md-n19 {
+ margin-top: -4.75rem !important;
+ margin-bottom: -4.75rem !important;
+ }
+ .my-md-n20 {
+ margin-top: -5rem !important;
+ margin-bottom: -5rem !important;
+ }
+ .mt-md-n1 {
+ margin-top: -0.25rem !important;
+ }
+ .mt-md-n2 {
+ margin-top: -0.5rem !important;
+ }
+ .mt-md-n3 {
+ margin-top: -0.75rem !important;
+ }
+ .mt-md-n4 {
+ margin-top: -1rem !important;
+ }
+ .mt-md-n5 {
+ margin-top: -1.25rem !important;
+ }
+ .mt-md-n6 {
+ margin-top: -1.5rem !important;
+ }
+ .mt-md-n7 {
+ margin-top: -1.75rem !important;
+ }
+ .mt-md-n8 {
+ margin-top: -2rem !important;
+ }
+ .mt-md-n9 {
+ margin-top: -2.25rem !important;
+ }
+ .mt-md-n10 {
+ margin-top: -2.5rem !important;
+ }
+ .mt-md-n11 {
+ margin-top: -2.75rem !important;
+ }
+ .mt-md-n12 {
+ margin-top: -3rem !important;
+ }
+ .mt-md-n13 {
+ margin-top: -3.25rem !important;
+ }
+ .mt-md-n14 {
+ margin-top: -3.5rem !important;
+ }
+ .mt-md-n15 {
+ margin-top: -3.75rem !important;
+ }
+ .mt-md-n16 {
+ margin-top: -4rem !important;
+ }
+ .mt-md-n17 {
+ margin-top: -4.25rem !important;
+ }
+ .mt-md-n18 {
+ margin-top: -4.5rem !important;
+ }
+ .mt-md-n19 {
+ margin-top: -4.75rem !important;
+ }
+ .mt-md-n20 {
+ margin-top: -5rem !important;
+ }
+ .me-md-n1 {
+ margin-right: -0.25rem !important;
+ }
+ .me-md-n2 {
+ margin-right: -0.5rem !important;
+ }
+ .me-md-n3 {
+ margin-right: -0.75rem !important;
+ }
+ .me-md-n4 {
+ margin-right: -1rem !important;
+ }
+ .me-md-n5 {
+ margin-right: -1.25rem !important;
+ }
+ .me-md-n6 {
+ margin-right: -1.5rem !important;
+ }
+ .me-md-n7 {
+ margin-right: -1.75rem !important;
+ }
+ .me-md-n8 {
+ margin-right: -2rem !important;
+ }
+ .me-md-n9 {
+ margin-right: -2.25rem !important;
+ }
+ .me-md-n10 {
+ margin-right: -2.5rem !important;
+ }
+ .me-md-n11 {
+ margin-right: -2.75rem !important;
+ }
+ .me-md-n12 {
+ margin-right: -3rem !important;
+ }
+ .me-md-n13 {
+ margin-right: -3.25rem !important;
+ }
+ .me-md-n14 {
+ margin-right: -3.5rem !important;
+ }
+ .me-md-n15 {
+ margin-right: -3.75rem !important;
+ }
+ .me-md-n16 {
+ margin-right: -4rem !important;
+ }
+ .me-md-n17 {
+ margin-right: -4.25rem !important;
+ }
+ .me-md-n18 {
+ margin-right: -4.5rem !important;
+ }
+ .me-md-n19 {
+ margin-right: -4.75rem !important;
+ }
+ .me-md-n20 {
+ margin-right: -5rem !important;
+ }
+ .mb-md-n1 {
+ margin-bottom: -0.25rem !important;
+ }
+ .mb-md-n2 {
+ margin-bottom: -0.5rem !important;
+ }
+ .mb-md-n3 {
+ margin-bottom: -0.75rem !important;
+ }
+ .mb-md-n4 {
+ margin-bottom: -1rem !important;
+ }
+ .mb-md-n5 {
+ margin-bottom: -1.25rem !important;
+ }
+ .mb-md-n6 {
+ margin-bottom: -1.5rem !important;
+ }
+ .mb-md-n7 {
+ margin-bottom: -1.75rem !important;
+ }
+ .mb-md-n8 {
+ margin-bottom: -2rem !important;
+ }
+ .mb-md-n9 {
+ margin-bottom: -2.25rem !important;
+ }
+ .mb-md-n10 {
+ margin-bottom: -2.5rem !important;
+ }
+ .mb-md-n11 {
+ margin-bottom: -2.75rem !important;
+ }
+ .mb-md-n12 {
+ margin-bottom: -3rem !important;
+ }
+ .mb-md-n13 {
+ margin-bottom: -3.25rem !important;
+ }
+ .mb-md-n14 {
+ margin-bottom: -3.5rem !important;
+ }
+ .mb-md-n15 {
+ margin-bottom: -3.75rem !important;
+ }
+ .mb-md-n16 {
+ margin-bottom: -4rem !important;
+ }
+ .mb-md-n17 {
+ margin-bottom: -4.25rem !important;
+ }
+ .mb-md-n18 {
+ margin-bottom: -4.5rem !important;
+ }
+ .mb-md-n19 {
+ margin-bottom: -4.75rem !important;
+ }
+ .mb-md-n20 {
+ margin-bottom: -5rem !important;
+ }
+ .ms-md-n1 {
+ margin-left: -0.25rem !important;
+ }
+ .ms-md-n2 {
+ margin-left: -0.5rem !important;
+ }
+ .ms-md-n3 {
+ margin-left: -0.75rem !important;
+ }
+ .ms-md-n4 {
+ margin-left: -1rem !important;
+ }
+ .ms-md-n5 {
+ margin-left: -1.25rem !important;
+ }
+ .ms-md-n6 {
+ margin-left: -1.5rem !important;
+ }
+ .ms-md-n7 {
+ margin-left: -1.75rem !important;
+ }
+ .ms-md-n8 {
+ margin-left: -2rem !important;
+ }
+ .ms-md-n9 {
+ margin-left: -2.25rem !important;
+ }
+ .ms-md-n10 {
+ margin-left: -2.5rem !important;
+ }
+ .ms-md-n11 {
+ margin-left: -2.75rem !important;
+ }
+ .ms-md-n12 {
+ margin-left: -3rem !important;
+ }
+ .ms-md-n13 {
+ margin-left: -3.25rem !important;
+ }
+ .ms-md-n14 {
+ margin-left: -3.5rem !important;
+ }
+ .ms-md-n15 {
+ margin-left: -3.75rem !important;
+ }
+ .ms-md-n16 {
+ margin-left: -4rem !important;
+ }
+ .ms-md-n17 {
+ margin-left: -4.25rem !important;
+ }
+ .ms-md-n18 {
+ margin-left: -4.5rem !important;
+ }
+ .ms-md-n19 {
+ margin-left: -4.75rem !important;
+ }
+ .ms-md-n20 {
+ margin-left: -5rem !important;
+ }
+ .p-md-0 {
+ padding: 0 !important;
+ }
+ .p-md-1 {
+ padding: 0.25rem !important;
+ }
+ .p-md-2 {
+ padding: 0.5rem !important;
+ }
+ .p-md-3 {
+ padding: 0.75rem !important;
+ }
+ .p-md-4 {
+ padding: 1rem !important;
+ }
+ .p-md-5 {
+ padding: 1.25rem !important;
+ }
+ .p-md-6 {
+ padding: 1.5rem !important;
+ }
+ .p-md-7 {
+ padding: 1.75rem !important;
+ }
+ .p-md-8 {
+ padding: 2rem !important;
+ }
+ .p-md-9 {
+ padding: 2.25rem !important;
+ }
+ .p-md-10 {
+ padding: 2.5rem !important;
+ }
+ .p-md-11 {
+ padding: 2.75rem !important;
+ }
+ .p-md-12 {
+ padding: 3rem !important;
+ }
+ .p-md-13 {
+ padding: 3.25rem !important;
+ }
+ .p-md-14 {
+ padding: 3.5rem !important;
+ }
+ .p-md-15 {
+ padding: 3.75rem !important;
+ }
+ .p-md-16 {
+ padding: 4rem !important;
+ }
+ .p-md-17 {
+ padding: 4.25rem !important;
+ }
+ .p-md-18 {
+ padding: 4.5rem !important;
+ }
+ .p-md-19 {
+ padding: 4.75rem !important;
+ }
+ .p-md-20 {
+ padding: 5rem !important;
+ }
+ .px-md-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-md-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-md-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-md-3 {
+ padding-right: 0.75rem !important;
+ padding-left: 0.75rem !important;
+ }
+ .px-md-4 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-md-5 {
+ padding-right: 1.25rem !important;
+ padding-left: 1.25rem !important;
+ }
+ .px-md-6 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-md-7 {
+ padding-right: 1.75rem !important;
+ padding-left: 1.75rem !important;
+ }
+ .px-md-8 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important;
+ }
+ .px-md-9 {
+ padding-right: 2.25rem !important;
+ padding-left: 2.25rem !important;
+ }
+ .px-md-10 {
+ padding-right: 2.5rem !important;
+ padding-left: 2.5rem !important;
+ }
+ .px-md-11 {
+ padding-right: 2.75rem !important;
+ padding-left: 2.75rem !important;
+ }
+ .px-md-12 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .px-md-13 {
+ padding-right: 3.25rem !important;
+ padding-left: 3.25rem !important;
+ }
+ .px-md-14 {
+ padding-right: 3.5rem !important;
+ padding-left: 3.5rem !important;
+ }
+ .px-md-15 {
+ padding-right: 3.75rem !important;
+ padding-left: 3.75rem !important;
+ }
+ .px-md-16 {
+ padding-right: 4rem !important;
+ padding-left: 4rem !important;
+ }
+ .px-md-17 {
+ padding-right: 4.25rem !important;
+ padding-left: 4.25rem !important;
+ }
+ .px-md-18 {
+ padding-right: 4.5rem !important;
+ padding-left: 4.5rem !important;
+ }
+ .px-md-19 {
+ padding-right: 4.75rem !important;
+ padding-left: 4.75rem !important;
+ }
+ .px-md-20 {
+ padding-right: 5rem !important;
+ padding-left: 5rem !important;
+ }
+ .py-md-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-md-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-md-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-md-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+ }
+ .py-md-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-md-5 {
+ padding-top: 1.25rem !important;
+ padding-bottom: 1.25rem !important;
+ }
+ .py-md-6 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-md-7 {
+ padding-top: 1.75rem !important;
+ padding-bottom: 1.75rem !important;
+ }
+ .py-md-8 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+ }
+ .py-md-9 {
+ padding-top: 2.25rem !important;
+ padding-bottom: 2.25rem !important;
+ }
+ .py-md-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+ }
+ .py-md-11 {
+ padding-top: 2.75rem !important;
+ padding-bottom: 2.75rem !important;
+ }
+ .py-md-12 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .py-md-13 {
+ padding-top: 3.25rem !important;
+ padding-bottom: 3.25rem !important;
+ }
+ .py-md-14 {
+ padding-top: 3.5rem !important;
+ padding-bottom: 3.5rem !important;
+ }
+ .py-md-15 {
+ padding-top: 3.75rem !important;
+ padding-bottom: 3.75rem !important;
+ }
+ .py-md-16 {
+ padding-top: 4rem !important;
+ padding-bottom: 4rem !important;
+ }
+ .py-md-17 {
+ padding-top: 4.25rem !important;
+ padding-bottom: 4.25rem !important;
+ }
+ .py-md-18 {
+ padding-top: 4.5rem !important;
+ padding-bottom: 4.5rem !important;
+ }
+ .py-md-19 {
+ padding-top: 4.75rem !important;
+ padding-bottom: 4.75rem !important;
+ }
+ .py-md-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+ .pt-md-0 {
+ padding-top: 0 !important;
+ }
+ .pt-md-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-md-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-md-3 {
+ padding-top: 0.75rem !important;
+ }
+ .pt-md-4 {
+ padding-top: 1rem !important;
+ }
+ .pt-md-5 {
+ padding-top: 1.25rem !important;
+ }
+ .pt-md-6 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-md-7 {
+ padding-top: 1.75rem !important;
+ }
+ .pt-md-8 {
+ padding-top: 2rem !important;
+ }
+ .pt-md-9 {
+ padding-top: 2.25rem !important;
+ }
+ .pt-md-10 {
+ padding-top: 2.5rem !important;
+ }
+ .pt-md-11 {
+ padding-top: 2.75rem !important;
+ }
+ .pt-md-12 {
+ padding-top: 3rem !important;
+ }
+ .pt-md-13 {
+ padding-top: 3.25rem !important;
+ }
+ .pt-md-14 {
+ padding-top: 3.5rem !important;
+ }
+ .pt-md-15 {
+ padding-top: 3.75rem !important;
+ }
+ .pt-md-16 {
+ padding-top: 4rem !important;
+ }
+ .pt-md-17 {
+ padding-top: 4.25rem !important;
+ }
+ .pt-md-18 {
+ padding-top: 4.5rem !important;
+ }
+ .pt-md-19 {
+ padding-top: 4.75rem !important;
+ }
+ .pt-md-20 {
+ padding-top: 5rem !important;
+ }
+ .pe-md-0 {
+ padding-right: 0 !important;
+ }
+ .pe-md-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-md-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-md-3 {
+ padding-right: 0.75rem !important;
+ }
+ .pe-md-4 {
+ padding-right: 1rem !important;
+ }
+ .pe-md-5 {
+ padding-right: 1.25rem !important;
+ }
+ .pe-md-6 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-md-7 {
+ padding-right: 1.75rem !important;
+ }
+ .pe-md-8 {
+ padding-right: 2rem !important;
+ }
+ .pe-md-9 {
+ padding-right: 2.25rem !important;
+ }
+ .pe-md-10 {
+ padding-right: 2.5rem !important;
+ }
+ .pe-md-11 {
+ padding-right: 2.75rem !important;
+ }
+ .pe-md-12 {
+ padding-right: 3rem !important;
+ }
+ .pe-md-13 {
+ padding-right: 3.25rem !important;
+ }
+ .pe-md-14 {
+ padding-right: 3.5rem !important;
+ }
+ .pe-md-15 {
+ padding-right: 3.75rem !important;
+ }
+ .pe-md-16 {
+ padding-right: 4rem !important;
+ }
+ .pe-md-17 {
+ padding-right: 4.25rem !important;
+ }
+ .pe-md-18 {
+ padding-right: 4.5rem !important;
+ }
+ .pe-md-19 {
+ padding-right: 4.75rem !important;
+ }
+ .pe-md-20 {
+ padding-right: 5rem !important;
+ }
+ .pb-md-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-md-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-md-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-md-3 {
+ padding-bottom: 0.75rem !important;
+ }
+ .pb-md-4 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-md-5 {
+ padding-bottom: 1.25rem !important;
+ }
+ .pb-md-6 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-md-7 {
+ padding-bottom: 1.75rem !important;
+ }
+ .pb-md-8 {
+ padding-bottom: 2rem !important;
+ }
+ .pb-md-9 {
+ padding-bottom: 2.25rem !important;
+ }
+ .pb-md-10 {
+ padding-bottom: 2.5rem !important;
+ }
+ .pb-md-11 {
+ padding-bottom: 2.75rem !important;
+ }
+ .pb-md-12 {
+ padding-bottom: 3rem !important;
+ }
+ .pb-md-13 {
+ padding-bottom: 3.25rem !important;
+ }
+ .pb-md-14 {
+ padding-bottom: 3.5rem !important;
+ }
+ .pb-md-15 {
+ padding-bottom: 3.75rem !important;
+ }
+ .pb-md-16 {
+ padding-bottom: 4rem !important;
+ }
+ .pb-md-17 {
+ padding-bottom: 4.25rem !important;
+ }
+ .pb-md-18 {
+ padding-bottom: 4.5rem !important;
+ }
+ .pb-md-19 {
+ padding-bottom: 4.75rem !important;
+ }
+ .pb-md-20 {
+ padding-bottom: 5rem !important;
+ }
+ .ps-md-0 {
+ padding-left: 0 !important;
+ }
+ .ps-md-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-md-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-md-3 {
+ padding-left: 0.75rem !important;
+ }
+ .ps-md-4 {
+ padding-left: 1rem !important;
+ }
+ .ps-md-5 {
+ padding-left: 1.25rem !important;
+ }
+ .ps-md-6 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-md-7 {
+ padding-left: 1.75rem !important;
+ }
+ .ps-md-8 {
+ padding-left: 2rem !important;
+ }
+ .ps-md-9 {
+ padding-left: 2.25rem !important;
+ }
+ .ps-md-10 {
+ padding-left: 2.5rem !important;
+ }
+ .ps-md-11 {
+ padding-left: 2.75rem !important;
+ }
+ .ps-md-12 {
+ padding-left: 3rem !important;
+ }
+ .ps-md-13 {
+ padding-left: 3.25rem !important;
+ }
+ .ps-md-14 {
+ padding-left: 3.5rem !important;
+ }
+ .ps-md-15 {
+ padding-left: 3.75rem !important;
+ }
+ .ps-md-16 {
+ padding-left: 4rem !important;
+ }
+ .ps-md-17 {
+ padding-left: 4.25rem !important;
+ }
+ .ps-md-18 {
+ padding-left: 4.5rem !important;
+ }
+ .ps-md-19 {
+ padding-left: 4.75rem !important;
+ }
+ .ps-md-20 {
+ padding-left: 5rem !important;
+ }
+ .gap-md-0 {
+ gap: 0 !important;
+ }
+ .gap-md-1 {
+ gap: 0.25rem !important;
+ }
+ .gap-md-2 {
+ gap: 0.5rem !important;
+ }
+ .gap-md-3 {
+ gap: 0.75rem !important;
+ }
+ .gap-md-4 {
+ gap: 1rem !important;
+ }
+ .gap-md-5 {
+ gap: 1.25rem !important;
+ }
+ .gap-md-6 {
+ gap: 1.5rem !important;
+ }
+ .gap-md-7 {
+ gap: 1.75rem !important;
+ }
+ .gap-md-8 {
+ gap: 2rem !important;
+ }
+ .gap-md-9 {
+ gap: 2.25rem !important;
+ }
+ .gap-md-10 {
+ gap: 2.5rem !important;
+ }
+ .gap-md-11 {
+ gap: 2.75rem !important;
+ }
+ .gap-md-12 {
+ gap: 3rem !important;
+ }
+ .gap-md-13 {
+ gap: 3.25rem !important;
+ }
+ .gap-md-14 {
+ gap: 3.5rem !important;
+ }
+ .gap-md-15 {
+ gap: 3.75rem !important;
+ }
+ .gap-md-16 {
+ gap: 4rem !important;
+ }
+ .gap-md-17 {
+ gap: 4.25rem !important;
+ }
+ .gap-md-18 {
+ gap: 4.5rem !important;
+ }
+ .gap-md-19 {
+ gap: 4.75rem !important;
+ }
+ .gap-md-20 {
+ gap: 5rem !important;
+ }
+ .row-gap-md-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-md-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-md-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-md-3 {
+ row-gap: 0.75rem !important;
+ }
+ .row-gap-md-4 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-md-5 {
+ row-gap: 1.25rem !important;
+ }
+ .row-gap-md-6 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-md-7 {
+ row-gap: 1.75rem !important;
+ }
+ .row-gap-md-8 {
+ row-gap: 2rem !important;
+ }
+ .row-gap-md-9 {
+ row-gap: 2.25rem !important;
+ }
+ .row-gap-md-10 {
+ row-gap: 2.5rem !important;
+ }
+ .row-gap-md-11 {
+ row-gap: 2.75rem !important;
+ }
+ .row-gap-md-12 {
+ row-gap: 3rem !important;
+ }
+ .row-gap-md-13 {
+ row-gap: 3.25rem !important;
+ }
+ .row-gap-md-14 {
+ row-gap: 3.5rem !important;
+ }
+ .row-gap-md-15 {
+ row-gap: 3.75rem !important;
+ }
+ .row-gap-md-16 {
+ row-gap: 4rem !important;
+ }
+ .row-gap-md-17 {
+ row-gap: 4.25rem !important;
+ }
+ .row-gap-md-18 {
+ row-gap: 4.5rem !important;
+ }
+ .row-gap-md-19 {
+ row-gap: 4.75rem !important;
+ }
+ .row-gap-md-20 {
+ row-gap: 5rem !important;
+ }
+ .column-gap-md-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-md-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-md-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-md-3 {
+ column-gap: 0.75rem !important;
+ }
+ .column-gap-md-4 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-md-5 {
+ column-gap: 1.25rem !important;
+ }
+ .column-gap-md-6 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-md-7 {
+ column-gap: 1.75rem !important;
+ }
+ .column-gap-md-8 {
+ column-gap: 2rem !important;
+ }
+ .column-gap-md-9 {
+ column-gap: 2.25rem !important;
+ }
+ .column-gap-md-10 {
+ column-gap: 2.5rem !important;
+ }
+ .column-gap-md-11 {
+ column-gap: 2.75rem !important;
+ }
+ .column-gap-md-12 {
+ column-gap: 3rem !important;
+ }
+ .column-gap-md-13 {
+ column-gap: 3.25rem !important;
+ }
+ .column-gap-md-14 {
+ column-gap: 3.5rem !important;
+ }
+ .column-gap-md-15 {
+ column-gap: 3.75rem !important;
+ }
+ .column-gap-md-16 {
+ column-gap: 4rem !important;
+ }
+ .column-gap-md-17 {
+ column-gap: 4.25rem !important;
+ }
+ .column-gap-md-18 {
+ column-gap: 4.5rem !important;
+ }
+ .column-gap-md-19 {
+ column-gap: 4.75rem !important;
+ }
+ .column-gap-md-20 {
+ column-gap: 5rem !important;
+ }
+ .fs-md-1 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+ }
+ .fs-md-2 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+ }
+ .fs-md-3 {
+ font-size: calc(1.26rem + 0.12vw) !important;
+ }
+ .fs-md-4 {
+ font-size: 1.25rem !important;
+ }
+ .fs-md-5 {
+ font-size: 1.15rem !important;
+ }
+ .fs-md-6 {
+ font-size: 1.075rem !important;
+ }
+ .fs-md-7 {
+ font-size: 0.95rem !important;
+ }
+ .fs-md-8 {
+ font-size: 0.85rem !important;
+ }
+ .fs-md-9 {
+ font-size: 0.75rem !important;
+ }
+ .fs-md-10 {
+ font-size: 0.5rem !important;
+ }
+ .fs-md-base {
+ font-size: 1rem !important;
+ }
+ .fs-md-fluid {
+ font-size: 100% !important;
+ }
+ .fs-md-2x {
+ font-size: calc(1.325rem + 0.9vw) !important;
+ }
+ .fs-md-2qx {
+ font-size: calc(1.35rem + 1.2vw) !important;
+ }
+ .fs-md-2hx {
+ font-size: calc(1.375rem + 1.5vw) !important;
+ }
+ .fs-md-2tx {
+ font-size: calc(1.4rem + 1.8vw) !important;
+ }
+ .fs-md-3x {
+ font-size: calc(1.425rem + 2.1vw) !important;
+ }
+ .fs-md-3qx {
+ font-size: calc(1.45rem + 2.4vw) !important;
+ }
+ .fs-md-3hx {
+ font-size: calc(1.475rem + 2.7vw) !important;
+ }
+ .fs-md-3tx {
+ font-size: calc(1.5rem + 3vw) !important;
+ }
+ .fs-md-4x {
+ font-size: calc(1.525rem + 3.3vw) !important;
+ }
+ .fs-md-4qx {
+ font-size: calc(1.55rem + 3.6vw) !important;
+ }
+ .fs-md-4hx {
+ font-size: calc(1.575rem + 3.9vw) !important;
+ }
+ .fs-md-4tx {
+ font-size: calc(1.6rem + 4.2vw) !important;
+ }
+ .fs-md-5x {
+ font-size: calc(1.625rem + 4.5vw) !important;
+ }
+ .fs-md-5qx {
+ font-size: calc(1.65rem + 4.8vw) !important;
+ }
+ .fs-md-5hx {
+ font-size: calc(1.675rem + 5.1vw) !important;
+ }
+ .fs-md-5tx {
+ font-size: calc(1.7rem + 5.4vw) !important;
+ }
+ .text-md-start {
+ text-align: left !important;
+ }
+ .text-md-end {
+ text-align: right !important;
+ }
+ .text-md-center {
+ text-align: center !important;
+ }
+ .min-w-md-unset {
+ min-width: unset !important;
+ }
+ .min-w-md-25 {
+ min-width: 25% !important;
+ }
+ .min-w-md-50 {
+ min-width: 50% !important;
+ }
+ .min-w-md-75 {
+ min-width: 75% !important;
+ }
+ .min-w-md-100 {
+ min-width: 100% !important;
+ }
+ .min-w-md-auto {
+ min-width: auto !important;
+ }
+ .min-w-md-1px {
+ min-width: 1px !important;
+ }
+ .min-w-md-2px {
+ min-width: 2px !important;
+ }
+ .min-w-md-3px {
+ min-width: 3px !important;
+ }
+ .min-w-md-4px {
+ min-width: 4px !important;
+ }
+ .min-w-md-5px {
+ min-width: 5px !important;
+ }
+ .min-w-md-6px {
+ min-width: 6px !important;
+ }
+ .min-w-md-7px {
+ min-width: 7px !important;
+ }
+ .min-w-md-8px {
+ min-width: 8px !important;
+ }
+ .min-w-md-9px {
+ min-width: 9px !important;
+ }
+ .min-w-md-10px {
+ min-width: 10px !important;
+ }
+ .min-w-md-15px {
+ min-width: 15px !important;
+ }
+ .min-w-md-20px {
+ min-width: 20px !important;
+ }
+ .min-w-md-25px {
+ min-width: 25px !important;
+ }
+ .min-w-md-30px {
+ min-width: 30px !important;
+ }
+ .min-w-md-35px {
+ min-width: 35px !important;
+ }
+ .min-w-md-40px {
+ min-width: 40px !important;
+ }
+ .min-w-md-45px {
+ min-width: 45px !important;
+ }
+ .min-w-md-50px {
+ min-width: 50px !important;
+ }
+ .min-w-md-55px {
+ min-width: 55px !important;
+ }
+ .min-w-md-60px {
+ min-width: 60px !important;
+ }
+ .min-w-md-65px {
+ min-width: 65px !important;
+ }
+ .min-w-md-70px {
+ min-width: 70px !important;
+ }
+ .min-w-md-75px {
+ min-width: 75px !important;
+ }
+ .min-w-md-80px {
+ min-width: 80px !important;
+ }
+ .min-w-md-85px {
+ min-width: 85px !important;
+ }
+ .min-w-md-90px {
+ min-width: 90px !important;
+ }
+ .min-w-md-95px {
+ min-width: 95px !important;
+ }
+ .min-w-md-100px {
+ min-width: 100px !important;
+ }
+ .min-w-md-125px {
+ min-width: 125px !important;
+ }
+ .min-w-md-150px {
+ min-width: 150px !important;
+ }
+ .min-w-md-175px {
+ min-width: 175px !important;
+ }
+ .min-w-md-200px {
+ min-width: 200px !important;
+ }
+ .min-w-md-225px {
+ min-width: 225px !important;
+ }
+ .min-w-md-250px {
+ min-width: 250px !important;
+ }
+ .min-w-md-275px {
+ min-width: 275px !important;
+ }
+ .min-w-md-300px {
+ min-width: 300px !important;
+ }
+ .min-w-md-325px {
+ min-width: 325px !important;
+ }
+ .min-w-md-350px {
+ min-width: 350px !important;
+ }
+ .min-w-md-375px {
+ min-width: 375px !important;
+ }
+ .min-w-md-400px {
+ min-width: 400px !important;
+ }
+ .min-w-md-425px {
+ min-width: 425px !important;
+ }
+ .min-w-md-450px {
+ min-width: 450px !important;
+ }
+ .min-w-md-475px {
+ min-width: 475px !important;
+ }
+ .min-w-md-500px {
+ min-width: 500px !important;
+ }
+ .min-w-md-550px {
+ min-width: 550px !important;
+ }
+ .min-w-md-600px {
+ min-width: 600px !important;
+ }
+ .min-w-md-650px {
+ min-width: 650px !important;
+ }
+ .min-w-md-700px {
+ min-width: 700px !important;
+ }
+ .min-w-md-750px {
+ min-width: 750px !important;
+ }
+ .min-w-md-800px {
+ min-width: 800px !important;
+ }
+ .min-w-md-850px {
+ min-width: 850px !important;
+ }
+ .min-w-md-900px {
+ min-width: 900px !important;
+ }
+ .min-w-md-950px {
+ min-width: 950px !important;
+ }
+ .min-w-md-1000px {
+ min-width: 1000px !important;
+ }
+ .min-h-md-unset {
+ min-height: unset !important;
+ }
+ .min-h-md-25 {
+ min-height: 25% !important;
+ }
+ .min-h-md-50 {
+ min-height: 50% !important;
+ }
+ .min-h-md-75 {
+ min-height: 75% !important;
+ }
+ .min-h-md-100 {
+ min-height: 100% !important;
+ }
+ .min-h-md-auto {
+ min-height: auto !important;
+ }
+ .min-h-md-1px {
+ min-height: 1px !important;
+ }
+ .min-h-md-2px {
+ min-height: 2px !important;
+ }
+ .min-h-md-3px {
+ min-height: 3px !important;
+ }
+ .min-h-md-4px {
+ min-height: 4px !important;
+ }
+ .min-h-md-5px {
+ min-height: 5px !important;
+ }
+ .min-h-md-6px {
+ min-height: 6px !important;
+ }
+ .min-h-md-7px {
+ min-height: 7px !important;
+ }
+ .min-h-md-8px {
+ min-height: 8px !important;
+ }
+ .min-h-md-9px {
+ min-height: 9px !important;
+ }
+ .min-h-md-10px {
+ min-height: 10px !important;
+ }
+ .min-h-md-15px {
+ min-height: 15px !important;
+ }
+ .min-h-md-20px {
+ min-height: 20px !important;
+ }
+ .min-h-md-25px {
+ min-height: 25px !important;
+ }
+ .min-h-md-30px {
+ min-height: 30px !important;
+ }
+ .min-h-md-35px {
+ min-height: 35px !important;
+ }
+ .min-h-md-40px {
+ min-height: 40px !important;
+ }
+ .min-h-md-45px {
+ min-height: 45px !important;
+ }
+ .min-h-md-50px {
+ min-height: 50px !important;
+ }
+ .min-h-md-55px {
+ min-height: 55px !important;
+ }
+ .min-h-md-60px {
+ min-height: 60px !important;
+ }
+ .min-h-md-65px {
+ min-height: 65px !important;
+ }
+ .min-h-md-70px {
+ min-height: 70px !important;
+ }
+ .min-h-md-75px {
+ min-height: 75px !important;
+ }
+ .min-h-md-80px {
+ min-height: 80px !important;
+ }
+ .min-h-md-85px {
+ min-height: 85px !important;
+ }
+ .min-h-md-90px {
+ min-height: 90px !important;
+ }
+ .min-h-md-95px {
+ min-height: 95px !important;
+ }
+ .min-h-md-100px {
+ min-height: 100px !important;
+ }
+ .min-h-md-125px {
+ min-height: 125px !important;
+ }
+ .min-h-md-150px {
+ min-height: 150px !important;
+ }
+ .min-h-md-175px {
+ min-height: 175px !important;
+ }
+ .min-h-md-200px {
+ min-height: 200px !important;
+ }
+ .min-h-md-225px {
+ min-height: 225px !important;
+ }
+ .min-h-md-250px {
+ min-height: 250px !important;
+ }
+ .min-h-md-275px {
+ min-height: 275px !important;
+ }
+ .min-h-md-300px {
+ min-height: 300px !important;
+ }
+ .min-h-md-325px {
+ min-height: 325px !important;
+ }
+ .min-h-md-350px {
+ min-height: 350px !important;
+ }
+ .min-h-md-375px {
+ min-height: 375px !important;
+ }
+ .min-h-md-400px {
+ min-height: 400px !important;
+ }
+ .min-h-md-425px {
+ min-height: 425px !important;
+ }
+ .min-h-md-450px {
+ min-height: 450px !important;
+ }
+ .min-h-md-475px {
+ min-height: 475px !important;
+ }
+ .min-h-md-500px {
+ min-height: 500px !important;
+ }
+ .min-h-md-550px {
+ min-height: 550px !important;
+ }
+ .min-h-md-600px {
+ min-height: 600px !important;
+ }
+ .min-h-md-650px {
+ min-height: 650px !important;
+ }
+ .min-h-md-700px {
+ min-height: 700px !important;
+ }
+ .min-h-md-750px {
+ min-height: 750px !important;
+ }
+ .min-h-md-800px {
+ min-height: 800px !important;
+ }
+ .min-h-md-850px {
+ min-height: 850px !important;
+ }
+ .min-h-md-900px {
+ min-height: 900px !important;
+ }
+ .min-h-md-950px {
+ min-height: 950px !important;
+ }
+ .min-h-md-1000px {
+ min-height: 1000px !important;
+ }
+}
+@media (min-width: 992px) {
+ .float-lg-start {
+ float: left !important;
+ }
+ .float-lg-end {
+ float: right !important;
+ }
+ .float-lg-none {
+ float: none !important;
+ }
+ .object-fit-lg-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-lg-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-lg-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-lg-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-lg-none {
+ object-fit: none !important;
+ }
+ .overflow-lg-auto {
+ overflow: auto !important;
+ }
+ .overflow-lg-hidden {
+ overflow: hidden !important;
+ }
+ .overflow-lg-visible {
+ overflow: visible !important;
+ }
+ .overflow-lg-scroll {
+ overflow: scroll !important;
+ }
+ .d-lg-inline {
+ display: inline !important;
+ }
+ .d-lg-inline-block {
+ display: inline-block !important;
+ }
+ .d-lg-block {
+ display: block !important;
+ }
+ .d-lg-grid {
+ display: grid !important;
+ }
+ .d-lg-table {
+ display: table !important;
+ }
+ .d-lg-table-row {
+ display: table-row !important;
+ }
+ .d-lg-table-cell {
+ display: table-cell !important;
+ }
+ .d-lg-flex {
+ display: flex !important;
+ }
+ .d-lg-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-lg-none {
+ display: none !important;
+ }
+ .position-lg-static {
+ position: static !important;
+ }
+ .position-lg-relative {
+ position: relative !important;
+ }
+ .position-lg-absolute {
+ position: absolute !important;
+ }
+ .position-lg-fixed {
+ position: fixed !important;
+ }
+ .position-lg-sticky {
+ position: sticky !important;
+ }
+ .w-lg-unset {
+ width: unset !important;
+ }
+ .w-lg-25 {
+ width: 25% !important;
+ }
+ .w-lg-50 {
+ width: 50% !important;
+ }
+ .w-lg-75 {
+ width: 75% !important;
+ }
+ .w-lg-100 {
+ width: 100% !important;
+ }
+ .w-lg-auto {
+ width: auto !important;
+ }
+ .w-lg-1px {
+ width: 1px !important;
+ }
+ .w-lg-2px {
+ width: 2px !important;
+ }
+ .w-lg-3px {
+ width: 3px !important;
+ }
+ .w-lg-4px {
+ width: 4px !important;
+ }
+ .w-lg-5px {
+ width: 5px !important;
+ }
+ .w-lg-6px {
+ width: 6px !important;
+ }
+ .w-lg-7px {
+ width: 7px !important;
+ }
+ .w-lg-8px {
+ width: 8px !important;
+ }
+ .w-lg-9px {
+ width: 9px !important;
+ }
+ .w-lg-10px {
+ width: 10px !important;
+ }
+ .w-lg-15px {
+ width: 15px !important;
+ }
+ .w-lg-20px {
+ width: 20px !important;
+ }
+ .w-lg-25px {
+ width: 25px !important;
+ }
+ .w-lg-30px {
+ width: 30px !important;
+ }
+ .w-lg-35px {
+ width: 35px !important;
+ }
+ .w-lg-40px {
+ width: 40px !important;
+ }
+ .w-lg-45px {
+ width: 45px !important;
+ }
+ .w-lg-50px {
+ width: 50px !important;
+ }
+ .w-lg-55px {
+ width: 55px !important;
+ }
+ .w-lg-60px {
+ width: 60px !important;
+ }
+ .w-lg-65px {
+ width: 65px !important;
+ }
+ .w-lg-70px {
+ width: 70px !important;
+ }
+ .w-lg-75px {
+ width: 75px !important;
+ }
+ .w-lg-80px {
+ width: 80px !important;
+ }
+ .w-lg-85px {
+ width: 85px !important;
+ }
+ .w-lg-90px {
+ width: 90px !important;
+ }
+ .w-lg-95px {
+ width: 95px !important;
+ }
+ .w-lg-100px {
+ width: 100px !important;
+ }
+ .w-lg-125px {
+ width: 125px !important;
+ }
+ .w-lg-150px {
+ width: 150px !important;
+ }
+ .w-lg-175px {
+ width: 175px !important;
+ }
+ .w-lg-200px {
+ width: 200px !important;
+ }
+ .w-lg-225px {
+ width: 225px !important;
+ }
+ .w-lg-250px {
+ width: 250px !important;
+ }
+ .w-lg-275px {
+ width: 275px !important;
+ }
+ .w-lg-300px {
+ width: 300px !important;
+ }
+ .w-lg-325px {
+ width: 325px !important;
+ }
+ .w-lg-350px {
+ width: 350px !important;
+ }
+ .w-lg-375px {
+ width: 375px !important;
+ }
+ .w-lg-400px {
+ width: 400px !important;
+ }
+ .w-lg-425px {
+ width: 425px !important;
+ }
+ .w-lg-450px {
+ width: 450px !important;
+ }
+ .w-lg-475px {
+ width: 475px !important;
+ }
+ .w-lg-500px {
+ width: 500px !important;
+ }
+ .w-lg-550px {
+ width: 550px !important;
+ }
+ .w-lg-600px {
+ width: 600px !important;
+ }
+ .w-lg-650px {
+ width: 650px !important;
+ }
+ .w-lg-700px {
+ width: 700px !important;
+ }
+ .w-lg-750px {
+ width: 750px !important;
+ }
+ .w-lg-800px {
+ width: 800px !important;
+ }
+ .w-lg-850px {
+ width: 850px !important;
+ }
+ .w-lg-900px {
+ width: 900px !important;
+ }
+ .w-lg-950px {
+ width: 950px !important;
+ }
+ .w-lg-1000px {
+ width: 1000px !important;
+ }
+ .mw-lg-unset {
+ max-width: unset !important;
+ }
+ .mw-lg-25 {
+ max-width: 25% !important;
+ }
+ .mw-lg-50 {
+ max-width: 50% !important;
+ }
+ .mw-lg-75 {
+ max-width: 75% !important;
+ }
+ .mw-lg-100 {
+ max-width: 100% !important;
+ }
+ .mw-lg-auto {
+ max-width: auto !important;
+ }
+ .mw-lg-1px {
+ max-width: 1px !important;
+ }
+ .mw-lg-2px {
+ max-width: 2px !important;
+ }
+ .mw-lg-3px {
+ max-width: 3px !important;
+ }
+ .mw-lg-4px {
+ max-width: 4px !important;
+ }
+ .mw-lg-5px {
+ max-width: 5px !important;
+ }
+ .mw-lg-6px {
+ max-width: 6px !important;
+ }
+ .mw-lg-7px {
+ max-width: 7px !important;
+ }
+ .mw-lg-8px {
+ max-width: 8px !important;
+ }
+ .mw-lg-9px {
+ max-width: 9px !important;
+ }
+ .mw-lg-10px {
+ max-width: 10px !important;
+ }
+ .mw-lg-15px {
+ max-width: 15px !important;
+ }
+ .mw-lg-20px {
+ max-width: 20px !important;
+ }
+ .mw-lg-25px {
+ max-width: 25px !important;
+ }
+ .mw-lg-30px {
+ max-width: 30px !important;
+ }
+ .mw-lg-35px {
+ max-width: 35px !important;
+ }
+ .mw-lg-40px {
+ max-width: 40px !important;
+ }
+ .mw-lg-45px {
+ max-width: 45px !important;
+ }
+ .mw-lg-50px {
+ max-width: 50px !important;
+ }
+ .mw-lg-55px {
+ max-width: 55px !important;
+ }
+ .mw-lg-60px {
+ max-width: 60px !important;
+ }
+ .mw-lg-65px {
+ max-width: 65px !important;
+ }
+ .mw-lg-70px {
+ max-width: 70px !important;
+ }
+ .mw-lg-75px {
+ max-width: 75px !important;
+ }
+ .mw-lg-80px {
+ max-width: 80px !important;
+ }
+ .mw-lg-85px {
+ max-width: 85px !important;
+ }
+ .mw-lg-90px {
+ max-width: 90px !important;
+ }
+ .mw-lg-95px {
+ max-width: 95px !important;
+ }
+ .mw-lg-100px {
+ max-width: 100px !important;
+ }
+ .mw-lg-125px {
+ max-width: 125px !important;
+ }
+ .mw-lg-150px {
+ max-width: 150px !important;
+ }
+ .mw-lg-175px {
+ max-width: 175px !important;
+ }
+ .mw-lg-200px {
+ max-width: 200px !important;
+ }
+ .mw-lg-225px {
+ max-width: 225px !important;
+ }
+ .mw-lg-250px {
+ max-width: 250px !important;
+ }
+ .mw-lg-275px {
+ max-width: 275px !important;
+ }
+ .mw-lg-300px {
+ max-width: 300px !important;
+ }
+ .mw-lg-325px {
+ max-width: 325px !important;
+ }
+ .mw-lg-350px {
+ max-width: 350px !important;
+ }
+ .mw-lg-375px {
+ max-width: 375px !important;
+ }
+ .mw-lg-400px {
+ max-width: 400px !important;
+ }
+ .mw-lg-425px {
+ max-width: 425px !important;
+ }
+ .mw-lg-450px {
+ max-width: 450px !important;
+ }
+ .mw-lg-475px {
+ max-width: 475px !important;
+ }
+ .mw-lg-500px {
+ max-width: 500px !important;
+ }
+ .mw-lg-550px {
+ max-width: 550px !important;
+ }
+ .mw-lg-600px {
+ max-width: 600px !important;
+ }
+ .mw-lg-650px {
+ max-width: 650px !important;
+ }
+ .mw-lg-700px {
+ max-width: 700px !important;
+ }
+ .mw-lg-750px {
+ max-width: 750px !important;
+ }
+ .mw-lg-800px {
+ max-width: 800px !important;
+ }
+ .mw-lg-850px {
+ max-width: 850px !important;
+ }
+ .mw-lg-900px {
+ max-width: 900px !important;
+ }
+ .mw-lg-950px {
+ max-width: 950px !important;
+ }
+ .mw-lg-1000px {
+ max-width: 1000px !important;
+ }
+ .h-lg-unset {
+ height: unset !important;
+ }
+ .h-lg-25 {
+ height: 25% !important;
+ }
+ .h-lg-50 {
+ height: 50% !important;
+ }
+ .h-lg-75 {
+ height: 75% !important;
+ }
+ .h-lg-100 {
+ height: 100% !important;
+ }
+ .h-lg-auto {
+ height: auto !important;
+ }
+ .h-lg-1px {
+ height: 1px !important;
+ }
+ .h-lg-2px {
+ height: 2px !important;
+ }
+ .h-lg-3px {
+ height: 3px !important;
+ }
+ .h-lg-4px {
+ height: 4px !important;
+ }
+ .h-lg-5px {
+ height: 5px !important;
+ }
+ .h-lg-6px {
+ height: 6px !important;
+ }
+ .h-lg-7px {
+ height: 7px !important;
+ }
+ .h-lg-8px {
+ height: 8px !important;
+ }
+ .h-lg-9px {
+ height: 9px !important;
+ }
+ .h-lg-10px {
+ height: 10px !important;
+ }
+ .h-lg-15px {
+ height: 15px !important;
+ }
+ .h-lg-20px {
+ height: 20px !important;
+ }
+ .h-lg-25px {
+ height: 25px !important;
+ }
+ .h-lg-30px {
+ height: 30px !important;
+ }
+ .h-lg-35px {
+ height: 35px !important;
+ }
+ .h-lg-40px {
+ height: 40px !important;
+ }
+ .h-lg-45px {
+ height: 45px !important;
+ }
+ .h-lg-50px {
+ height: 50px !important;
+ }
+ .h-lg-55px {
+ height: 55px !important;
+ }
+ .h-lg-60px {
+ height: 60px !important;
+ }
+ .h-lg-65px {
+ height: 65px !important;
+ }
+ .h-lg-70px {
+ height: 70px !important;
+ }
+ .h-lg-75px {
+ height: 75px !important;
+ }
+ .h-lg-80px {
+ height: 80px !important;
+ }
+ .h-lg-85px {
+ height: 85px !important;
+ }
+ .h-lg-90px {
+ height: 90px !important;
+ }
+ .h-lg-95px {
+ height: 95px !important;
+ }
+ .h-lg-100px {
+ height: 100px !important;
+ }
+ .h-lg-125px {
+ height: 125px !important;
+ }
+ .h-lg-150px {
+ height: 150px !important;
+ }
+ .h-lg-175px {
+ height: 175px !important;
+ }
+ .h-lg-200px {
+ height: 200px !important;
+ }
+ .h-lg-225px {
+ height: 225px !important;
+ }
+ .h-lg-250px {
+ height: 250px !important;
+ }
+ .h-lg-275px {
+ height: 275px !important;
+ }
+ .h-lg-300px {
+ height: 300px !important;
+ }
+ .h-lg-325px {
+ height: 325px !important;
+ }
+ .h-lg-350px {
+ height: 350px !important;
+ }
+ .h-lg-375px {
+ height: 375px !important;
+ }
+ .h-lg-400px {
+ height: 400px !important;
+ }
+ .h-lg-425px {
+ height: 425px !important;
+ }
+ .h-lg-450px {
+ height: 450px !important;
+ }
+ .h-lg-475px {
+ height: 475px !important;
+ }
+ .h-lg-500px {
+ height: 500px !important;
+ }
+ .h-lg-550px {
+ height: 550px !important;
+ }
+ .h-lg-600px {
+ height: 600px !important;
+ }
+ .h-lg-650px {
+ height: 650px !important;
+ }
+ .h-lg-700px {
+ height: 700px !important;
+ }
+ .h-lg-750px {
+ height: 750px !important;
+ }
+ .h-lg-800px {
+ height: 800px !important;
+ }
+ .h-lg-850px {
+ height: 850px !important;
+ }
+ .h-lg-900px {
+ height: 900px !important;
+ }
+ .h-lg-950px {
+ height: 950px !important;
+ }
+ .h-lg-1000px {
+ height: 1000px !important;
+ }
+ .mh-lg-unset {
+ max-height: unset !important;
+ }
+ .mh-lg-25 {
+ max-height: 25% !important;
+ }
+ .mh-lg-50 {
+ max-height: 50% !important;
+ }
+ .mh-lg-75 {
+ max-height: 75% !important;
+ }
+ .mh-lg-100 {
+ max-height: 100% !important;
+ }
+ .mh-lg-auto {
+ max-height: auto !important;
+ }
+ .mh-lg-1px {
+ max-height: 1px !important;
+ }
+ .mh-lg-2px {
+ max-height: 2px !important;
+ }
+ .mh-lg-3px {
+ max-height: 3px !important;
+ }
+ .mh-lg-4px {
+ max-height: 4px !important;
+ }
+ .mh-lg-5px {
+ max-height: 5px !important;
+ }
+ .mh-lg-6px {
+ max-height: 6px !important;
+ }
+ .mh-lg-7px {
+ max-height: 7px !important;
+ }
+ .mh-lg-8px {
+ max-height: 8px !important;
+ }
+ .mh-lg-9px {
+ max-height: 9px !important;
+ }
+ .mh-lg-10px {
+ max-height: 10px !important;
+ }
+ .mh-lg-15px {
+ max-height: 15px !important;
+ }
+ .mh-lg-20px {
+ max-height: 20px !important;
+ }
+ .mh-lg-25px {
+ max-height: 25px !important;
+ }
+ .mh-lg-30px {
+ max-height: 30px !important;
+ }
+ .mh-lg-35px {
+ max-height: 35px !important;
+ }
+ .mh-lg-40px {
+ max-height: 40px !important;
+ }
+ .mh-lg-45px {
+ max-height: 45px !important;
+ }
+ .mh-lg-50px {
+ max-height: 50px !important;
+ }
+ .mh-lg-55px {
+ max-height: 55px !important;
+ }
+ .mh-lg-60px {
+ max-height: 60px !important;
+ }
+ .mh-lg-65px {
+ max-height: 65px !important;
+ }
+ .mh-lg-70px {
+ max-height: 70px !important;
+ }
+ .mh-lg-75px {
+ max-height: 75px !important;
+ }
+ .mh-lg-80px {
+ max-height: 80px !important;
+ }
+ .mh-lg-85px {
+ max-height: 85px !important;
+ }
+ .mh-lg-90px {
+ max-height: 90px !important;
+ }
+ .mh-lg-95px {
+ max-height: 95px !important;
+ }
+ .mh-lg-100px {
+ max-height: 100px !important;
+ }
+ .mh-lg-125px {
+ max-height: 125px !important;
+ }
+ .mh-lg-150px {
+ max-height: 150px !important;
+ }
+ .mh-lg-175px {
+ max-height: 175px !important;
+ }
+ .mh-lg-200px {
+ max-height: 200px !important;
+ }
+ .mh-lg-225px {
+ max-height: 225px !important;
+ }
+ .mh-lg-250px {
+ max-height: 250px !important;
+ }
+ .mh-lg-275px {
+ max-height: 275px !important;
+ }
+ .mh-lg-300px {
+ max-height: 300px !important;
+ }
+ .mh-lg-325px {
+ max-height: 325px !important;
+ }
+ .mh-lg-350px {
+ max-height: 350px !important;
+ }
+ .mh-lg-375px {
+ max-height: 375px !important;
+ }
+ .mh-lg-400px {
+ max-height: 400px !important;
+ }
+ .mh-lg-425px {
+ max-height: 425px !important;
+ }
+ .mh-lg-450px {
+ max-height: 450px !important;
+ }
+ .mh-lg-475px {
+ max-height: 475px !important;
+ }
+ .mh-lg-500px {
+ max-height: 500px !important;
+ }
+ .mh-lg-550px {
+ max-height: 550px !important;
+ }
+ .mh-lg-600px {
+ max-height: 600px !important;
+ }
+ .mh-lg-650px {
+ max-height: 650px !important;
+ }
+ .mh-lg-700px {
+ max-height: 700px !important;
+ }
+ .mh-lg-750px {
+ max-height: 750px !important;
+ }
+ .mh-lg-800px {
+ max-height: 800px !important;
+ }
+ .mh-lg-850px {
+ max-height: 850px !important;
+ }
+ .mh-lg-900px {
+ max-height: 900px !important;
+ }
+ .mh-lg-950px {
+ max-height: 950px !important;
+ }
+ .mh-lg-1000px {
+ max-height: 1000px !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: 0.25rem !important;
+ }
+ .m-lg-2 {
+ margin: 0.5rem !important;
+ }
+ .m-lg-3 {
+ margin: 0.75rem !important;
+ }
+ .m-lg-4 {
+ margin: 1rem !important;
+ }
+ .m-lg-5 {
+ margin: 1.25rem !important;
+ }
+ .m-lg-6 {
+ margin: 1.5rem !important;
+ }
+ .m-lg-7 {
+ margin: 1.75rem !important;
+ }
+ .m-lg-8 {
+ margin: 2rem !important;
+ }
+ .m-lg-9 {
+ margin: 2.25rem !important;
+ }
+ .m-lg-10 {
+ margin: 2.5rem !important;
+ }
+ .m-lg-11 {
+ margin: 2.75rem !important;
+ }
+ .m-lg-12 {
+ margin: 3rem !important;
+ }
+ .m-lg-13 {
+ margin: 3.25rem !important;
+ }
+ .m-lg-14 {
+ margin: 3.5rem !important;
+ }
+ .m-lg-15 {
+ margin: 3.75rem !important;
+ }
+ .m-lg-16 {
+ margin: 4rem !important;
+ }
+ .m-lg-17 {
+ margin: 4.25rem !important;
+ }
+ .m-lg-18 {
+ margin: 4.5rem !important;
+ }
+ .m-lg-19 {
+ margin: 4.75rem !important;
+ }
+ .m-lg-20 {
+ margin: 5rem !important;
+ }
+ .m-lg-auto {
+ margin: auto !important;
+ }
+ .mx-lg-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-lg-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-lg-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-lg-3 {
+ margin-right: 0.75rem !important;
+ margin-left: 0.75rem !important;
+ }
+ .mx-lg-4 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-lg-5 {
+ margin-right: 1.25rem !important;
+ margin-left: 1.25rem !important;
+ }
+ .mx-lg-6 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-lg-7 {
+ margin-right: 1.75rem !important;
+ margin-left: 1.75rem !important;
+ }
+ .mx-lg-8 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important;
+ }
+ .mx-lg-9 {
+ margin-right: 2.25rem !important;
+ margin-left: 2.25rem !important;
+ }
+ .mx-lg-10 {
+ margin-right: 2.5rem !important;
+ margin-left: 2.5rem !important;
+ }
+ .mx-lg-11 {
+ margin-right: 2.75rem !important;
+ margin-left: 2.75rem !important;
+ }
+ .mx-lg-12 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-lg-13 {
+ margin-right: 3.25rem !important;
+ margin-left: 3.25rem !important;
+ }
+ .mx-lg-14 {
+ margin-right: 3.5rem !important;
+ margin-left: 3.5rem !important;
+ }
+ .mx-lg-15 {
+ margin-right: 3.75rem !important;
+ margin-left: 3.75rem !important;
+ }
+ .mx-lg-16 {
+ margin-right: 4rem !important;
+ margin-left: 4rem !important;
+ }
+ .mx-lg-17 {
+ margin-right: 4.25rem !important;
+ margin-left: 4.25rem !important;
+ }
+ .mx-lg-18 {
+ margin-right: 4.5rem !important;
+ margin-left: 4.5rem !important;
+ }
+ .mx-lg-19 {
+ margin-right: 4.75rem !important;
+ margin-left: 4.75rem !important;
+ }
+ .mx-lg-20 {
+ margin-right: 5rem !important;
+ margin-left: 5rem !important;
+ }
+ .mx-lg-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-lg-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-lg-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-lg-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-lg-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+ }
+ .my-lg-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-lg-5 {
+ margin-top: 1.25rem !important;
+ margin-bottom: 1.25rem !important;
+ }
+ .my-lg-6 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-lg-7 {
+ margin-top: 1.75rem !important;
+ margin-bottom: 1.75rem !important;
+ }
+ .my-lg-8 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important;
+ }
+ .my-lg-9 {
+ margin-top: 2.25rem !important;
+ margin-bottom: 2.25rem !important;
+ }
+ .my-lg-10 {
+ margin-top: 2.5rem !important;
+ margin-bottom: 2.5rem !important;
+ }
+ .my-lg-11 {
+ margin-top: 2.75rem !important;
+ margin-bottom: 2.75rem !important;
+ }
+ .my-lg-12 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-lg-13 {
+ margin-top: 3.25rem !important;
+ margin-bottom: 3.25rem !important;
+ }
+ .my-lg-14 {
+ margin-top: 3.5rem !important;
+ margin-bottom: 3.5rem !important;
+ }
+ .my-lg-15 {
+ margin-top: 3.75rem !important;
+ margin-bottom: 3.75rem !important;
+ }
+ .my-lg-16 {
+ margin-top: 4rem !important;
+ margin-bottom: 4rem !important;
+ }
+ .my-lg-17 {
+ margin-top: 4.25rem !important;
+ margin-bottom: 4.25rem !important;
+ }
+ .my-lg-18 {
+ margin-top: 4.5rem !important;
+ margin-bottom: 4.5rem !important;
+ }
+ .my-lg-19 {
+ margin-top: 4.75rem !important;
+ margin-bottom: 4.75rem !important;
+ }
+ .my-lg-20 {
+ margin-top: 5rem !important;
+ margin-bottom: 5rem !important;
+ }
+ .my-lg-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-lg-0 {
+ margin-top: 0 !important;
+ }
+ .mt-lg-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-lg-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-lg-3 {
+ margin-top: 0.75rem !important;
+ }
+ .mt-lg-4 {
+ margin-top: 1rem !important;
+ }
+ .mt-lg-5 {
+ margin-top: 1.25rem !important;
+ }
+ .mt-lg-6 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-lg-7 {
+ margin-top: 1.75rem !important;
+ }
+ .mt-lg-8 {
+ margin-top: 2rem !important;
+ }
+ .mt-lg-9 {
+ margin-top: 2.25rem !important;
+ }
+ .mt-lg-10 {
+ margin-top: 2.5rem !important;
+ }
+ .mt-lg-11 {
+ margin-top: 2.75rem !important;
+ }
+ .mt-lg-12 {
+ margin-top: 3rem !important;
+ }
+ .mt-lg-13 {
+ margin-top: 3.25rem !important;
+ }
+ .mt-lg-14 {
+ margin-top: 3.5rem !important;
+ }
+ .mt-lg-15 {
+ margin-top: 3.75rem !important;
+ }
+ .mt-lg-16 {
+ margin-top: 4rem !important;
+ }
+ .mt-lg-17 {
+ margin-top: 4.25rem !important;
+ }
+ .mt-lg-18 {
+ margin-top: 4.5rem !important;
+ }
+ .mt-lg-19 {
+ margin-top: 4.75rem !important;
+ }
+ .mt-lg-20 {
+ margin-top: 5rem !important;
+ }
+ .mt-lg-auto {
+ margin-top: auto !important;
+ }
+ .me-lg-0 {
+ margin-right: 0 !important;
+ }
+ .me-lg-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-lg-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-lg-3 {
+ margin-right: 0.75rem !important;
+ }
+ .me-lg-4 {
+ margin-right: 1rem !important;
+ }
+ .me-lg-5 {
+ margin-right: 1.25rem !important;
+ }
+ .me-lg-6 {
+ margin-right: 1.5rem !important;
+ }
+ .me-lg-7 {
+ margin-right: 1.75rem !important;
+ }
+ .me-lg-8 {
+ margin-right: 2rem !important;
+ }
+ .me-lg-9 {
+ margin-right: 2.25rem !important;
+ }
+ .me-lg-10 {
+ margin-right: 2.5rem !important;
+ }
+ .me-lg-11 {
+ margin-right: 2.75rem !important;
+ }
+ .me-lg-12 {
+ margin-right: 3rem !important;
+ }
+ .me-lg-13 {
+ margin-right: 3.25rem !important;
+ }
+ .me-lg-14 {
+ margin-right: 3.5rem !important;
+ }
+ .me-lg-15 {
+ margin-right: 3.75rem !important;
+ }
+ .me-lg-16 {
+ margin-right: 4rem !important;
+ }
+ .me-lg-17 {
+ margin-right: 4.25rem !important;
+ }
+ .me-lg-18 {
+ margin-right: 4.5rem !important;
+ }
+ .me-lg-19 {
+ margin-right: 4.75rem !important;
+ }
+ .me-lg-20 {
+ margin-right: 5rem !important;
+ }
+ .me-lg-auto {
+ margin-right: auto !important;
+ }
+ .mb-lg-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-lg-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-lg-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-lg-3 {
+ margin-bottom: 0.75rem !important;
+ }
+ .mb-lg-4 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-lg-5 {
+ margin-bottom: 1.25rem !important;
+ }
+ .mb-lg-6 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-lg-7 {
+ margin-bottom: 1.75rem !important;
+ }
+ .mb-lg-8 {
+ margin-bottom: 2rem !important;
+ }
+ .mb-lg-9 {
+ margin-bottom: 2.25rem !important;
+ }
+ .mb-lg-10 {
+ margin-bottom: 2.5rem !important;
+ }
+ .mb-lg-11 {
+ margin-bottom: 2.75rem !important;
+ }
+ .mb-lg-12 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-lg-13 {
+ margin-bottom: 3.25rem !important;
+ }
+ .mb-lg-14 {
+ margin-bottom: 3.5rem !important;
+ }
+ .mb-lg-15 {
+ margin-bottom: 3.75rem !important;
+ }
+ .mb-lg-16 {
+ margin-bottom: 4rem !important;
+ }
+ .mb-lg-17 {
+ margin-bottom: 4.25rem !important;
+ }
+ .mb-lg-18 {
+ margin-bottom: 4.5rem !important;
+ }
+ .mb-lg-19 {
+ margin-bottom: 4.75rem !important;
+ }
+ .mb-lg-20 {
+ margin-bottom: 5rem !important;
+ }
+ .mb-lg-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-lg-0 {
+ margin-left: 0 !important;
+ }
+ .ms-lg-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-lg-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-lg-3 {
+ margin-left: 0.75rem !important;
+ }
+ .ms-lg-4 {
+ margin-left: 1rem !important;
+ }
+ .ms-lg-5 {
+ margin-left: 1.25rem !important;
+ }
+ .ms-lg-6 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-lg-7 {
+ margin-left: 1.75rem !important;
+ }
+ .ms-lg-8 {
+ margin-left: 2rem !important;
+ }
+ .ms-lg-9 {
+ margin-left: 2.25rem !important;
+ }
+ .ms-lg-10 {
+ margin-left: 2.5rem !important;
+ }
+ .ms-lg-11 {
+ margin-left: 2.75rem !important;
+ }
+ .ms-lg-12 {
+ margin-left: 3rem !important;
+ }
+ .ms-lg-13 {
+ margin-left: 3.25rem !important;
+ }
+ .ms-lg-14 {
+ margin-left: 3.5rem !important;
+ }
+ .ms-lg-15 {
+ margin-left: 3.75rem !important;
+ }
+ .ms-lg-16 {
+ margin-left: 4rem !important;
+ }
+ .ms-lg-17 {
+ margin-left: 4.25rem !important;
+ }
+ .ms-lg-18 {
+ margin-left: 4.5rem !important;
+ }
+ .ms-lg-19 {
+ margin-left: 4.75rem !important;
+ }
+ .ms-lg-20 {
+ margin-left: 5rem !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: -0.75rem !important;
+ }
+ .m-lg-n4 {
+ margin: -1rem !important;
+ }
+ .m-lg-n5 {
+ margin: -1.25rem !important;
+ }
+ .m-lg-n6 {
+ margin: -1.5rem !important;
+ }
+ .m-lg-n7 {
+ margin: -1.75rem !important;
+ }
+ .m-lg-n8 {
+ margin: -2rem !important;
+ }
+ .m-lg-n9 {
+ margin: -2.25rem !important;
+ }
+ .m-lg-n10 {
+ margin: -2.5rem !important;
+ }
+ .m-lg-n11 {
+ margin: -2.75rem !important;
+ }
+ .m-lg-n12 {
+ margin: -3rem !important;
+ }
+ .m-lg-n13 {
+ margin: -3.25rem !important;
+ }
+ .m-lg-n14 {
+ margin: -3.5rem !important;
+ }
+ .m-lg-n15 {
+ margin: -3.75rem !important;
+ }
+ .m-lg-n16 {
+ margin: -4rem !important;
+ }
+ .m-lg-n17 {
+ margin: -4.25rem !important;
+ }
+ .m-lg-n18 {
+ margin: -4.5rem !important;
+ }
+ .m-lg-n19 {
+ margin: -4.75rem !important;
+ }
+ .m-lg-n20 {
+ margin: -5rem !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: -0.75rem !important;
+ margin-left: -0.75rem !important;
+ }
+ .mx-lg-n4 {
+ margin-right: -1rem !important;
+ margin-left: -1rem !important;
+ }
+ .mx-lg-n5 {
+ margin-right: -1.25rem !important;
+ margin-left: -1.25rem !important;
+ }
+ .mx-lg-n6 {
+ margin-right: -1.5rem !important;
+ margin-left: -1.5rem !important;
+ }
+ .mx-lg-n7 {
+ margin-right: -1.75rem !important;
+ margin-left: -1.75rem !important;
+ }
+ .mx-lg-n8 {
+ margin-right: -2rem !important;
+ margin-left: -2rem !important;
+ }
+ .mx-lg-n9 {
+ margin-right: -2.25rem !important;
+ margin-left: -2.25rem !important;
+ }
+ .mx-lg-n10 {
+ margin-right: -2.5rem !important;
+ margin-left: -2.5rem !important;
+ }
+ .mx-lg-n11 {
+ margin-right: -2.75rem !important;
+ margin-left: -2.75rem !important;
+ }
+ .mx-lg-n12 {
+ margin-right: -3rem !important;
+ margin-left: -3rem !important;
+ }
+ .mx-lg-n13 {
+ margin-right: -3.25rem !important;
+ margin-left: -3.25rem !important;
+ }
+ .mx-lg-n14 {
+ margin-right: -3.5rem !important;
+ margin-left: -3.5rem !important;
+ }
+ .mx-lg-n15 {
+ margin-right: -3.75rem !important;
+ margin-left: -3.75rem !important;
+ }
+ .mx-lg-n16 {
+ margin-right: -4rem !important;
+ margin-left: -4rem !important;
+ }
+ .mx-lg-n17 {
+ margin-right: -4.25rem !important;
+ margin-left: -4.25rem !important;
+ }
+ .mx-lg-n18 {
+ margin-right: -4.5rem !important;
+ margin-left: -4.5rem !important;
+ }
+ .mx-lg-n19 {
+ margin-right: -4.75rem !important;
+ margin-left: -4.75rem !important;
+ }
+ .mx-lg-n20 {
+ margin-right: -5rem !important;
+ margin-left: -5rem !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: -0.75rem !important;
+ margin-bottom: -0.75rem !important;
+ }
+ .my-lg-n4 {
+ margin-top: -1rem !important;
+ margin-bottom: -1rem !important;
+ }
+ .my-lg-n5 {
+ margin-top: -1.25rem !important;
+ margin-bottom: -1.25rem !important;
+ }
+ .my-lg-n6 {
+ margin-top: -1.5rem !important;
+ margin-bottom: -1.5rem !important;
+ }
+ .my-lg-n7 {
+ margin-top: -1.75rem !important;
+ margin-bottom: -1.75rem !important;
+ }
+ .my-lg-n8 {
+ margin-top: -2rem !important;
+ margin-bottom: -2rem !important;
+ }
+ .my-lg-n9 {
+ margin-top: -2.25rem !important;
+ margin-bottom: -2.25rem !important;
+ }
+ .my-lg-n10 {
+ margin-top: -2.5rem !important;
+ margin-bottom: -2.5rem !important;
+ }
+ .my-lg-n11 {
+ margin-top: -2.75rem !important;
+ margin-bottom: -2.75rem !important;
+ }
+ .my-lg-n12 {
+ margin-top: -3rem !important;
+ margin-bottom: -3rem !important;
+ }
+ .my-lg-n13 {
+ margin-top: -3.25rem !important;
+ margin-bottom: -3.25rem !important;
+ }
+ .my-lg-n14 {
+ margin-top: -3.5rem !important;
+ margin-bottom: -3.5rem !important;
+ }
+ .my-lg-n15 {
+ margin-top: -3.75rem !important;
+ margin-bottom: -3.75rem !important;
+ }
+ .my-lg-n16 {
+ margin-top: -4rem !important;
+ margin-bottom: -4rem !important;
+ }
+ .my-lg-n17 {
+ margin-top: -4.25rem !important;
+ margin-bottom: -4.25rem !important;
+ }
+ .my-lg-n18 {
+ margin-top: -4.5rem !important;
+ margin-bottom: -4.5rem !important;
+ }
+ .my-lg-n19 {
+ margin-top: -4.75rem !important;
+ margin-bottom: -4.75rem !important;
+ }
+ .my-lg-n20 {
+ margin-top: -5rem !important;
+ margin-bottom: -5rem !important;
+ }
+ .mt-lg-n1 {
+ margin-top: -0.25rem !important;
+ }
+ .mt-lg-n2 {
+ margin-top: -0.5rem !important;
+ }
+ .mt-lg-n3 {
+ margin-top: -0.75rem !important;
+ }
+ .mt-lg-n4 {
+ margin-top: -1rem !important;
+ }
+ .mt-lg-n5 {
+ margin-top: -1.25rem !important;
+ }
+ .mt-lg-n6 {
+ margin-top: -1.5rem !important;
+ }
+ .mt-lg-n7 {
+ margin-top: -1.75rem !important;
+ }
+ .mt-lg-n8 {
+ margin-top: -2rem !important;
+ }
+ .mt-lg-n9 {
+ margin-top: -2.25rem !important;
+ }
+ .mt-lg-n10 {
+ margin-top: -2.5rem !important;
+ }
+ .mt-lg-n11 {
+ margin-top: -2.75rem !important;
+ }
+ .mt-lg-n12 {
+ margin-top: -3rem !important;
+ }
+ .mt-lg-n13 {
+ margin-top: -3.25rem !important;
+ }
+ .mt-lg-n14 {
+ margin-top: -3.5rem !important;
+ }
+ .mt-lg-n15 {
+ margin-top: -3.75rem !important;
+ }
+ .mt-lg-n16 {
+ margin-top: -4rem !important;
+ }
+ .mt-lg-n17 {
+ margin-top: -4.25rem !important;
+ }
+ .mt-lg-n18 {
+ margin-top: -4.5rem !important;
+ }
+ .mt-lg-n19 {
+ margin-top: -4.75rem !important;
+ }
+ .mt-lg-n20 {
+ margin-top: -5rem !important;
+ }
+ .me-lg-n1 {
+ margin-right: -0.25rem !important;
+ }
+ .me-lg-n2 {
+ margin-right: -0.5rem !important;
+ }
+ .me-lg-n3 {
+ margin-right: -0.75rem !important;
+ }
+ .me-lg-n4 {
+ margin-right: -1rem !important;
+ }
+ .me-lg-n5 {
+ margin-right: -1.25rem !important;
+ }
+ .me-lg-n6 {
+ margin-right: -1.5rem !important;
+ }
+ .me-lg-n7 {
+ margin-right: -1.75rem !important;
+ }
+ .me-lg-n8 {
+ margin-right: -2rem !important;
+ }
+ .me-lg-n9 {
+ margin-right: -2.25rem !important;
+ }
+ .me-lg-n10 {
+ margin-right: -2.5rem !important;
+ }
+ .me-lg-n11 {
+ margin-right: -2.75rem !important;
+ }
+ .me-lg-n12 {
+ margin-right: -3rem !important;
+ }
+ .me-lg-n13 {
+ margin-right: -3.25rem !important;
+ }
+ .me-lg-n14 {
+ margin-right: -3.5rem !important;
+ }
+ .me-lg-n15 {
+ margin-right: -3.75rem !important;
+ }
+ .me-lg-n16 {
+ margin-right: -4rem !important;
+ }
+ .me-lg-n17 {
+ margin-right: -4.25rem !important;
+ }
+ .me-lg-n18 {
+ margin-right: -4.5rem !important;
+ }
+ .me-lg-n19 {
+ margin-right: -4.75rem !important;
+ }
+ .me-lg-n20 {
+ margin-right: -5rem !important;
+ }
+ .mb-lg-n1 {
+ margin-bottom: -0.25rem !important;
+ }
+ .mb-lg-n2 {
+ margin-bottom: -0.5rem !important;
+ }
+ .mb-lg-n3 {
+ margin-bottom: -0.75rem !important;
+ }
+ .mb-lg-n4 {
+ margin-bottom: -1rem !important;
+ }
+ .mb-lg-n5 {
+ margin-bottom: -1.25rem !important;
+ }
+ .mb-lg-n6 {
+ margin-bottom: -1.5rem !important;
+ }
+ .mb-lg-n7 {
+ margin-bottom: -1.75rem !important;
+ }
+ .mb-lg-n8 {
+ margin-bottom: -2rem !important;
+ }
+ .mb-lg-n9 {
+ margin-bottom: -2.25rem !important;
+ }
+ .mb-lg-n10 {
+ margin-bottom: -2.5rem !important;
+ }
+ .mb-lg-n11 {
+ margin-bottom: -2.75rem !important;
+ }
+ .mb-lg-n12 {
+ margin-bottom: -3rem !important;
+ }
+ .mb-lg-n13 {
+ margin-bottom: -3.25rem !important;
+ }
+ .mb-lg-n14 {
+ margin-bottom: -3.5rem !important;
+ }
+ .mb-lg-n15 {
+ margin-bottom: -3.75rem !important;
+ }
+ .mb-lg-n16 {
+ margin-bottom: -4rem !important;
+ }
+ .mb-lg-n17 {
+ margin-bottom: -4.25rem !important;
+ }
+ .mb-lg-n18 {
+ margin-bottom: -4.5rem !important;
+ }
+ .mb-lg-n19 {
+ margin-bottom: -4.75rem !important;
+ }
+ .mb-lg-n20 {
+ margin-bottom: -5rem !important;
+ }
+ .ms-lg-n1 {
+ margin-left: -0.25rem !important;
+ }
+ .ms-lg-n2 {
+ margin-left: -0.5rem !important;
+ }
+ .ms-lg-n3 {
+ margin-left: -0.75rem !important;
+ }
+ .ms-lg-n4 {
+ margin-left: -1rem !important;
+ }
+ .ms-lg-n5 {
+ margin-left: -1.25rem !important;
+ }
+ .ms-lg-n6 {
+ margin-left: -1.5rem !important;
+ }
+ .ms-lg-n7 {
+ margin-left: -1.75rem !important;
+ }
+ .ms-lg-n8 {
+ margin-left: -2rem !important;
+ }
+ .ms-lg-n9 {
+ margin-left: -2.25rem !important;
+ }
+ .ms-lg-n10 {
+ margin-left: -2.5rem !important;
+ }
+ .ms-lg-n11 {
+ margin-left: -2.75rem !important;
+ }
+ .ms-lg-n12 {
+ margin-left: -3rem !important;
+ }
+ .ms-lg-n13 {
+ margin-left: -3.25rem !important;
+ }
+ .ms-lg-n14 {
+ margin-left: -3.5rem !important;
+ }
+ .ms-lg-n15 {
+ margin-left: -3.75rem !important;
+ }
+ .ms-lg-n16 {
+ margin-left: -4rem !important;
+ }
+ .ms-lg-n17 {
+ margin-left: -4.25rem !important;
+ }
+ .ms-lg-n18 {
+ margin-left: -4.5rem !important;
+ }
+ .ms-lg-n19 {
+ margin-left: -4.75rem !important;
+ }
+ .ms-lg-n20 {
+ margin-left: -5rem !important;
+ }
+ .p-lg-0 {
+ padding: 0 !important;
+ }
+ .p-lg-1 {
+ padding: 0.25rem !important;
+ }
+ .p-lg-2 {
+ padding: 0.5rem !important;
+ }
+ .p-lg-3 {
+ padding: 0.75rem !important;
+ }
+ .p-lg-4 {
+ padding: 1rem !important;
+ }
+ .p-lg-5 {
+ padding: 1.25rem !important;
+ }
+ .p-lg-6 {
+ padding: 1.5rem !important;
+ }
+ .p-lg-7 {
+ padding: 1.75rem !important;
+ }
+ .p-lg-8 {
+ padding: 2rem !important;
+ }
+ .p-lg-9 {
+ padding: 2.25rem !important;
+ }
+ .p-lg-10 {
+ padding: 2.5rem !important;
+ }
+ .p-lg-11 {
+ padding: 2.75rem !important;
+ }
+ .p-lg-12 {
+ padding: 3rem !important;
+ }
+ .p-lg-13 {
+ padding: 3.25rem !important;
+ }
+ .p-lg-14 {
+ padding: 3.5rem !important;
+ }
+ .p-lg-15 {
+ padding: 3.75rem !important;
+ }
+ .p-lg-16 {
+ padding: 4rem !important;
+ }
+ .p-lg-17 {
+ padding: 4.25rem !important;
+ }
+ .p-lg-18 {
+ padding: 4.5rem !important;
+ }
+ .p-lg-19 {
+ padding: 4.75rem !important;
+ }
+ .p-lg-20 {
+ padding: 5rem !important;
+ }
+ .px-lg-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-lg-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-lg-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-lg-3 {
+ padding-right: 0.75rem !important;
+ padding-left: 0.75rem !important;
+ }
+ .px-lg-4 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-lg-5 {
+ padding-right: 1.25rem !important;
+ padding-left: 1.25rem !important;
+ }
+ .px-lg-6 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-lg-7 {
+ padding-right: 1.75rem !important;
+ padding-left: 1.75rem !important;
+ }
+ .px-lg-8 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important;
+ }
+ .px-lg-9 {
+ padding-right: 2.25rem !important;
+ padding-left: 2.25rem !important;
+ }
+ .px-lg-10 {
+ padding-right: 2.5rem !important;
+ padding-left: 2.5rem !important;
+ }
+ .px-lg-11 {
+ padding-right: 2.75rem !important;
+ padding-left: 2.75rem !important;
+ }
+ .px-lg-12 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .px-lg-13 {
+ padding-right: 3.25rem !important;
+ padding-left: 3.25rem !important;
+ }
+ .px-lg-14 {
+ padding-right: 3.5rem !important;
+ padding-left: 3.5rem !important;
+ }
+ .px-lg-15 {
+ padding-right: 3.75rem !important;
+ padding-left: 3.75rem !important;
+ }
+ .px-lg-16 {
+ padding-right: 4rem !important;
+ padding-left: 4rem !important;
+ }
+ .px-lg-17 {
+ padding-right: 4.25rem !important;
+ padding-left: 4.25rem !important;
+ }
+ .px-lg-18 {
+ padding-right: 4.5rem !important;
+ padding-left: 4.5rem !important;
+ }
+ .px-lg-19 {
+ padding-right: 4.75rem !important;
+ padding-left: 4.75rem !important;
+ }
+ .px-lg-20 {
+ padding-right: 5rem !important;
+ padding-left: 5rem !important;
+ }
+ .py-lg-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-lg-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-lg-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-lg-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+ }
+ .py-lg-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-lg-5 {
+ padding-top: 1.25rem !important;
+ padding-bottom: 1.25rem !important;
+ }
+ .py-lg-6 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-lg-7 {
+ padding-top: 1.75rem !important;
+ padding-bottom: 1.75rem !important;
+ }
+ .py-lg-8 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+ }
+ .py-lg-9 {
+ padding-top: 2.25rem !important;
+ padding-bottom: 2.25rem !important;
+ }
+ .py-lg-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+ }
+ .py-lg-11 {
+ padding-top: 2.75rem !important;
+ padding-bottom: 2.75rem !important;
+ }
+ .py-lg-12 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .py-lg-13 {
+ padding-top: 3.25rem !important;
+ padding-bottom: 3.25rem !important;
+ }
+ .py-lg-14 {
+ padding-top: 3.5rem !important;
+ padding-bottom: 3.5rem !important;
+ }
+ .py-lg-15 {
+ padding-top: 3.75rem !important;
+ padding-bottom: 3.75rem !important;
+ }
+ .py-lg-16 {
+ padding-top: 4rem !important;
+ padding-bottom: 4rem !important;
+ }
+ .py-lg-17 {
+ padding-top: 4.25rem !important;
+ padding-bottom: 4.25rem !important;
+ }
+ .py-lg-18 {
+ padding-top: 4.5rem !important;
+ padding-bottom: 4.5rem !important;
+ }
+ .py-lg-19 {
+ padding-top: 4.75rem !important;
+ padding-bottom: 4.75rem !important;
+ }
+ .py-lg-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+ .pt-lg-0 {
+ padding-top: 0 !important;
+ }
+ .pt-lg-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-lg-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-lg-3 {
+ padding-top: 0.75rem !important;
+ }
+ .pt-lg-4 {
+ padding-top: 1rem !important;
+ }
+ .pt-lg-5 {
+ padding-top: 1.25rem !important;
+ }
+ .pt-lg-6 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-lg-7 {
+ padding-top: 1.75rem !important;
+ }
+ .pt-lg-8 {
+ padding-top: 2rem !important;
+ }
+ .pt-lg-9 {
+ padding-top: 2.25rem !important;
+ }
+ .pt-lg-10 {
+ padding-top: 2.5rem !important;
+ }
+ .pt-lg-11 {
+ padding-top: 2.75rem !important;
+ }
+ .pt-lg-12 {
+ padding-top: 3rem !important;
+ }
+ .pt-lg-13 {
+ padding-top: 3.25rem !important;
+ }
+ .pt-lg-14 {
+ padding-top: 3.5rem !important;
+ }
+ .pt-lg-15 {
+ padding-top: 3.75rem !important;
+ }
+ .pt-lg-16 {
+ padding-top: 4rem !important;
+ }
+ .pt-lg-17 {
+ padding-top: 4.25rem !important;
+ }
+ .pt-lg-18 {
+ padding-top: 4.5rem !important;
+ }
+ .pt-lg-19 {
+ padding-top: 4.75rem !important;
+ }
+ .pt-lg-20 {
+ padding-top: 5rem !important;
+ }
+ .pe-lg-0 {
+ padding-right: 0 !important;
+ }
+ .pe-lg-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-lg-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-lg-3 {
+ padding-right: 0.75rem !important;
+ }
+ .pe-lg-4 {
+ padding-right: 1rem !important;
+ }
+ .pe-lg-5 {
+ padding-right: 1.25rem !important;
+ }
+ .pe-lg-6 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-lg-7 {
+ padding-right: 1.75rem !important;
+ }
+ .pe-lg-8 {
+ padding-right: 2rem !important;
+ }
+ .pe-lg-9 {
+ padding-right: 2.25rem !important;
+ }
+ .pe-lg-10 {
+ padding-right: 2.5rem !important;
+ }
+ .pe-lg-11 {
+ padding-right: 2.75rem !important;
+ }
+ .pe-lg-12 {
+ padding-right: 3rem !important;
+ }
+ .pe-lg-13 {
+ padding-right: 3.25rem !important;
+ }
+ .pe-lg-14 {
+ padding-right: 3.5rem !important;
+ }
+ .pe-lg-15 {
+ padding-right: 3.75rem !important;
+ }
+ .pe-lg-16 {
+ padding-right: 4rem !important;
+ }
+ .pe-lg-17 {
+ padding-right: 4.25rem !important;
+ }
+ .pe-lg-18 {
+ padding-right: 4.5rem !important;
+ }
+ .pe-lg-19 {
+ padding-right: 4.75rem !important;
+ }
+ .pe-lg-20 {
+ padding-right: 5rem !important;
+ }
+ .pb-lg-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-lg-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-lg-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-lg-3 {
+ padding-bottom: 0.75rem !important;
+ }
+ .pb-lg-4 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-lg-5 {
+ padding-bottom: 1.25rem !important;
+ }
+ .pb-lg-6 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-lg-7 {
+ padding-bottom: 1.75rem !important;
+ }
+ .pb-lg-8 {
+ padding-bottom: 2rem !important;
+ }
+ .pb-lg-9 {
+ padding-bottom: 2.25rem !important;
+ }
+ .pb-lg-10 {
+ padding-bottom: 2.5rem !important;
+ }
+ .pb-lg-11 {
+ padding-bottom: 2.75rem !important;
+ }
+ .pb-lg-12 {
+ padding-bottom: 3rem !important;
+ }
+ .pb-lg-13 {
+ padding-bottom: 3.25rem !important;
+ }
+ .pb-lg-14 {
+ padding-bottom: 3.5rem !important;
+ }
+ .pb-lg-15 {
+ padding-bottom: 3.75rem !important;
+ }
+ .pb-lg-16 {
+ padding-bottom: 4rem !important;
+ }
+ .pb-lg-17 {
+ padding-bottom: 4.25rem !important;
+ }
+ .pb-lg-18 {
+ padding-bottom: 4.5rem !important;
+ }
+ .pb-lg-19 {
+ padding-bottom: 4.75rem !important;
+ }
+ .pb-lg-20 {
+ padding-bottom: 5rem !important;
+ }
+ .ps-lg-0 {
+ padding-left: 0 !important;
+ }
+ .ps-lg-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-lg-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-lg-3 {
+ padding-left: 0.75rem !important;
+ }
+ .ps-lg-4 {
+ padding-left: 1rem !important;
+ }
+ .ps-lg-5 {
+ padding-left: 1.25rem !important;
+ }
+ .ps-lg-6 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-lg-7 {
+ padding-left: 1.75rem !important;
+ }
+ .ps-lg-8 {
+ padding-left: 2rem !important;
+ }
+ .ps-lg-9 {
+ padding-left: 2.25rem !important;
+ }
+ .ps-lg-10 {
+ padding-left: 2.5rem !important;
+ }
+ .ps-lg-11 {
+ padding-left: 2.75rem !important;
+ }
+ .ps-lg-12 {
+ padding-left: 3rem !important;
+ }
+ .ps-lg-13 {
+ padding-left: 3.25rem !important;
+ }
+ .ps-lg-14 {
+ padding-left: 3.5rem !important;
+ }
+ .ps-lg-15 {
+ padding-left: 3.75rem !important;
+ }
+ .ps-lg-16 {
+ padding-left: 4rem !important;
+ }
+ .ps-lg-17 {
+ padding-left: 4.25rem !important;
+ }
+ .ps-lg-18 {
+ padding-left: 4.5rem !important;
+ }
+ .ps-lg-19 {
+ padding-left: 4.75rem !important;
+ }
+ .ps-lg-20 {
+ padding-left: 5rem !important;
+ }
+ .gap-lg-0 {
+ gap: 0 !important;
+ }
+ .gap-lg-1 {
+ gap: 0.25rem !important;
+ }
+ .gap-lg-2 {
+ gap: 0.5rem !important;
+ }
+ .gap-lg-3 {
+ gap: 0.75rem !important;
+ }
+ .gap-lg-4 {
+ gap: 1rem !important;
+ }
+ .gap-lg-5 {
+ gap: 1.25rem !important;
+ }
+ .gap-lg-6 {
+ gap: 1.5rem !important;
+ }
+ .gap-lg-7 {
+ gap: 1.75rem !important;
+ }
+ .gap-lg-8 {
+ gap: 2rem !important;
+ }
+ .gap-lg-9 {
+ gap: 2.25rem !important;
+ }
+ .gap-lg-10 {
+ gap: 2.5rem !important;
+ }
+ .gap-lg-11 {
+ gap: 2.75rem !important;
+ }
+ .gap-lg-12 {
+ gap: 3rem !important;
+ }
+ .gap-lg-13 {
+ gap: 3.25rem !important;
+ }
+ .gap-lg-14 {
+ gap: 3.5rem !important;
+ }
+ .gap-lg-15 {
+ gap: 3.75rem !important;
+ }
+ .gap-lg-16 {
+ gap: 4rem !important;
+ }
+ .gap-lg-17 {
+ gap: 4.25rem !important;
+ }
+ .gap-lg-18 {
+ gap: 4.5rem !important;
+ }
+ .gap-lg-19 {
+ gap: 4.75rem !important;
+ }
+ .gap-lg-20 {
+ gap: 5rem !important;
+ }
+ .row-gap-lg-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-lg-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-lg-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-lg-3 {
+ row-gap: 0.75rem !important;
+ }
+ .row-gap-lg-4 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-lg-5 {
+ row-gap: 1.25rem !important;
+ }
+ .row-gap-lg-6 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-lg-7 {
+ row-gap: 1.75rem !important;
+ }
+ .row-gap-lg-8 {
+ row-gap: 2rem !important;
+ }
+ .row-gap-lg-9 {
+ row-gap: 2.25rem !important;
+ }
+ .row-gap-lg-10 {
+ row-gap: 2.5rem !important;
+ }
+ .row-gap-lg-11 {
+ row-gap: 2.75rem !important;
+ }
+ .row-gap-lg-12 {
+ row-gap: 3rem !important;
+ }
+ .row-gap-lg-13 {
+ row-gap: 3.25rem !important;
+ }
+ .row-gap-lg-14 {
+ row-gap: 3.5rem !important;
+ }
+ .row-gap-lg-15 {
+ row-gap: 3.75rem !important;
+ }
+ .row-gap-lg-16 {
+ row-gap: 4rem !important;
+ }
+ .row-gap-lg-17 {
+ row-gap: 4.25rem !important;
+ }
+ .row-gap-lg-18 {
+ row-gap: 4.5rem !important;
+ }
+ .row-gap-lg-19 {
+ row-gap: 4.75rem !important;
+ }
+ .row-gap-lg-20 {
+ row-gap: 5rem !important;
+ }
+ .column-gap-lg-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-lg-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-lg-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-lg-3 {
+ column-gap: 0.75rem !important;
+ }
+ .column-gap-lg-4 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-lg-5 {
+ column-gap: 1.25rem !important;
+ }
+ .column-gap-lg-6 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-lg-7 {
+ column-gap: 1.75rem !important;
+ }
+ .column-gap-lg-8 {
+ column-gap: 2rem !important;
+ }
+ .column-gap-lg-9 {
+ column-gap: 2.25rem !important;
+ }
+ .column-gap-lg-10 {
+ column-gap: 2.5rem !important;
+ }
+ .column-gap-lg-11 {
+ column-gap: 2.75rem !important;
+ }
+ .column-gap-lg-12 {
+ column-gap: 3rem !important;
+ }
+ .column-gap-lg-13 {
+ column-gap: 3.25rem !important;
+ }
+ .column-gap-lg-14 {
+ column-gap: 3.5rem !important;
+ }
+ .column-gap-lg-15 {
+ column-gap: 3.75rem !important;
+ }
+ .column-gap-lg-16 {
+ column-gap: 4rem !important;
+ }
+ .column-gap-lg-17 {
+ column-gap: 4.25rem !important;
+ }
+ .column-gap-lg-18 {
+ column-gap: 4.5rem !important;
+ }
+ .column-gap-lg-19 {
+ column-gap: 4.75rem !important;
+ }
+ .column-gap-lg-20 {
+ column-gap: 5rem !important;
+ }
+ .fs-lg-1 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+ }
+ .fs-lg-2 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+ }
+ .fs-lg-3 {
+ font-size: calc(1.26rem + 0.12vw) !important;
+ }
+ .fs-lg-4 {
+ font-size: 1.25rem !important;
+ }
+ .fs-lg-5 {
+ font-size: 1.15rem !important;
+ }
+ .fs-lg-6 {
+ font-size: 1.075rem !important;
+ }
+ .fs-lg-7 {
+ font-size: 0.95rem !important;
+ }
+ .fs-lg-8 {
+ font-size: 0.85rem !important;
+ }
+ .fs-lg-9 {
+ font-size: 0.75rem !important;
+ }
+ .fs-lg-10 {
+ font-size: 0.5rem !important;
+ }
+ .fs-lg-base {
+ font-size: 1rem !important;
+ }
+ .fs-lg-fluid {
+ font-size: 100% !important;
+ }
+ .fs-lg-2x {
+ font-size: calc(1.325rem + 0.9vw) !important;
+ }
+ .fs-lg-2qx {
+ font-size: calc(1.35rem + 1.2vw) !important;
+ }
+ .fs-lg-2hx {
+ font-size: calc(1.375rem + 1.5vw) !important;
+ }
+ .fs-lg-2tx {
+ font-size: calc(1.4rem + 1.8vw) !important;
+ }
+ .fs-lg-3x {
+ font-size: calc(1.425rem + 2.1vw) !important;
+ }
+ .fs-lg-3qx {
+ font-size: calc(1.45rem + 2.4vw) !important;
+ }
+ .fs-lg-3hx {
+ font-size: calc(1.475rem + 2.7vw) !important;
+ }
+ .fs-lg-3tx {
+ font-size: calc(1.5rem + 3vw) !important;
+ }
+ .fs-lg-4x {
+ font-size: calc(1.525rem + 3.3vw) !important;
+ }
+ .fs-lg-4qx {
+ font-size: calc(1.55rem + 3.6vw) !important;
+ }
+ .fs-lg-4hx {
+ font-size: calc(1.575rem + 3.9vw) !important;
+ }
+ .fs-lg-4tx {
+ font-size: calc(1.6rem + 4.2vw) !important;
+ }
+ .fs-lg-5x {
+ font-size: calc(1.625rem + 4.5vw) !important;
+ }
+ .fs-lg-5qx {
+ font-size: calc(1.65rem + 4.8vw) !important;
+ }
+ .fs-lg-5hx {
+ font-size: calc(1.675rem + 5.1vw) !important;
+ }
+ .fs-lg-5tx {
+ font-size: calc(1.7rem + 5.4vw) !important;
+ }
+ .text-lg-start {
+ text-align: left !important;
+ }
+ .text-lg-end {
+ text-align: right !important;
+ }
+ .text-lg-center {
+ text-align: center !important;
+ }
+ .min-w-lg-unset {
+ min-width: unset !important;
+ }
+ .min-w-lg-25 {
+ min-width: 25% !important;
+ }
+ .min-w-lg-50 {
+ min-width: 50% !important;
+ }
+ .min-w-lg-75 {
+ min-width: 75% !important;
+ }
+ .min-w-lg-100 {
+ min-width: 100% !important;
+ }
+ .min-w-lg-auto {
+ min-width: auto !important;
+ }
+ .min-w-lg-1px {
+ min-width: 1px !important;
+ }
+ .min-w-lg-2px {
+ min-width: 2px !important;
+ }
+ .min-w-lg-3px {
+ min-width: 3px !important;
+ }
+ .min-w-lg-4px {
+ min-width: 4px !important;
+ }
+ .min-w-lg-5px {
+ min-width: 5px !important;
+ }
+ .min-w-lg-6px {
+ min-width: 6px !important;
+ }
+ .min-w-lg-7px {
+ min-width: 7px !important;
+ }
+ .min-w-lg-8px {
+ min-width: 8px !important;
+ }
+ .min-w-lg-9px {
+ min-width: 9px !important;
+ }
+ .min-w-lg-10px {
+ min-width: 10px !important;
+ }
+ .min-w-lg-15px {
+ min-width: 15px !important;
+ }
+ .min-w-lg-20px {
+ min-width: 20px !important;
+ }
+ .min-w-lg-25px {
+ min-width: 25px !important;
+ }
+ .min-w-lg-30px {
+ min-width: 30px !important;
+ }
+ .min-w-lg-35px {
+ min-width: 35px !important;
+ }
+ .min-w-lg-40px {
+ min-width: 40px !important;
+ }
+ .min-w-lg-45px {
+ min-width: 45px !important;
+ }
+ .min-w-lg-50px {
+ min-width: 50px !important;
+ }
+ .min-w-lg-55px {
+ min-width: 55px !important;
+ }
+ .min-w-lg-60px {
+ min-width: 60px !important;
+ }
+ .min-w-lg-65px {
+ min-width: 65px !important;
+ }
+ .min-w-lg-70px {
+ min-width: 70px !important;
+ }
+ .min-w-lg-75px {
+ min-width: 75px !important;
+ }
+ .min-w-lg-80px {
+ min-width: 80px !important;
+ }
+ .min-w-lg-85px {
+ min-width: 85px !important;
+ }
+ .min-w-lg-90px {
+ min-width: 90px !important;
+ }
+ .min-w-lg-95px {
+ min-width: 95px !important;
+ }
+ .min-w-lg-100px {
+ min-width: 100px !important;
+ }
+ .min-w-lg-125px {
+ min-width: 125px !important;
+ }
+ .min-w-lg-150px {
+ min-width: 150px !important;
+ }
+ .min-w-lg-175px {
+ min-width: 175px !important;
+ }
+ .min-w-lg-200px {
+ min-width: 200px !important;
+ }
+ .min-w-lg-225px {
+ min-width: 225px !important;
+ }
+ .min-w-lg-250px {
+ min-width: 250px !important;
+ }
+ .min-w-lg-275px {
+ min-width: 275px !important;
+ }
+ .min-w-lg-300px {
+ min-width: 300px !important;
+ }
+ .min-w-lg-325px {
+ min-width: 325px !important;
+ }
+ .min-w-lg-350px {
+ min-width: 350px !important;
+ }
+ .min-w-lg-375px {
+ min-width: 375px !important;
+ }
+ .min-w-lg-400px {
+ min-width: 400px !important;
+ }
+ .min-w-lg-425px {
+ min-width: 425px !important;
+ }
+ .min-w-lg-450px {
+ min-width: 450px !important;
+ }
+ .min-w-lg-475px {
+ min-width: 475px !important;
+ }
+ .min-w-lg-500px {
+ min-width: 500px !important;
+ }
+ .min-w-lg-550px {
+ min-width: 550px !important;
+ }
+ .min-w-lg-600px {
+ min-width: 600px !important;
+ }
+ .min-w-lg-650px {
+ min-width: 650px !important;
+ }
+ .min-w-lg-700px {
+ min-width: 700px !important;
+ }
+ .min-w-lg-750px {
+ min-width: 750px !important;
+ }
+ .min-w-lg-800px {
+ min-width: 800px !important;
+ }
+ .min-w-lg-850px {
+ min-width: 850px !important;
+ }
+ .min-w-lg-900px {
+ min-width: 900px !important;
+ }
+ .min-w-lg-950px {
+ min-width: 950px !important;
+ }
+ .min-w-lg-1000px {
+ min-width: 1000px !important;
+ }
+ .min-h-lg-unset {
+ min-height: unset !important;
+ }
+ .min-h-lg-25 {
+ min-height: 25% !important;
+ }
+ .min-h-lg-50 {
+ min-height: 50% !important;
+ }
+ .min-h-lg-75 {
+ min-height: 75% !important;
+ }
+ .min-h-lg-100 {
+ min-height: 100% !important;
+ }
+ .min-h-lg-auto {
+ min-height: auto !important;
+ }
+ .min-h-lg-1px {
+ min-height: 1px !important;
+ }
+ .min-h-lg-2px {
+ min-height: 2px !important;
+ }
+ .min-h-lg-3px {
+ min-height: 3px !important;
+ }
+ .min-h-lg-4px {
+ min-height: 4px !important;
+ }
+ .min-h-lg-5px {
+ min-height: 5px !important;
+ }
+ .min-h-lg-6px {
+ min-height: 6px !important;
+ }
+ .min-h-lg-7px {
+ min-height: 7px !important;
+ }
+ .min-h-lg-8px {
+ min-height: 8px !important;
+ }
+ .min-h-lg-9px {
+ min-height: 9px !important;
+ }
+ .min-h-lg-10px {
+ min-height: 10px !important;
+ }
+ .min-h-lg-15px {
+ min-height: 15px !important;
+ }
+ .min-h-lg-20px {
+ min-height: 20px !important;
+ }
+ .min-h-lg-25px {
+ min-height: 25px !important;
+ }
+ .min-h-lg-30px {
+ min-height: 30px !important;
+ }
+ .min-h-lg-35px {
+ min-height: 35px !important;
+ }
+ .min-h-lg-40px {
+ min-height: 40px !important;
+ }
+ .min-h-lg-45px {
+ min-height: 45px !important;
+ }
+ .min-h-lg-50px {
+ min-height: 50px !important;
+ }
+ .min-h-lg-55px {
+ min-height: 55px !important;
+ }
+ .min-h-lg-60px {
+ min-height: 60px !important;
+ }
+ .min-h-lg-65px {
+ min-height: 65px !important;
+ }
+ .min-h-lg-70px {
+ min-height: 70px !important;
+ }
+ .min-h-lg-75px {
+ min-height: 75px !important;
+ }
+ .min-h-lg-80px {
+ min-height: 80px !important;
+ }
+ .min-h-lg-85px {
+ min-height: 85px !important;
+ }
+ .min-h-lg-90px {
+ min-height: 90px !important;
+ }
+ .min-h-lg-95px {
+ min-height: 95px !important;
+ }
+ .min-h-lg-100px {
+ min-height: 100px !important;
+ }
+ .min-h-lg-125px {
+ min-height: 125px !important;
+ }
+ .min-h-lg-150px {
+ min-height: 150px !important;
+ }
+ .min-h-lg-175px {
+ min-height: 175px !important;
+ }
+ .min-h-lg-200px {
+ min-height: 200px !important;
+ }
+ .min-h-lg-225px {
+ min-height: 225px !important;
+ }
+ .min-h-lg-250px {
+ min-height: 250px !important;
+ }
+ .min-h-lg-275px {
+ min-height: 275px !important;
+ }
+ .min-h-lg-300px {
+ min-height: 300px !important;
+ }
+ .min-h-lg-325px {
+ min-height: 325px !important;
+ }
+ .min-h-lg-350px {
+ min-height: 350px !important;
+ }
+ .min-h-lg-375px {
+ min-height: 375px !important;
+ }
+ .min-h-lg-400px {
+ min-height: 400px !important;
+ }
+ .min-h-lg-425px {
+ min-height: 425px !important;
+ }
+ .min-h-lg-450px {
+ min-height: 450px !important;
+ }
+ .min-h-lg-475px {
+ min-height: 475px !important;
+ }
+ .min-h-lg-500px {
+ min-height: 500px !important;
+ }
+ .min-h-lg-550px {
+ min-height: 550px !important;
+ }
+ .min-h-lg-600px {
+ min-height: 600px !important;
+ }
+ .min-h-lg-650px {
+ min-height: 650px !important;
+ }
+ .min-h-lg-700px {
+ min-height: 700px !important;
+ }
+ .min-h-lg-750px {
+ min-height: 750px !important;
+ }
+ .min-h-lg-800px {
+ min-height: 800px !important;
+ }
+ .min-h-lg-850px {
+ min-height: 850px !important;
+ }
+ .min-h-lg-900px {
+ min-height: 900px !important;
+ }
+ .min-h-lg-950px {
+ min-height: 950px !important;
+ }
+ .min-h-lg-1000px {
+ min-height: 1000px !important;
+ }
+}
+@media (min-width: 1200px) {
+ .float-xl-start {
+ float: left !important;
+ }
+ .float-xl-end {
+ float: right !important;
+ }
+ .float-xl-none {
+ float: none !important;
+ }
+ .object-fit-xl-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-xl-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-xl-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-xl-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-xl-none {
+ object-fit: none !important;
+ }
+ .overflow-xl-auto {
+ overflow: auto !important;
+ }
+ .overflow-xl-hidden {
+ overflow: hidden !important;
+ }
+ .overflow-xl-visible {
+ overflow: visible !important;
+ }
+ .overflow-xl-scroll {
+ overflow: scroll !important;
+ }
+ .d-xl-inline {
+ display: inline !important;
+ }
+ .d-xl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xl-block {
+ display: block !important;
+ }
+ .d-xl-grid {
+ display: grid !important;
+ }
+ .d-xl-table {
+ display: table !important;
+ }
+ .d-xl-table-row {
+ display: table-row !important;
+ }
+ .d-xl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xl-flex {
+ display: flex !important;
+ }
+ .d-xl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xl-none {
+ display: none !important;
+ }
+ .position-xl-static {
+ position: static !important;
+ }
+ .position-xl-relative {
+ position: relative !important;
+ }
+ .position-xl-absolute {
+ position: absolute !important;
+ }
+ .position-xl-fixed {
+ position: fixed !important;
+ }
+ .position-xl-sticky {
+ position: sticky !important;
+ }
+ .w-xl-unset {
+ width: unset !important;
+ }
+ .w-xl-25 {
+ width: 25% !important;
+ }
+ .w-xl-50 {
+ width: 50% !important;
+ }
+ .w-xl-75 {
+ width: 75% !important;
+ }
+ .w-xl-100 {
+ width: 100% !important;
+ }
+ .w-xl-auto {
+ width: auto !important;
+ }
+ .w-xl-1px {
+ width: 1px !important;
+ }
+ .w-xl-2px {
+ width: 2px !important;
+ }
+ .w-xl-3px {
+ width: 3px !important;
+ }
+ .w-xl-4px {
+ width: 4px !important;
+ }
+ .w-xl-5px {
+ width: 5px !important;
+ }
+ .w-xl-6px {
+ width: 6px !important;
+ }
+ .w-xl-7px {
+ width: 7px !important;
+ }
+ .w-xl-8px {
+ width: 8px !important;
+ }
+ .w-xl-9px {
+ width: 9px !important;
+ }
+ .w-xl-10px {
+ width: 10px !important;
+ }
+ .w-xl-15px {
+ width: 15px !important;
+ }
+ .w-xl-20px {
+ width: 20px !important;
+ }
+ .w-xl-25px {
+ width: 25px !important;
+ }
+ .w-xl-30px {
+ width: 30px !important;
+ }
+ .w-xl-35px {
+ width: 35px !important;
+ }
+ .w-xl-40px {
+ width: 40px !important;
+ }
+ .w-xl-45px {
+ width: 45px !important;
+ }
+ .w-xl-50px {
+ width: 50px !important;
+ }
+ .w-xl-55px {
+ width: 55px !important;
+ }
+ .w-xl-60px {
+ width: 60px !important;
+ }
+ .w-xl-65px {
+ width: 65px !important;
+ }
+ .w-xl-70px {
+ width: 70px !important;
+ }
+ .w-xl-75px {
+ width: 75px !important;
+ }
+ .w-xl-80px {
+ width: 80px !important;
+ }
+ .w-xl-85px {
+ width: 85px !important;
+ }
+ .w-xl-90px {
+ width: 90px !important;
+ }
+ .w-xl-95px {
+ width: 95px !important;
+ }
+ .w-xl-100px {
+ width: 100px !important;
+ }
+ .w-xl-125px {
+ width: 125px !important;
+ }
+ .w-xl-150px {
+ width: 150px !important;
+ }
+ .w-xl-175px {
+ width: 175px !important;
+ }
+ .w-xl-200px {
+ width: 200px !important;
+ }
+ .w-xl-225px {
+ width: 225px !important;
+ }
+ .w-xl-250px {
+ width: 250px !important;
+ }
+ .w-xl-275px {
+ width: 275px !important;
+ }
+ .w-xl-300px {
+ width: 300px !important;
+ }
+ .w-xl-325px {
+ width: 325px !important;
+ }
+ .w-xl-350px {
+ width: 350px !important;
+ }
+ .w-xl-375px {
+ width: 375px !important;
+ }
+ .w-xl-400px {
+ width: 400px !important;
+ }
+ .w-xl-425px {
+ width: 425px !important;
+ }
+ .w-xl-450px {
+ width: 450px !important;
+ }
+ .w-xl-475px {
+ width: 475px !important;
+ }
+ .w-xl-500px {
+ width: 500px !important;
+ }
+ .w-xl-550px {
+ width: 550px !important;
+ }
+ .w-xl-600px {
+ width: 600px !important;
+ }
+ .w-xl-650px {
+ width: 650px !important;
+ }
+ .w-xl-700px {
+ width: 700px !important;
+ }
+ .w-xl-750px {
+ width: 750px !important;
+ }
+ .w-xl-800px {
+ width: 800px !important;
+ }
+ .w-xl-850px {
+ width: 850px !important;
+ }
+ .w-xl-900px {
+ width: 900px !important;
+ }
+ .w-xl-950px {
+ width: 950px !important;
+ }
+ .w-xl-1000px {
+ width: 1000px !important;
+ }
+ .mw-xl-unset {
+ max-width: unset !important;
+ }
+ .mw-xl-25 {
+ max-width: 25% !important;
+ }
+ .mw-xl-50 {
+ max-width: 50% !important;
+ }
+ .mw-xl-75 {
+ max-width: 75% !important;
+ }
+ .mw-xl-100 {
+ max-width: 100% !important;
+ }
+ .mw-xl-auto {
+ max-width: auto !important;
+ }
+ .mw-xl-1px {
+ max-width: 1px !important;
+ }
+ .mw-xl-2px {
+ max-width: 2px !important;
+ }
+ .mw-xl-3px {
+ max-width: 3px !important;
+ }
+ .mw-xl-4px {
+ max-width: 4px !important;
+ }
+ .mw-xl-5px {
+ max-width: 5px !important;
+ }
+ .mw-xl-6px {
+ max-width: 6px !important;
+ }
+ .mw-xl-7px {
+ max-width: 7px !important;
+ }
+ .mw-xl-8px {
+ max-width: 8px !important;
+ }
+ .mw-xl-9px {
+ max-width: 9px !important;
+ }
+ .mw-xl-10px {
+ max-width: 10px !important;
+ }
+ .mw-xl-15px {
+ max-width: 15px !important;
+ }
+ .mw-xl-20px {
+ max-width: 20px !important;
+ }
+ .mw-xl-25px {
+ max-width: 25px !important;
+ }
+ .mw-xl-30px {
+ max-width: 30px !important;
+ }
+ .mw-xl-35px {
+ max-width: 35px !important;
+ }
+ .mw-xl-40px {
+ max-width: 40px !important;
+ }
+ .mw-xl-45px {
+ max-width: 45px !important;
+ }
+ .mw-xl-50px {
+ max-width: 50px !important;
+ }
+ .mw-xl-55px {
+ max-width: 55px !important;
+ }
+ .mw-xl-60px {
+ max-width: 60px !important;
+ }
+ .mw-xl-65px {
+ max-width: 65px !important;
+ }
+ .mw-xl-70px {
+ max-width: 70px !important;
+ }
+ .mw-xl-75px {
+ max-width: 75px !important;
+ }
+ .mw-xl-80px {
+ max-width: 80px !important;
+ }
+ .mw-xl-85px {
+ max-width: 85px !important;
+ }
+ .mw-xl-90px {
+ max-width: 90px !important;
+ }
+ .mw-xl-95px {
+ max-width: 95px !important;
+ }
+ .mw-xl-100px {
+ max-width: 100px !important;
+ }
+ .mw-xl-125px {
+ max-width: 125px !important;
+ }
+ .mw-xl-150px {
+ max-width: 150px !important;
+ }
+ .mw-xl-175px {
+ max-width: 175px !important;
+ }
+ .mw-xl-200px {
+ max-width: 200px !important;
+ }
+ .mw-xl-225px {
+ max-width: 225px !important;
+ }
+ .mw-xl-250px {
+ max-width: 250px !important;
+ }
+ .mw-xl-275px {
+ max-width: 275px !important;
+ }
+ .mw-xl-300px {
+ max-width: 300px !important;
+ }
+ .mw-xl-325px {
+ max-width: 325px !important;
+ }
+ .mw-xl-350px {
+ max-width: 350px !important;
+ }
+ .mw-xl-375px {
+ max-width: 375px !important;
+ }
+ .mw-xl-400px {
+ max-width: 400px !important;
+ }
+ .mw-xl-425px {
+ max-width: 425px !important;
+ }
+ .mw-xl-450px {
+ max-width: 450px !important;
+ }
+ .mw-xl-475px {
+ max-width: 475px !important;
+ }
+ .mw-xl-500px {
+ max-width: 500px !important;
+ }
+ .mw-xl-550px {
+ max-width: 550px !important;
+ }
+ .mw-xl-600px {
+ max-width: 600px !important;
+ }
+ .mw-xl-650px {
+ max-width: 650px !important;
+ }
+ .mw-xl-700px {
+ max-width: 700px !important;
+ }
+ .mw-xl-750px {
+ max-width: 750px !important;
+ }
+ .mw-xl-800px {
+ max-width: 800px !important;
+ }
+ .mw-xl-850px {
+ max-width: 850px !important;
+ }
+ .mw-xl-900px {
+ max-width: 900px !important;
+ }
+ .mw-xl-950px {
+ max-width: 950px !important;
+ }
+ .mw-xl-1000px {
+ max-width: 1000px !important;
+ }
+ .h-xl-unset {
+ height: unset !important;
+ }
+ .h-xl-25 {
+ height: 25% !important;
+ }
+ .h-xl-50 {
+ height: 50% !important;
+ }
+ .h-xl-75 {
+ height: 75% !important;
+ }
+ .h-xl-100 {
+ height: 100% !important;
+ }
+ .h-xl-auto {
+ height: auto !important;
+ }
+ .h-xl-1px {
+ height: 1px !important;
+ }
+ .h-xl-2px {
+ height: 2px !important;
+ }
+ .h-xl-3px {
+ height: 3px !important;
+ }
+ .h-xl-4px {
+ height: 4px !important;
+ }
+ .h-xl-5px {
+ height: 5px !important;
+ }
+ .h-xl-6px {
+ height: 6px !important;
+ }
+ .h-xl-7px {
+ height: 7px !important;
+ }
+ .h-xl-8px {
+ height: 8px !important;
+ }
+ .h-xl-9px {
+ height: 9px !important;
+ }
+ .h-xl-10px {
+ height: 10px !important;
+ }
+ .h-xl-15px {
+ height: 15px !important;
+ }
+ .h-xl-20px {
+ height: 20px !important;
+ }
+ .h-xl-25px {
+ height: 25px !important;
+ }
+ .h-xl-30px {
+ height: 30px !important;
+ }
+ .h-xl-35px {
+ height: 35px !important;
+ }
+ .h-xl-40px {
+ height: 40px !important;
+ }
+ .h-xl-45px {
+ height: 45px !important;
+ }
+ .h-xl-50px {
+ height: 50px !important;
+ }
+ .h-xl-55px {
+ height: 55px !important;
+ }
+ .h-xl-60px {
+ height: 60px !important;
+ }
+ .h-xl-65px {
+ height: 65px !important;
+ }
+ .h-xl-70px {
+ height: 70px !important;
+ }
+ .h-xl-75px {
+ height: 75px !important;
+ }
+ .h-xl-80px {
+ height: 80px !important;
+ }
+ .h-xl-85px {
+ height: 85px !important;
+ }
+ .h-xl-90px {
+ height: 90px !important;
+ }
+ .h-xl-95px {
+ height: 95px !important;
+ }
+ .h-xl-100px {
+ height: 100px !important;
+ }
+ .h-xl-125px {
+ height: 125px !important;
+ }
+ .h-xl-150px {
+ height: 150px !important;
+ }
+ .h-xl-175px {
+ height: 175px !important;
+ }
+ .h-xl-200px {
+ height: 200px !important;
+ }
+ .h-xl-225px {
+ height: 225px !important;
+ }
+ .h-xl-250px {
+ height: 250px !important;
+ }
+ .h-xl-275px {
+ height: 275px !important;
+ }
+ .h-xl-300px {
+ height: 300px !important;
+ }
+ .h-xl-325px {
+ height: 325px !important;
+ }
+ .h-xl-350px {
+ height: 350px !important;
+ }
+ .h-xl-375px {
+ height: 375px !important;
+ }
+ .h-xl-400px {
+ height: 400px !important;
+ }
+ .h-xl-425px {
+ height: 425px !important;
+ }
+ .h-xl-450px {
+ height: 450px !important;
+ }
+ .h-xl-475px {
+ height: 475px !important;
+ }
+ .h-xl-500px {
+ height: 500px !important;
+ }
+ .h-xl-550px {
+ height: 550px !important;
+ }
+ .h-xl-600px {
+ height: 600px !important;
+ }
+ .h-xl-650px {
+ height: 650px !important;
+ }
+ .h-xl-700px {
+ height: 700px !important;
+ }
+ .h-xl-750px {
+ height: 750px !important;
+ }
+ .h-xl-800px {
+ height: 800px !important;
+ }
+ .h-xl-850px {
+ height: 850px !important;
+ }
+ .h-xl-900px {
+ height: 900px !important;
+ }
+ .h-xl-950px {
+ height: 950px !important;
+ }
+ .h-xl-1000px {
+ height: 1000px !important;
+ }
+ .mh-xl-unset {
+ max-height: unset !important;
+ }
+ .mh-xl-25 {
+ max-height: 25% !important;
+ }
+ .mh-xl-50 {
+ max-height: 50% !important;
+ }
+ .mh-xl-75 {
+ max-height: 75% !important;
+ }
+ .mh-xl-100 {
+ max-height: 100% !important;
+ }
+ .mh-xl-auto {
+ max-height: auto !important;
+ }
+ .mh-xl-1px {
+ max-height: 1px !important;
+ }
+ .mh-xl-2px {
+ max-height: 2px !important;
+ }
+ .mh-xl-3px {
+ max-height: 3px !important;
+ }
+ .mh-xl-4px {
+ max-height: 4px !important;
+ }
+ .mh-xl-5px {
+ max-height: 5px !important;
+ }
+ .mh-xl-6px {
+ max-height: 6px !important;
+ }
+ .mh-xl-7px {
+ max-height: 7px !important;
+ }
+ .mh-xl-8px {
+ max-height: 8px !important;
+ }
+ .mh-xl-9px {
+ max-height: 9px !important;
+ }
+ .mh-xl-10px {
+ max-height: 10px !important;
+ }
+ .mh-xl-15px {
+ max-height: 15px !important;
+ }
+ .mh-xl-20px {
+ max-height: 20px !important;
+ }
+ .mh-xl-25px {
+ max-height: 25px !important;
+ }
+ .mh-xl-30px {
+ max-height: 30px !important;
+ }
+ .mh-xl-35px {
+ max-height: 35px !important;
+ }
+ .mh-xl-40px {
+ max-height: 40px !important;
+ }
+ .mh-xl-45px {
+ max-height: 45px !important;
+ }
+ .mh-xl-50px {
+ max-height: 50px !important;
+ }
+ .mh-xl-55px {
+ max-height: 55px !important;
+ }
+ .mh-xl-60px {
+ max-height: 60px !important;
+ }
+ .mh-xl-65px {
+ max-height: 65px !important;
+ }
+ .mh-xl-70px {
+ max-height: 70px !important;
+ }
+ .mh-xl-75px {
+ max-height: 75px !important;
+ }
+ .mh-xl-80px {
+ max-height: 80px !important;
+ }
+ .mh-xl-85px {
+ max-height: 85px !important;
+ }
+ .mh-xl-90px {
+ max-height: 90px !important;
+ }
+ .mh-xl-95px {
+ max-height: 95px !important;
+ }
+ .mh-xl-100px {
+ max-height: 100px !important;
+ }
+ .mh-xl-125px {
+ max-height: 125px !important;
+ }
+ .mh-xl-150px {
+ max-height: 150px !important;
+ }
+ .mh-xl-175px {
+ max-height: 175px !important;
+ }
+ .mh-xl-200px {
+ max-height: 200px !important;
+ }
+ .mh-xl-225px {
+ max-height: 225px !important;
+ }
+ .mh-xl-250px {
+ max-height: 250px !important;
+ }
+ .mh-xl-275px {
+ max-height: 275px !important;
+ }
+ .mh-xl-300px {
+ max-height: 300px !important;
+ }
+ .mh-xl-325px {
+ max-height: 325px !important;
+ }
+ .mh-xl-350px {
+ max-height: 350px !important;
+ }
+ .mh-xl-375px {
+ max-height: 375px !important;
+ }
+ .mh-xl-400px {
+ max-height: 400px !important;
+ }
+ .mh-xl-425px {
+ max-height: 425px !important;
+ }
+ .mh-xl-450px {
+ max-height: 450px !important;
+ }
+ .mh-xl-475px {
+ max-height: 475px !important;
+ }
+ .mh-xl-500px {
+ max-height: 500px !important;
+ }
+ .mh-xl-550px {
+ max-height: 550px !important;
+ }
+ .mh-xl-600px {
+ max-height: 600px !important;
+ }
+ .mh-xl-650px {
+ max-height: 650px !important;
+ }
+ .mh-xl-700px {
+ max-height: 700px !important;
+ }
+ .mh-xl-750px {
+ max-height: 750px !important;
+ }
+ .mh-xl-800px {
+ max-height: 800px !important;
+ }
+ .mh-xl-850px {
+ max-height: 850px !important;
+ }
+ .mh-xl-900px {
+ max-height: 900px !important;
+ }
+ .mh-xl-950px {
+ max-height: 950px !important;
+ }
+ .mh-xl-1000px {
+ max-height: 1000px !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: 0.25rem !important;
+ }
+ .m-xl-2 {
+ margin: 0.5rem !important;
+ }
+ .m-xl-3 {
+ margin: 0.75rem !important;
+ }
+ .m-xl-4 {
+ margin: 1rem !important;
+ }
+ .m-xl-5 {
+ margin: 1.25rem !important;
+ }
+ .m-xl-6 {
+ margin: 1.5rem !important;
+ }
+ .m-xl-7 {
+ margin: 1.75rem !important;
+ }
+ .m-xl-8 {
+ margin: 2rem !important;
+ }
+ .m-xl-9 {
+ margin: 2.25rem !important;
+ }
+ .m-xl-10 {
+ margin: 2.5rem !important;
+ }
+ .m-xl-11 {
+ margin: 2.75rem !important;
+ }
+ .m-xl-12 {
+ margin: 3rem !important;
+ }
+ .m-xl-13 {
+ margin: 3.25rem !important;
+ }
+ .m-xl-14 {
+ margin: 3.5rem !important;
+ }
+ .m-xl-15 {
+ margin: 3.75rem !important;
+ }
+ .m-xl-16 {
+ margin: 4rem !important;
+ }
+ .m-xl-17 {
+ margin: 4.25rem !important;
+ }
+ .m-xl-18 {
+ margin: 4.5rem !important;
+ }
+ .m-xl-19 {
+ margin: 4.75rem !important;
+ }
+ .m-xl-20 {
+ margin: 5rem !important;
+ }
+ .m-xl-auto {
+ margin: auto !important;
+ }
+ .mx-xl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-xl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-xl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-xl-3 {
+ margin-right: 0.75rem !important;
+ margin-left: 0.75rem !important;
+ }
+ .mx-xl-4 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-xl-5 {
+ margin-right: 1.25rem !important;
+ margin-left: 1.25rem !important;
+ }
+ .mx-xl-6 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-xl-7 {
+ margin-right: 1.75rem !important;
+ margin-left: 1.75rem !important;
+ }
+ .mx-xl-8 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important;
+ }
+ .mx-xl-9 {
+ margin-right: 2.25rem !important;
+ margin-left: 2.25rem !important;
+ }
+ .mx-xl-10 {
+ margin-right: 2.5rem !important;
+ margin-left: 2.5rem !important;
+ }
+ .mx-xl-11 {
+ margin-right: 2.75rem !important;
+ margin-left: 2.75rem !important;
+ }
+ .mx-xl-12 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-xl-13 {
+ margin-right: 3.25rem !important;
+ margin-left: 3.25rem !important;
+ }
+ .mx-xl-14 {
+ margin-right: 3.5rem !important;
+ margin-left: 3.5rem !important;
+ }
+ .mx-xl-15 {
+ margin-right: 3.75rem !important;
+ margin-left: 3.75rem !important;
+ }
+ .mx-xl-16 {
+ margin-right: 4rem !important;
+ margin-left: 4rem !important;
+ }
+ .mx-xl-17 {
+ margin-right: 4.25rem !important;
+ margin-left: 4.25rem !important;
+ }
+ .mx-xl-18 {
+ margin-right: 4.5rem !important;
+ margin-left: 4.5rem !important;
+ }
+ .mx-xl-19 {
+ margin-right: 4.75rem !important;
+ margin-left: 4.75rem !important;
+ }
+ .mx-xl-20 {
+ margin-right: 5rem !important;
+ margin-left: 5rem !important;
+ }
+ .mx-xl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-xl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-xl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-xl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-xl-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+ }
+ .my-xl-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-xl-5 {
+ margin-top: 1.25rem !important;
+ margin-bottom: 1.25rem !important;
+ }
+ .my-xl-6 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-xl-7 {
+ margin-top: 1.75rem !important;
+ margin-bottom: 1.75rem !important;
+ }
+ .my-xl-8 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important;
+ }
+ .my-xl-9 {
+ margin-top: 2.25rem !important;
+ margin-bottom: 2.25rem !important;
+ }
+ .my-xl-10 {
+ margin-top: 2.5rem !important;
+ margin-bottom: 2.5rem !important;
+ }
+ .my-xl-11 {
+ margin-top: 2.75rem !important;
+ margin-bottom: 2.75rem !important;
+ }
+ .my-xl-12 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-xl-13 {
+ margin-top: 3.25rem !important;
+ margin-bottom: 3.25rem !important;
+ }
+ .my-xl-14 {
+ margin-top: 3.5rem !important;
+ margin-bottom: 3.5rem !important;
+ }
+ .my-xl-15 {
+ margin-top: 3.75rem !important;
+ margin-bottom: 3.75rem !important;
+ }
+ .my-xl-16 {
+ margin-top: 4rem !important;
+ margin-bottom: 4rem !important;
+ }
+ .my-xl-17 {
+ margin-top: 4.25rem !important;
+ margin-bottom: 4.25rem !important;
+ }
+ .my-xl-18 {
+ margin-top: 4.5rem !important;
+ margin-bottom: 4.5rem !important;
+ }
+ .my-xl-19 {
+ margin-top: 4.75rem !important;
+ margin-bottom: 4.75rem !important;
+ }
+ .my-xl-20 {
+ margin-top: 5rem !important;
+ margin-bottom: 5rem !important;
+ }
+ .my-xl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-xl-0 {
+ margin-top: 0 !important;
+ }
+ .mt-xl-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-xl-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-xl-3 {
+ margin-top: 0.75rem !important;
+ }
+ .mt-xl-4 {
+ margin-top: 1rem !important;
+ }
+ .mt-xl-5 {
+ margin-top: 1.25rem !important;
+ }
+ .mt-xl-6 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-xl-7 {
+ margin-top: 1.75rem !important;
+ }
+ .mt-xl-8 {
+ margin-top: 2rem !important;
+ }
+ .mt-xl-9 {
+ margin-top: 2.25rem !important;
+ }
+ .mt-xl-10 {
+ margin-top: 2.5rem !important;
+ }
+ .mt-xl-11 {
+ margin-top: 2.75rem !important;
+ }
+ .mt-xl-12 {
+ margin-top: 3rem !important;
+ }
+ .mt-xl-13 {
+ margin-top: 3.25rem !important;
+ }
+ .mt-xl-14 {
+ margin-top: 3.5rem !important;
+ }
+ .mt-xl-15 {
+ margin-top: 3.75rem !important;
+ }
+ .mt-xl-16 {
+ margin-top: 4rem !important;
+ }
+ .mt-xl-17 {
+ margin-top: 4.25rem !important;
+ }
+ .mt-xl-18 {
+ margin-top: 4.5rem !important;
+ }
+ .mt-xl-19 {
+ margin-top: 4.75rem !important;
+ }
+ .mt-xl-20 {
+ margin-top: 5rem !important;
+ }
+ .mt-xl-auto {
+ margin-top: auto !important;
+ }
+ .me-xl-0 {
+ margin-right: 0 !important;
+ }
+ .me-xl-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-xl-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-xl-3 {
+ margin-right: 0.75rem !important;
+ }
+ .me-xl-4 {
+ margin-right: 1rem !important;
+ }
+ .me-xl-5 {
+ margin-right: 1.25rem !important;
+ }
+ .me-xl-6 {
+ margin-right: 1.5rem !important;
+ }
+ .me-xl-7 {
+ margin-right: 1.75rem !important;
+ }
+ .me-xl-8 {
+ margin-right: 2rem !important;
+ }
+ .me-xl-9 {
+ margin-right: 2.25rem !important;
+ }
+ .me-xl-10 {
+ margin-right: 2.5rem !important;
+ }
+ .me-xl-11 {
+ margin-right: 2.75rem !important;
+ }
+ .me-xl-12 {
+ margin-right: 3rem !important;
+ }
+ .me-xl-13 {
+ margin-right: 3.25rem !important;
+ }
+ .me-xl-14 {
+ margin-right: 3.5rem !important;
+ }
+ .me-xl-15 {
+ margin-right: 3.75rem !important;
+ }
+ .me-xl-16 {
+ margin-right: 4rem !important;
+ }
+ .me-xl-17 {
+ margin-right: 4.25rem !important;
+ }
+ .me-xl-18 {
+ margin-right: 4.5rem !important;
+ }
+ .me-xl-19 {
+ margin-right: 4.75rem !important;
+ }
+ .me-xl-20 {
+ margin-right: 5rem !important;
+ }
+ .me-xl-auto {
+ margin-right: auto !important;
+ }
+ .mb-xl-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-xl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-xl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-xl-3 {
+ margin-bottom: 0.75rem !important;
+ }
+ .mb-xl-4 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-xl-5 {
+ margin-bottom: 1.25rem !important;
+ }
+ .mb-xl-6 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-xl-7 {
+ margin-bottom: 1.75rem !important;
+ }
+ .mb-xl-8 {
+ margin-bottom: 2rem !important;
+ }
+ .mb-xl-9 {
+ margin-bottom: 2.25rem !important;
+ }
+ .mb-xl-10 {
+ margin-bottom: 2.5rem !important;
+ }
+ .mb-xl-11 {
+ margin-bottom: 2.75rem !important;
+ }
+ .mb-xl-12 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-xl-13 {
+ margin-bottom: 3.25rem !important;
+ }
+ .mb-xl-14 {
+ margin-bottom: 3.5rem !important;
+ }
+ .mb-xl-15 {
+ margin-bottom: 3.75rem !important;
+ }
+ .mb-xl-16 {
+ margin-bottom: 4rem !important;
+ }
+ .mb-xl-17 {
+ margin-bottom: 4.25rem !important;
+ }
+ .mb-xl-18 {
+ margin-bottom: 4.5rem !important;
+ }
+ .mb-xl-19 {
+ margin-bottom: 4.75rem !important;
+ }
+ .mb-xl-20 {
+ margin-bottom: 5rem !important;
+ }
+ .mb-xl-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-xl-0 {
+ margin-left: 0 !important;
+ }
+ .ms-xl-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-xl-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-xl-3 {
+ margin-left: 0.75rem !important;
+ }
+ .ms-xl-4 {
+ margin-left: 1rem !important;
+ }
+ .ms-xl-5 {
+ margin-left: 1.25rem !important;
+ }
+ .ms-xl-6 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-xl-7 {
+ margin-left: 1.75rem !important;
+ }
+ .ms-xl-8 {
+ margin-left: 2rem !important;
+ }
+ .ms-xl-9 {
+ margin-left: 2.25rem !important;
+ }
+ .ms-xl-10 {
+ margin-left: 2.5rem !important;
+ }
+ .ms-xl-11 {
+ margin-left: 2.75rem !important;
+ }
+ .ms-xl-12 {
+ margin-left: 3rem !important;
+ }
+ .ms-xl-13 {
+ margin-left: 3.25rem !important;
+ }
+ .ms-xl-14 {
+ margin-left: 3.5rem !important;
+ }
+ .ms-xl-15 {
+ margin-left: 3.75rem !important;
+ }
+ .ms-xl-16 {
+ margin-left: 4rem !important;
+ }
+ .ms-xl-17 {
+ margin-left: 4.25rem !important;
+ }
+ .ms-xl-18 {
+ margin-left: 4.5rem !important;
+ }
+ .ms-xl-19 {
+ margin-left: 4.75rem !important;
+ }
+ .ms-xl-20 {
+ margin-left: 5rem !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: -0.75rem !important;
+ }
+ .m-xl-n4 {
+ margin: -1rem !important;
+ }
+ .m-xl-n5 {
+ margin: -1.25rem !important;
+ }
+ .m-xl-n6 {
+ margin: -1.5rem !important;
+ }
+ .m-xl-n7 {
+ margin: -1.75rem !important;
+ }
+ .m-xl-n8 {
+ margin: -2rem !important;
+ }
+ .m-xl-n9 {
+ margin: -2.25rem !important;
+ }
+ .m-xl-n10 {
+ margin: -2.5rem !important;
+ }
+ .m-xl-n11 {
+ margin: -2.75rem !important;
+ }
+ .m-xl-n12 {
+ margin: -3rem !important;
+ }
+ .m-xl-n13 {
+ margin: -3.25rem !important;
+ }
+ .m-xl-n14 {
+ margin: -3.5rem !important;
+ }
+ .m-xl-n15 {
+ margin: -3.75rem !important;
+ }
+ .m-xl-n16 {
+ margin: -4rem !important;
+ }
+ .m-xl-n17 {
+ margin: -4.25rem !important;
+ }
+ .m-xl-n18 {
+ margin: -4.5rem !important;
+ }
+ .m-xl-n19 {
+ margin: -4.75rem !important;
+ }
+ .m-xl-n20 {
+ margin: -5rem !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: -0.75rem !important;
+ margin-left: -0.75rem !important;
+ }
+ .mx-xl-n4 {
+ margin-right: -1rem !important;
+ margin-left: -1rem !important;
+ }
+ .mx-xl-n5 {
+ margin-right: -1.25rem !important;
+ margin-left: -1.25rem !important;
+ }
+ .mx-xl-n6 {
+ margin-right: -1.5rem !important;
+ margin-left: -1.5rem !important;
+ }
+ .mx-xl-n7 {
+ margin-right: -1.75rem !important;
+ margin-left: -1.75rem !important;
+ }
+ .mx-xl-n8 {
+ margin-right: -2rem !important;
+ margin-left: -2rem !important;
+ }
+ .mx-xl-n9 {
+ margin-right: -2.25rem !important;
+ margin-left: -2.25rem !important;
+ }
+ .mx-xl-n10 {
+ margin-right: -2.5rem !important;
+ margin-left: -2.5rem !important;
+ }
+ .mx-xl-n11 {
+ margin-right: -2.75rem !important;
+ margin-left: -2.75rem !important;
+ }
+ .mx-xl-n12 {
+ margin-right: -3rem !important;
+ margin-left: -3rem !important;
+ }
+ .mx-xl-n13 {
+ margin-right: -3.25rem !important;
+ margin-left: -3.25rem !important;
+ }
+ .mx-xl-n14 {
+ margin-right: -3.5rem !important;
+ margin-left: -3.5rem !important;
+ }
+ .mx-xl-n15 {
+ margin-right: -3.75rem !important;
+ margin-left: -3.75rem !important;
+ }
+ .mx-xl-n16 {
+ margin-right: -4rem !important;
+ margin-left: -4rem !important;
+ }
+ .mx-xl-n17 {
+ margin-right: -4.25rem !important;
+ margin-left: -4.25rem !important;
+ }
+ .mx-xl-n18 {
+ margin-right: -4.5rem !important;
+ margin-left: -4.5rem !important;
+ }
+ .mx-xl-n19 {
+ margin-right: -4.75rem !important;
+ margin-left: -4.75rem !important;
+ }
+ .mx-xl-n20 {
+ margin-right: -5rem !important;
+ margin-left: -5rem !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: -0.75rem !important;
+ margin-bottom: -0.75rem !important;
+ }
+ .my-xl-n4 {
+ margin-top: -1rem !important;
+ margin-bottom: -1rem !important;
+ }
+ .my-xl-n5 {
+ margin-top: -1.25rem !important;
+ margin-bottom: -1.25rem !important;
+ }
+ .my-xl-n6 {
+ margin-top: -1.5rem !important;
+ margin-bottom: -1.5rem !important;
+ }
+ .my-xl-n7 {
+ margin-top: -1.75rem !important;
+ margin-bottom: -1.75rem !important;
+ }
+ .my-xl-n8 {
+ margin-top: -2rem !important;
+ margin-bottom: -2rem !important;
+ }
+ .my-xl-n9 {
+ margin-top: -2.25rem !important;
+ margin-bottom: -2.25rem !important;
+ }
+ .my-xl-n10 {
+ margin-top: -2.5rem !important;
+ margin-bottom: -2.5rem !important;
+ }
+ .my-xl-n11 {
+ margin-top: -2.75rem !important;
+ margin-bottom: -2.75rem !important;
+ }
+ .my-xl-n12 {
+ margin-top: -3rem !important;
+ margin-bottom: -3rem !important;
+ }
+ .my-xl-n13 {
+ margin-top: -3.25rem !important;
+ margin-bottom: -3.25rem !important;
+ }
+ .my-xl-n14 {
+ margin-top: -3.5rem !important;
+ margin-bottom: -3.5rem !important;
+ }
+ .my-xl-n15 {
+ margin-top: -3.75rem !important;
+ margin-bottom: -3.75rem !important;
+ }
+ .my-xl-n16 {
+ margin-top: -4rem !important;
+ margin-bottom: -4rem !important;
+ }
+ .my-xl-n17 {
+ margin-top: -4.25rem !important;
+ margin-bottom: -4.25rem !important;
+ }
+ .my-xl-n18 {
+ margin-top: -4.5rem !important;
+ margin-bottom: -4.5rem !important;
+ }
+ .my-xl-n19 {
+ margin-top: -4.75rem !important;
+ margin-bottom: -4.75rem !important;
+ }
+ .my-xl-n20 {
+ margin-top: -5rem !important;
+ margin-bottom: -5rem !important;
+ }
+ .mt-xl-n1 {
+ margin-top: -0.25rem !important;
+ }
+ .mt-xl-n2 {
+ margin-top: -0.5rem !important;
+ }
+ .mt-xl-n3 {
+ margin-top: -0.75rem !important;
+ }
+ .mt-xl-n4 {
+ margin-top: -1rem !important;
+ }
+ .mt-xl-n5 {
+ margin-top: -1.25rem !important;
+ }
+ .mt-xl-n6 {
+ margin-top: -1.5rem !important;
+ }
+ .mt-xl-n7 {
+ margin-top: -1.75rem !important;
+ }
+ .mt-xl-n8 {
+ margin-top: -2rem !important;
+ }
+ .mt-xl-n9 {
+ margin-top: -2.25rem !important;
+ }
+ .mt-xl-n10 {
+ margin-top: -2.5rem !important;
+ }
+ .mt-xl-n11 {
+ margin-top: -2.75rem !important;
+ }
+ .mt-xl-n12 {
+ margin-top: -3rem !important;
+ }
+ .mt-xl-n13 {
+ margin-top: -3.25rem !important;
+ }
+ .mt-xl-n14 {
+ margin-top: -3.5rem !important;
+ }
+ .mt-xl-n15 {
+ margin-top: -3.75rem !important;
+ }
+ .mt-xl-n16 {
+ margin-top: -4rem !important;
+ }
+ .mt-xl-n17 {
+ margin-top: -4.25rem !important;
+ }
+ .mt-xl-n18 {
+ margin-top: -4.5rem !important;
+ }
+ .mt-xl-n19 {
+ margin-top: -4.75rem !important;
+ }
+ .mt-xl-n20 {
+ margin-top: -5rem !important;
+ }
+ .me-xl-n1 {
+ margin-right: -0.25rem !important;
+ }
+ .me-xl-n2 {
+ margin-right: -0.5rem !important;
+ }
+ .me-xl-n3 {
+ margin-right: -0.75rem !important;
+ }
+ .me-xl-n4 {
+ margin-right: -1rem !important;
+ }
+ .me-xl-n5 {
+ margin-right: -1.25rem !important;
+ }
+ .me-xl-n6 {
+ margin-right: -1.5rem !important;
+ }
+ .me-xl-n7 {
+ margin-right: -1.75rem !important;
+ }
+ .me-xl-n8 {
+ margin-right: -2rem !important;
+ }
+ .me-xl-n9 {
+ margin-right: -2.25rem !important;
+ }
+ .me-xl-n10 {
+ margin-right: -2.5rem !important;
+ }
+ .me-xl-n11 {
+ margin-right: -2.75rem !important;
+ }
+ .me-xl-n12 {
+ margin-right: -3rem !important;
+ }
+ .me-xl-n13 {
+ margin-right: -3.25rem !important;
+ }
+ .me-xl-n14 {
+ margin-right: -3.5rem !important;
+ }
+ .me-xl-n15 {
+ margin-right: -3.75rem !important;
+ }
+ .me-xl-n16 {
+ margin-right: -4rem !important;
+ }
+ .me-xl-n17 {
+ margin-right: -4.25rem !important;
+ }
+ .me-xl-n18 {
+ margin-right: -4.5rem !important;
+ }
+ .me-xl-n19 {
+ margin-right: -4.75rem !important;
+ }
+ .me-xl-n20 {
+ margin-right: -5rem !important;
+ }
+ .mb-xl-n1 {
+ margin-bottom: -0.25rem !important;
+ }
+ .mb-xl-n2 {
+ margin-bottom: -0.5rem !important;
+ }
+ .mb-xl-n3 {
+ margin-bottom: -0.75rem !important;
+ }
+ .mb-xl-n4 {
+ margin-bottom: -1rem !important;
+ }
+ .mb-xl-n5 {
+ margin-bottom: -1.25rem !important;
+ }
+ .mb-xl-n6 {
+ margin-bottom: -1.5rem !important;
+ }
+ .mb-xl-n7 {
+ margin-bottom: -1.75rem !important;
+ }
+ .mb-xl-n8 {
+ margin-bottom: -2rem !important;
+ }
+ .mb-xl-n9 {
+ margin-bottom: -2.25rem !important;
+ }
+ .mb-xl-n10 {
+ margin-bottom: -2.5rem !important;
+ }
+ .mb-xl-n11 {
+ margin-bottom: -2.75rem !important;
+ }
+ .mb-xl-n12 {
+ margin-bottom: -3rem !important;
+ }
+ .mb-xl-n13 {
+ margin-bottom: -3.25rem !important;
+ }
+ .mb-xl-n14 {
+ margin-bottom: -3.5rem !important;
+ }
+ .mb-xl-n15 {
+ margin-bottom: -3.75rem !important;
+ }
+ .mb-xl-n16 {
+ margin-bottom: -4rem !important;
+ }
+ .mb-xl-n17 {
+ margin-bottom: -4.25rem !important;
+ }
+ .mb-xl-n18 {
+ margin-bottom: -4.5rem !important;
+ }
+ .mb-xl-n19 {
+ margin-bottom: -4.75rem !important;
+ }
+ .mb-xl-n20 {
+ margin-bottom: -5rem !important;
+ }
+ .ms-xl-n1 {
+ margin-left: -0.25rem !important;
+ }
+ .ms-xl-n2 {
+ margin-left: -0.5rem !important;
+ }
+ .ms-xl-n3 {
+ margin-left: -0.75rem !important;
+ }
+ .ms-xl-n4 {
+ margin-left: -1rem !important;
+ }
+ .ms-xl-n5 {
+ margin-left: -1.25rem !important;
+ }
+ .ms-xl-n6 {
+ margin-left: -1.5rem !important;
+ }
+ .ms-xl-n7 {
+ margin-left: -1.75rem !important;
+ }
+ .ms-xl-n8 {
+ margin-left: -2rem !important;
+ }
+ .ms-xl-n9 {
+ margin-left: -2.25rem !important;
+ }
+ .ms-xl-n10 {
+ margin-left: -2.5rem !important;
+ }
+ .ms-xl-n11 {
+ margin-left: -2.75rem !important;
+ }
+ .ms-xl-n12 {
+ margin-left: -3rem !important;
+ }
+ .ms-xl-n13 {
+ margin-left: -3.25rem !important;
+ }
+ .ms-xl-n14 {
+ margin-left: -3.5rem !important;
+ }
+ .ms-xl-n15 {
+ margin-left: -3.75rem !important;
+ }
+ .ms-xl-n16 {
+ margin-left: -4rem !important;
+ }
+ .ms-xl-n17 {
+ margin-left: -4.25rem !important;
+ }
+ .ms-xl-n18 {
+ margin-left: -4.5rem !important;
+ }
+ .ms-xl-n19 {
+ margin-left: -4.75rem !important;
+ }
+ .ms-xl-n20 {
+ margin-left: -5rem !important;
+ }
+ .p-xl-0 {
+ padding: 0 !important;
+ }
+ .p-xl-1 {
+ padding: 0.25rem !important;
+ }
+ .p-xl-2 {
+ padding: 0.5rem !important;
+ }
+ .p-xl-3 {
+ padding: 0.75rem !important;
+ }
+ .p-xl-4 {
+ padding: 1rem !important;
+ }
+ .p-xl-5 {
+ padding: 1.25rem !important;
+ }
+ .p-xl-6 {
+ padding: 1.5rem !important;
+ }
+ .p-xl-7 {
+ padding: 1.75rem !important;
+ }
+ .p-xl-8 {
+ padding: 2rem !important;
+ }
+ .p-xl-9 {
+ padding: 2.25rem !important;
+ }
+ .p-xl-10 {
+ padding: 2.5rem !important;
+ }
+ .p-xl-11 {
+ padding: 2.75rem !important;
+ }
+ .p-xl-12 {
+ padding: 3rem !important;
+ }
+ .p-xl-13 {
+ padding: 3.25rem !important;
+ }
+ .p-xl-14 {
+ padding: 3.5rem !important;
+ }
+ .p-xl-15 {
+ padding: 3.75rem !important;
+ }
+ .p-xl-16 {
+ padding: 4rem !important;
+ }
+ .p-xl-17 {
+ padding: 4.25rem !important;
+ }
+ .p-xl-18 {
+ padding: 4.5rem !important;
+ }
+ .p-xl-19 {
+ padding: 4.75rem !important;
+ }
+ .p-xl-20 {
+ padding: 5rem !important;
+ }
+ .px-xl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-xl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-xl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-xl-3 {
+ padding-right: 0.75rem !important;
+ padding-left: 0.75rem !important;
+ }
+ .px-xl-4 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-xl-5 {
+ padding-right: 1.25rem !important;
+ padding-left: 1.25rem !important;
+ }
+ .px-xl-6 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-xl-7 {
+ padding-right: 1.75rem !important;
+ padding-left: 1.75rem !important;
+ }
+ .px-xl-8 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important;
+ }
+ .px-xl-9 {
+ padding-right: 2.25rem !important;
+ padding-left: 2.25rem !important;
+ }
+ .px-xl-10 {
+ padding-right: 2.5rem !important;
+ padding-left: 2.5rem !important;
+ }
+ .px-xl-11 {
+ padding-right: 2.75rem !important;
+ padding-left: 2.75rem !important;
+ }
+ .px-xl-12 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .px-xl-13 {
+ padding-right: 3.25rem !important;
+ padding-left: 3.25rem !important;
+ }
+ .px-xl-14 {
+ padding-right: 3.5rem !important;
+ padding-left: 3.5rem !important;
+ }
+ .px-xl-15 {
+ padding-right: 3.75rem !important;
+ padding-left: 3.75rem !important;
+ }
+ .px-xl-16 {
+ padding-right: 4rem !important;
+ padding-left: 4rem !important;
+ }
+ .px-xl-17 {
+ padding-right: 4.25rem !important;
+ padding-left: 4.25rem !important;
+ }
+ .px-xl-18 {
+ padding-right: 4.5rem !important;
+ padding-left: 4.5rem !important;
+ }
+ .px-xl-19 {
+ padding-right: 4.75rem !important;
+ padding-left: 4.75rem !important;
+ }
+ .px-xl-20 {
+ padding-right: 5rem !important;
+ padding-left: 5rem !important;
+ }
+ .py-xl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-xl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-xl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-xl-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+ }
+ .py-xl-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-xl-5 {
+ padding-top: 1.25rem !important;
+ padding-bottom: 1.25rem !important;
+ }
+ .py-xl-6 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-xl-7 {
+ padding-top: 1.75rem !important;
+ padding-bottom: 1.75rem !important;
+ }
+ .py-xl-8 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+ }
+ .py-xl-9 {
+ padding-top: 2.25rem !important;
+ padding-bottom: 2.25rem !important;
+ }
+ .py-xl-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+ }
+ .py-xl-11 {
+ padding-top: 2.75rem !important;
+ padding-bottom: 2.75rem !important;
+ }
+ .py-xl-12 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .py-xl-13 {
+ padding-top: 3.25rem !important;
+ padding-bottom: 3.25rem !important;
+ }
+ .py-xl-14 {
+ padding-top: 3.5rem !important;
+ padding-bottom: 3.5rem !important;
+ }
+ .py-xl-15 {
+ padding-top: 3.75rem !important;
+ padding-bottom: 3.75rem !important;
+ }
+ .py-xl-16 {
+ padding-top: 4rem !important;
+ padding-bottom: 4rem !important;
+ }
+ .py-xl-17 {
+ padding-top: 4.25rem !important;
+ padding-bottom: 4.25rem !important;
+ }
+ .py-xl-18 {
+ padding-top: 4.5rem !important;
+ padding-bottom: 4.5rem !important;
+ }
+ .py-xl-19 {
+ padding-top: 4.75rem !important;
+ padding-bottom: 4.75rem !important;
+ }
+ .py-xl-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+ .pt-xl-0 {
+ padding-top: 0 !important;
+ }
+ .pt-xl-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-xl-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-xl-3 {
+ padding-top: 0.75rem !important;
+ }
+ .pt-xl-4 {
+ padding-top: 1rem !important;
+ }
+ .pt-xl-5 {
+ padding-top: 1.25rem !important;
+ }
+ .pt-xl-6 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-xl-7 {
+ padding-top: 1.75rem !important;
+ }
+ .pt-xl-8 {
+ padding-top: 2rem !important;
+ }
+ .pt-xl-9 {
+ padding-top: 2.25rem !important;
+ }
+ .pt-xl-10 {
+ padding-top: 2.5rem !important;
+ }
+ .pt-xl-11 {
+ padding-top: 2.75rem !important;
+ }
+ .pt-xl-12 {
+ padding-top: 3rem !important;
+ }
+ .pt-xl-13 {
+ padding-top: 3.25rem !important;
+ }
+ .pt-xl-14 {
+ padding-top: 3.5rem !important;
+ }
+ .pt-xl-15 {
+ padding-top: 3.75rem !important;
+ }
+ .pt-xl-16 {
+ padding-top: 4rem !important;
+ }
+ .pt-xl-17 {
+ padding-top: 4.25rem !important;
+ }
+ .pt-xl-18 {
+ padding-top: 4.5rem !important;
+ }
+ .pt-xl-19 {
+ padding-top: 4.75rem !important;
+ }
+ .pt-xl-20 {
+ padding-top: 5rem !important;
+ }
+ .pe-xl-0 {
+ padding-right: 0 !important;
+ }
+ .pe-xl-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-xl-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-xl-3 {
+ padding-right: 0.75rem !important;
+ }
+ .pe-xl-4 {
+ padding-right: 1rem !important;
+ }
+ .pe-xl-5 {
+ padding-right: 1.25rem !important;
+ }
+ .pe-xl-6 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-xl-7 {
+ padding-right: 1.75rem !important;
+ }
+ .pe-xl-8 {
+ padding-right: 2rem !important;
+ }
+ .pe-xl-9 {
+ padding-right: 2.25rem !important;
+ }
+ .pe-xl-10 {
+ padding-right: 2.5rem !important;
+ }
+ .pe-xl-11 {
+ padding-right: 2.75rem !important;
+ }
+ .pe-xl-12 {
+ padding-right: 3rem !important;
+ }
+ .pe-xl-13 {
+ padding-right: 3.25rem !important;
+ }
+ .pe-xl-14 {
+ padding-right: 3.5rem !important;
+ }
+ .pe-xl-15 {
+ padding-right: 3.75rem !important;
+ }
+ .pe-xl-16 {
+ padding-right: 4rem !important;
+ }
+ .pe-xl-17 {
+ padding-right: 4.25rem !important;
+ }
+ .pe-xl-18 {
+ padding-right: 4.5rem !important;
+ }
+ .pe-xl-19 {
+ padding-right: 4.75rem !important;
+ }
+ .pe-xl-20 {
+ padding-right: 5rem !important;
+ }
+ .pb-xl-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-xl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-xl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-xl-3 {
+ padding-bottom: 0.75rem !important;
+ }
+ .pb-xl-4 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-xl-5 {
+ padding-bottom: 1.25rem !important;
+ }
+ .pb-xl-6 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-xl-7 {
+ padding-bottom: 1.75rem !important;
+ }
+ .pb-xl-8 {
+ padding-bottom: 2rem !important;
+ }
+ .pb-xl-9 {
+ padding-bottom: 2.25rem !important;
+ }
+ .pb-xl-10 {
+ padding-bottom: 2.5rem !important;
+ }
+ .pb-xl-11 {
+ padding-bottom: 2.75rem !important;
+ }
+ .pb-xl-12 {
+ padding-bottom: 3rem !important;
+ }
+ .pb-xl-13 {
+ padding-bottom: 3.25rem !important;
+ }
+ .pb-xl-14 {
+ padding-bottom: 3.5rem !important;
+ }
+ .pb-xl-15 {
+ padding-bottom: 3.75rem !important;
+ }
+ .pb-xl-16 {
+ padding-bottom: 4rem !important;
+ }
+ .pb-xl-17 {
+ padding-bottom: 4.25rem !important;
+ }
+ .pb-xl-18 {
+ padding-bottom: 4.5rem !important;
+ }
+ .pb-xl-19 {
+ padding-bottom: 4.75rem !important;
+ }
+ .pb-xl-20 {
+ padding-bottom: 5rem !important;
+ }
+ .ps-xl-0 {
+ padding-left: 0 !important;
+ }
+ .ps-xl-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-xl-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-xl-3 {
+ padding-left: 0.75rem !important;
+ }
+ .ps-xl-4 {
+ padding-left: 1rem !important;
+ }
+ .ps-xl-5 {
+ padding-left: 1.25rem !important;
+ }
+ .ps-xl-6 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-xl-7 {
+ padding-left: 1.75rem !important;
+ }
+ .ps-xl-8 {
+ padding-left: 2rem !important;
+ }
+ .ps-xl-9 {
+ padding-left: 2.25rem !important;
+ }
+ .ps-xl-10 {
+ padding-left: 2.5rem !important;
+ }
+ .ps-xl-11 {
+ padding-left: 2.75rem !important;
+ }
+ .ps-xl-12 {
+ padding-left: 3rem !important;
+ }
+ .ps-xl-13 {
+ padding-left: 3.25rem !important;
+ }
+ .ps-xl-14 {
+ padding-left: 3.5rem !important;
+ }
+ .ps-xl-15 {
+ padding-left: 3.75rem !important;
+ }
+ .ps-xl-16 {
+ padding-left: 4rem !important;
+ }
+ .ps-xl-17 {
+ padding-left: 4.25rem !important;
+ }
+ .ps-xl-18 {
+ padding-left: 4.5rem !important;
+ }
+ .ps-xl-19 {
+ padding-left: 4.75rem !important;
+ }
+ .ps-xl-20 {
+ padding-left: 5rem !important;
+ }
+ .gap-xl-0 {
+ gap: 0 !important;
+ }
+ .gap-xl-1 {
+ gap: 0.25rem !important;
+ }
+ .gap-xl-2 {
+ gap: 0.5rem !important;
+ }
+ .gap-xl-3 {
+ gap: 0.75rem !important;
+ }
+ .gap-xl-4 {
+ gap: 1rem !important;
+ }
+ .gap-xl-5 {
+ gap: 1.25rem !important;
+ }
+ .gap-xl-6 {
+ gap: 1.5rem !important;
+ }
+ .gap-xl-7 {
+ gap: 1.75rem !important;
+ }
+ .gap-xl-8 {
+ gap: 2rem !important;
+ }
+ .gap-xl-9 {
+ gap: 2.25rem !important;
+ }
+ .gap-xl-10 {
+ gap: 2.5rem !important;
+ }
+ .gap-xl-11 {
+ gap: 2.75rem !important;
+ }
+ .gap-xl-12 {
+ gap: 3rem !important;
+ }
+ .gap-xl-13 {
+ gap: 3.25rem !important;
+ }
+ .gap-xl-14 {
+ gap: 3.5rem !important;
+ }
+ .gap-xl-15 {
+ gap: 3.75rem !important;
+ }
+ .gap-xl-16 {
+ gap: 4rem !important;
+ }
+ .gap-xl-17 {
+ gap: 4.25rem !important;
+ }
+ .gap-xl-18 {
+ gap: 4.5rem !important;
+ }
+ .gap-xl-19 {
+ gap: 4.75rem !important;
+ }
+ .gap-xl-20 {
+ gap: 5rem !important;
+ }
+ .row-gap-xl-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-xl-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-xl-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-xl-3 {
+ row-gap: 0.75rem !important;
+ }
+ .row-gap-xl-4 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-xl-5 {
+ row-gap: 1.25rem !important;
+ }
+ .row-gap-xl-6 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-xl-7 {
+ row-gap: 1.75rem !important;
+ }
+ .row-gap-xl-8 {
+ row-gap: 2rem !important;
+ }
+ .row-gap-xl-9 {
+ row-gap: 2.25rem !important;
+ }
+ .row-gap-xl-10 {
+ row-gap: 2.5rem !important;
+ }
+ .row-gap-xl-11 {
+ row-gap: 2.75rem !important;
+ }
+ .row-gap-xl-12 {
+ row-gap: 3rem !important;
+ }
+ .row-gap-xl-13 {
+ row-gap: 3.25rem !important;
+ }
+ .row-gap-xl-14 {
+ row-gap: 3.5rem !important;
+ }
+ .row-gap-xl-15 {
+ row-gap: 3.75rem !important;
+ }
+ .row-gap-xl-16 {
+ row-gap: 4rem !important;
+ }
+ .row-gap-xl-17 {
+ row-gap: 4.25rem !important;
+ }
+ .row-gap-xl-18 {
+ row-gap: 4.5rem !important;
+ }
+ .row-gap-xl-19 {
+ row-gap: 4.75rem !important;
+ }
+ .row-gap-xl-20 {
+ row-gap: 5rem !important;
+ }
+ .column-gap-xl-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-xl-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-xl-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-xl-3 {
+ column-gap: 0.75rem !important;
+ }
+ .column-gap-xl-4 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-xl-5 {
+ column-gap: 1.25rem !important;
+ }
+ .column-gap-xl-6 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-xl-7 {
+ column-gap: 1.75rem !important;
+ }
+ .column-gap-xl-8 {
+ column-gap: 2rem !important;
+ }
+ .column-gap-xl-9 {
+ column-gap: 2.25rem !important;
+ }
+ .column-gap-xl-10 {
+ column-gap: 2.5rem !important;
+ }
+ .column-gap-xl-11 {
+ column-gap: 2.75rem !important;
+ }
+ .column-gap-xl-12 {
+ column-gap: 3rem !important;
+ }
+ .column-gap-xl-13 {
+ column-gap: 3.25rem !important;
+ }
+ .column-gap-xl-14 {
+ column-gap: 3.5rem !important;
+ }
+ .column-gap-xl-15 {
+ column-gap: 3.75rem !important;
+ }
+ .column-gap-xl-16 {
+ column-gap: 4rem !important;
+ }
+ .column-gap-xl-17 {
+ column-gap: 4.25rem !important;
+ }
+ .column-gap-xl-18 {
+ column-gap: 4.5rem !important;
+ }
+ .column-gap-xl-19 {
+ column-gap: 4.75rem !important;
+ }
+ .column-gap-xl-20 {
+ column-gap: 5rem !important;
+ }
+ .fs-xl-1 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+ }
+ .fs-xl-2 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+ }
+ .fs-xl-3 {
+ font-size: calc(1.26rem + 0.12vw) !important;
+ }
+ .fs-xl-4 {
+ font-size: 1.25rem !important;
+ }
+ .fs-xl-5 {
+ font-size: 1.15rem !important;
+ }
+ .fs-xl-6 {
+ font-size: 1.075rem !important;
+ }
+ .fs-xl-7 {
+ font-size: 0.95rem !important;
+ }
+ .fs-xl-8 {
+ font-size: 0.85rem !important;
+ }
+ .fs-xl-9 {
+ font-size: 0.75rem !important;
+ }
+ .fs-xl-10 {
+ font-size: 0.5rem !important;
+ }
+ .fs-xl-base {
+ font-size: 1rem !important;
+ }
+ .fs-xl-fluid {
+ font-size: 100% !important;
+ }
+ .fs-xl-2x {
+ font-size: calc(1.325rem + 0.9vw) !important;
+ }
+ .fs-xl-2qx {
+ font-size: calc(1.35rem + 1.2vw) !important;
+ }
+ .fs-xl-2hx {
+ font-size: calc(1.375rem + 1.5vw) !important;
+ }
+ .fs-xl-2tx {
+ font-size: calc(1.4rem + 1.8vw) !important;
+ }
+ .fs-xl-3x {
+ font-size: calc(1.425rem + 2.1vw) !important;
+ }
+ .fs-xl-3qx {
+ font-size: calc(1.45rem + 2.4vw) !important;
+ }
+ .fs-xl-3hx {
+ font-size: calc(1.475rem + 2.7vw) !important;
+ }
+ .fs-xl-3tx {
+ font-size: calc(1.5rem + 3vw) !important;
+ }
+ .fs-xl-4x {
+ font-size: calc(1.525rem + 3.3vw) !important;
+ }
+ .fs-xl-4qx {
+ font-size: calc(1.55rem + 3.6vw) !important;
+ }
+ .fs-xl-4hx {
+ font-size: calc(1.575rem + 3.9vw) !important;
+ }
+ .fs-xl-4tx {
+ font-size: calc(1.6rem + 4.2vw) !important;
+ }
+ .fs-xl-5x {
+ font-size: calc(1.625rem + 4.5vw) !important;
+ }
+ .fs-xl-5qx {
+ font-size: calc(1.65rem + 4.8vw) !important;
+ }
+ .fs-xl-5hx {
+ font-size: calc(1.675rem + 5.1vw) !important;
+ }
+ .fs-xl-5tx {
+ font-size: calc(1.7rem + 5.4vw) !important;
+ }
+ .text-xl-start {
+ text-align: left !important;
+ }
+ .text-xl-end {
+ text-align: right !important;
+ }
+ .text-xl-center {
+ text-align: center !important;
+ }
+ .min-w-xl-unset {
+ min-width: unset !important;
+ }
+ .min-w-xl-25 {
+ min-width: 25% !important;
+ }
+ .min-w-xl-50 {
+ min-width: 50% !important;
+ }
+ .min-w-xl-75 {
+ min-width: 75% !important;
+ }
+ .min-w-xl-100 {
+ min-width: 100% !important;
+ }
+ .min-w-xl-auto {
+ min-width: auto !important;
+ }
+ .min-w-xl-1px {
+ min-width: 1px !important;
+ }
+ .min-w-xl-2px {
+ min-width: 2px !important;
+ }
+ .min-w-xl-3px {
+ min-width: 3px !important;
+ }
+ .min-w-xl-4px {
+ min-width: 4px !important;
+ }
+ .min-w-xl-5px {
+ min-width: 5px !important;
+ }
+ .min-w-xl-6px {
+ min-width: 6px !important;
+ }
+ .min-w-xl-7px {
+ min-width: 7px !important;
+ }
+ .min-w-xl-8px {
+ min-width: 8px !important;
+ }
+ .min-w-xl-9px {
+ min-width: 9px !important;
+ }
+ .min-w-xl-10px {
+ min-width: 10px !important;
+ }
+ .min-w-xl-15px {
+ min-width: 15px !important;
+ }
+ .min-w-xl-20px {
+ min-width: 20px !important;
+ }
+ .min-w-xl-25px {
+ min-width: 25px !important;
+ }
+ .min-w-xl-30px {
+ min-width: 30px !important;
+ }
+ .min-w-xl-35px {
+ min-width: 35px !important;
+ }
+ .min-w-xl-40px {
+ min-width: 40px !important;
+ }
+ .min-w-xl-45px {
+ min-width: 45px !important;
+ }
+ .min-w-xl-50px {
+ min-width: 50px !important;
+ }
+ .min-w-xl-55px {
+ min-width: 55px !important;
+ }
+ .min-w-xl-60px {
+ min-width: 60px !important;
+ }
+ .min-w-xl-65px {
+ min-width: 65px !important;
+ }
+ .min-w-xl-70px {
+ min-width: 70px !important;
+ }
+ .min-w-xl-75px {
+ min-width: 75px !important;
+ }
+ .min-w-xl-80px {
+ min-width: 80px !important;
+ }
+ .min-w-xl-85px {
+ min-width: 85px !important;
+ }
+ .min-w-xl-90px {
+ min-width: 90px !important;
+ }
+ .min-w-xl-95px {
+ min-width: 95px !important;
+ }
+ .min-w-xl-100px {
+ min-width: 100px !important;
+ }
+ .min-w-xl-125px {
+ min-width: 125px !important;
+ }
+ .min-w-xl-150px {
+ min-width: 150px !important;
+ }
+ .min-w-xl-175px {
+ min-width: 175px !important;
+ }
+ .min-w-xl-200px {
+ min-width: 200px !important;
+ }
+ .min-w-xl-225px {
+ min-width: 225px !important;
+ }
+ .min-w-xl-250px {
+ min-width: 250px !important;
+ }
+ .min-w-xl-275px {
+ min-width: 275px !important;
+ }
+ .min-w-xl-300px {
+ min-width: 300px !important;
+ }
+ .min-w-xl-325px {
+ min-width: 325px !important;
+ }
+ .min-w-xl-350px {
+ min-width: 350px !important;
+ }
+ .min-w-xl-375px {
+ min-width: 375px !important;
+ }
+ .min-w-xl-400px {
+ min-width: 400px !important;
+ }
+ .min-w-xl-425px {
+ min-width: 425px !important;
+ }
+ .min-w-xl-450px {
+ min-width: 450px !important;
+ }
+ .min-w-xl-475px {
+ min-width: 475px !important;
+ }
+ .min-w-xl-500px {
+ min-width: 500px !important;
+ }
+ .min-w-xl-550px {
+ min-width: 550px !important;
+ }
+ .min-w-xl-600px {
+ min-width: 600px !important;
+ }
+ .min-w-xl-650px {
+ min-width: 650px !important;
+ }
+ .min-w-xl-700px {
+ min-width: 700px !important;
+ }
+ .min-w-xl-750px {
+ min-width: 750px !important;
+ }
+ .min-w-xl-800px {
+ min-width: 800px !important;
+ }
+ .min-w-xl-850px {
+ min-width: 850px !important;
+ }
+ .min-w-xl-900px {
+ min-width: 900px !important;
+ }
+ .min-w-xl-950px {
+ min-width: 950px !important;
+ }
+ .min-w-xl-1000px {
+ min-width: 1000px !important;
+ }
+ .min-h-xl-unset {
+ min-height: unset !important;
+ }
+ .min-h-xl-25 {
+ min-height: 25% !important;
+ }
+ .min-h-xl-50 {
+ min-height: 50% !important;
+ }
+ .min-h-xl-75 {
+ min-height: 75% !important;
+ }
+ .min-h-xl-100 {
+ min-height: 100% !important;
+ }
+ .min-h-xl-auto {
+ min-height: auto !important;
+ }
+ .min-h-xl-1px {
+ min-height: 1px !important;
+ }
+ .min-h-xl-2px {
+ min-height: 2px !important;
+ }
+ .min-h-xl-3px {
+ min-height: 3px !important;
+ }
+ .min-h-xl-4px {
+ min-height: 4px !important;
+ }
+ .min-h-xl-5px {
+ min-height: 5px !important;
+ }
+ .min-h-xl-6px {
+ min-height: 6px !important;
+ }
+ .min-h-xl-7px {
+ min-height: 7px !important;
+ }
+ .min-h-xl-8px {
+ min-height: 8px !important;
+ }
+ .min-h-xl-9px {
+ min-height: 9px !important;
+ }
+ .min-h-xl-10px {
+ min-height: 10px !important;
+ }
+ .min-h-xl-15px {
+ min-height: 15px !important;
+ }
+ .min-h-xl-20px {
+ min-height: 20px !important;
+ }
+ .min-h-xl-25px {
+ min-height: 25px !important;
+ }
+ .min-h-xl-30px {
+ min-height: 30px !important;
+ }
+ .min-h-xl-35px {
+ min-height: 35px !important;
+ }
+ .min-h-xl-40px {
+ min-height: 40px !important;
+ }
+ .min-h-xl-45px {
+ min-height: 45px !important;
+ }
+ .min-h-xl-50px {
+ min-height: 50px !important;
+ }
+ .min-h-xl-55px {
+ min-height: 55px !important;
+ }
+ .min-h-xl-60px {
+ min-height: 60px !important;
+ }
+ .min-h-xl-65px {
+ min-height: 65px !important;
+ }
+ .min-h-xl-70px {
+ min-height: 70px !important;
+ }
+ .min-h-xl-75px {
+ min-height: 75px !important;
+ }
+ .min-h-xl-80px {
+ min-height: 80px !important;
+ }
+ .min-h-xl-85px {
+ min-height: 85px !important;
+ }
+ .min-h-xl-90px {
+ min-height: 90px !important;
+ }
+ .min-h-xl-95px {
+ min-height: 95px !important;
+ }
+ .min-h-xl-100px {
+ min-height: 100px !important;
+ }
+ .min-h-xl-125px {
+ min-height: 125px !important;
+ }
+ .min-h-xl-150px {
+ min-height: 150px !important;
+ }
+ .min-h-xl-175px {
+ min-height: 175px !important;
+ }
+ .min-h-xl-200px {
+ min-height: 200px !important;
+ }
+ .min-h-xl-225px {
+ min-height: 225px !important;
+ }
+ .min-h-xl-250px {
+ min-height: 250px !important;
+ }
+ .min-h-xl-275px {
+ min-height: 275px !important;
+ }
+ .min-h-xl-300px {
+ min-height: 300px !important;
+ }
+ .min-h-xl-325px {
+ min-height: 325px !important;
+ }
+ .min-h-xl-350px {
+ min-height: 350px !important;
+ }
+ .min-h-xl-375px {
+ min-height: 375px !important;
+ }
+ .min-h-xl-400px {
+ min-height: 400px !important;
+ }
+ .min-h-xl-425px {
+ min-height: 425px !important;
+ }
+ .min-h-xl-450px {
+ min-height: 450px !important;
+ }
+ .min-h-xl-475px {
+ min-height: 475px !important;
+ }
+ .min-h-xl-500px {
+ min-height: 500px !important;
+ }
+ .min-h-xl-550px {
+ min-height: 550px !important;
+ }
+ .min-h-xl-600px {
+ min-height: 600px !important;
+ }
+ .min-h-xl-650px {
+ min-height: 650px !important;
+ }
+ .min-h-xl-700px {
+ min-height: 700px !important;
+ }
+ .min-h-xl-750px {
+ min-height: 750px !important;
+ }
+ .min-h-xl-800px {
+ min-height: 800px !important;
+ }
+ .min-h-xl-850px {
+ min-height: 850px !important;
+ }
+ .min-h-xl-900px {
+ min-height: 900px !important;
+ }
+ .min-h-xl-950px {
+ min-height: 950px !important;
+ }
+ .min-h-xl-1000px {
+ min-height: 1000px !important;
+ }
+}
+@media (min-width: 1400px) {
+ .float-xxl-start {
+ float: left !important;
+ }
+ .float-xxl-end {
+ float: right !important;
+ }
+ .float-xxl-none {
+ float: none !important;
+ }
+ .object-fit-xxl-contain {
+ object-fit: contain !important;
+ }
+ .object-fit-xxl-cover {
+ object-fit: cover !important;
+ }
+ .object-fit-xxl-fill {
+ object-fit: fill !important;
+ }
+ .object-fit-xxl-scale {
+ object-fit: scale-down !important;
+ }
+ .object-fit-xxl-none {
+ object-fit: none !important;
+ }
+ .overflow-xxl-auto {
+ overflow: auto !important;
+ }
+ .overflow-xxl-hidden {
+ overflow: hidden !important;
+ }
+ .overflow-xxl-visible {
+ overflow: visible !important;
+ }
+ .overflow-xxl-scroll {
+ overflow: scroll !important;
+ }
+ .d-xxl-inline {
+ display: inline !important;
+ }
+ .d-xxl-inline-block {
+ display: inline-block !important;
+ }
+ .d-xxl-block {
+ display: block !important;
+ }
+ .d-xxl-grid {
+ display: grid !important;
+ }
+ .d-xxl-table {
+ display: table !important;
+ }
+ .d-xxl-table-row {
+ display: table-row !important;
+ }
+ .d-xxl-table-cell {
+ display: table-cell !important;
+ }
+ .d-xxl-flex {
+ display: flex !important;
+ }
+ .d-xxl-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-xxl-none {
+ display: none !important;
+ }
+ .position-xxl-static {
+ position: static !important;
+ }
+ .position-xxl-relative {
+ position: relative !important;
+ }
+ .position-xxl-absolute {
+ position: absolute !important;
+ }
+ .position-xxl-fixed {
+ position: fixed !important;
+ }
+ .position-xxl-sticky {
+ position: sticky !important;
+ }
+ .w-xxl-unset {
+ width: unset !important;
+ }
+ .w-xxl-25 {
+ width: 25% !important;
+ }
+ .w-xxl-50 {
+ width: 50% !important;
+ }
+ .w-xxl-75 {
+ width: 75% !important;
+ }
+ .w-xxl-100 {
+ width: 100% !important;
+ }
+ .w-xxl-auto {
+ width: auto !important;
+ }
+ .w-xxl-1px {
+ width: 1px !important;
+ }
+ .w-xxl-2px {
+ width: 2px !important;
+ }
+ .w-xxl-3px {
+ width: 3px !important;
+ }
+ .w-xxl-4px {
+ width: 4px !important;
+ }
+ .w-xxl-5px {
+ width: 5px !important;
+ }
+ .w-xxl-6px {
+ width: 6px !important;
+ }
+ .w-xxl-7px {
+ width: 7px !important;
+ }
+ .w-xxl-8px {
+ width: 8px !important;
+ }
+ .w-xxl-9px {
+ width: 9px !important;
+ }
+ .w-xxl-10px {
+ width: 10px !important;
+ }
+ .w-xxl-15px {
+ width: 15px !important;
+ }
+ .w-xxl-20px {
+ width: 20px !important;
+ }
+ .w-xxl-25px {
+ width: 25px !important;
+ }
+ .w-xxl-30px {
+ width: 30px !important;
+ }
+ .w-xxl-35px {
+ width: 35px !important;
+ }
+ .w-xxl-40px {
+ width: 40px !important;
+ }
+ .w-xxl-45px {
+ width: 45px !important;
+ }
+ .w-xxl-50px {
+ width: 50px !important;
+ }
+ .w-xxl-55px {
+ width: 55px !important;
+ }
+ .w-xxl-60px {
+ width: 60px !important;
+ }
+ .w-xxl-65px {
+ width: 65px !important;
+ }
+ .w-xxl-70px {
+ width: 70px !important;
+ }
+ .w-xxl-75px {
+ width: 75px !important;
+ }
+ .w-xxl-80px {
+ width: 80px !important;
+ }
+ .w-xxl-85px {
+ width: 85px !important;
+ }
+ .w-xxl-90px {
+ width: 90px !important;
+ }
+ .w-xxl-95px {
+ width: 95px !important;
+ }
+ .w-xxl-100px {
+ width: 100px !important;
+ }
+ .w-xxl-125px {
+ width: 125px !important;
+ }
+ .w-xxl-150px {
+ width: 150px !important;
+ }
+ .w-xxl-175px {
+ width: 175px !important;
+ }
+ .w-xxl-200px {
+ width: 200px !important;
+ }
+ .w-xxl-225px {
+ width: 225px !important;
+ }
+ .w-xxl-250px {
+ width: 250px !important;
+ }
+ .w-xxl-275px {
+ width: 275px !important;
+ }
+ .w-xxl-300px {
+ width: 300px !important;
+ }
+ .w-xxl-325px {
+ width: 325px !important;
+ }
+ .w-xxl-350px {
+ width: 350px !important;
+ }
+ .w-xxl-375px {
+ width: 375px !important;
+ }
+ .w-xxl-400px {
+ width: 400px !important;
+ }
+ .w-xxl-425px {
+ width: 425px !important;
+ }
+ .w-xxl-450px {
+ width: 450px !important;
+ }
+ .w-xxl-475px {
+ width: 475px !important;
+ }
+ .w-xxl-500px {
+ width: 500px !important;
+ }
+ .w-xxl-550px {
+ width: 550px !important;
+ }
+ .w-xxl-600px {
+ width: 600px !important;
+ }
+ .w-xxl-650px {
+ width: 650px !important;
+ }
+ .w-xxl-700px {
+ width: 700px !important;
+ }
+ .w-xxl-750px {
+ width: 750px !important;
+ }
+ .w-xxl-800px {
+ width: 800px !important;
+ }
+ .w-xxl-850px {
+ width: 850px !important;
+ }
+ .w-xxl-900px {
+ width: 900px !important;
+ }
+ .w-xxl-950px {
+ width: 950px !important;
+ }
+ .w-xxl-1000px {
+ width: 1000px !important;
+ }
+ .mw-xxl-unset {
+ max-width: unset !important;
+ }
+ .mw-xxl-25 {
+ max-width: 25% !important;
+ }
+ .mw-xxl-50 {
+ max-width: 50% !important;
+ }
+ .mw-xxl-75 {
+ max-width: 75% !important;
+ }
+ .mw-xxl-100 {
+ max-width: 100% !important;
+ }
+ .mw-xxl-auto {
+ max-width: auto !important;
+ }
+ .mw-xxl-1px {
+ max-width: 1px !important;
+ }
+ .mw-xxl-2px {
+ max-width: 2px !important;
+ }
+ .mw-xxl-3px {
+ max-width: 3px !important;
+ }
+ .mw-xxl-4px {
+ max-width: 4px !important;
+ }
+ .mw-xxl-5px {
+ max-width: 5px !important;
+ }
+ .mw-xxl-6px {
+ max-width: 6px !important;
+ }
+ .mw-xxl-7px {
+ max-width: 7px !important;
+ }
+ .mw-xxl-8px {
+ max-width: 8px !important;
+ }
+ .mw-xxl-9px {
+ max-width: 9px !important;
+ }
+ .mw-xxl-10px {
+ max-width: 10px !important;
+ }
+ .mw-xxl-15px {
+ max-width: 15px !important;
+ }
+ .mw-xxl-20px {
+ max-width: 20px !important;
+ }
+ .mw-xxl-25px {
+ max-width: 25px !important;
+ }
+ .mw-xxl-30px {
+ max-width: 30px !important;
+ }
+ .mw-xxl-35px {
+ max-width: 35px !important;
+ }
+ .mw-xxl-40px {
+ max-width: 40px !important;
+ }
+ .mw-xxl-45px {
+ max-width: 45px !important;
+ }
+ .mw-xxl-50px {
+ max-width: 50px !important;
+ }
+ .mw-xxl-55px {
+ max-width: 55px !important;
+ }
+ .mw-xxl-60px {
+ max-width: 60px !important;
+ }
+ .mw-xxl-65px {
+ max-width: 65px !important;
+ }
+ .mw-xxl-70px {
+ max-width: 70px !important;
+ }
+ .mw-xxl-75px {
+ max-width: 75px !important;
+ }
+ .mw-xxl-80px {
+ max-width: 80px !important;
+ }
+ .mw-xxl-85px {
+ max-width: 85px !important;
+ }
+ .mw-xxl-90px {
+ max-width: 90px !important;
+ }
+ .mw-xxl-95px {
+ max-width: 95px !important;
+ }
+ .mw-xxl-100px {
+ max-width: 100px !important;
+ }
+ .mw-xxl-125px {
+ max-width: 125px !important;
+ }
+ .mw-xxl-150px {
+ max-width: 150px !important;
+ }
+ .mw-xxl-175px {
+ max-width: 175px !important;
+ }
+ .mw-xxl-200px {
+ max-width: 200px !important;
+ }
+ .mw-xxl-225px {
+ max-width: 225px !important;
+ }
+ .mw-xxl-250px {
+ max-width: 250px !important;
+ }
+ .mw-xxl-275px {
+ max-width: 275px !important;
+ }
+ .mw-xxl-300px {
+ max-width: 300px !important;
+ }
+ .mw-xxl-325px {
+ max-width: 325px !important;
+ }
+ .mw-xxl-350px {
+ max-width: 350px !important;
+ }
+ .mw-xxl-375px {
+ max-width: 375px !important;
+ }
+ .mw-xxl-400px {
+ max-width: 400px !important;
+ }
+ .mw-xxl-425px {
+ max-width: 425px !important;
+ }
+ .mw-xxl-450px {
+ max-width: 450px !important;
+ }
+ .mw-xxl-475px {
+ max-width: 475px !important;
+ }
+ .mw-xxl-500px {
+ max-width: 500px !important;
+ }
+ .mw-xxl-550px {
+ max-width: 550px !important;
+ }
+ .mw-xxl-600px {
+ max-width: 600px !important;
+ }
+ .mw-xxl-650px {
+ max-width: 650px !important;
+ }
+ .mw-xxl-700px {
+ max-width: 700px !important;
+ }
+ .mw-xxl-750px {
+ max-width: 750px !important;
+ }
+ .mw-xxl-800px {
+ max-width: 800px !important;
+ }
+ .mw-xxl-850px {
+ max-width: 850px !important;
+ }
+ .mw-xxl-900px {
+ max-width: 900px !important;
+ }
+ .mw-xxl-950px {
+ max-width: 950px !important;
+ }
+ .mw-xxl-1000px {
+ max-width: 1000px !important;
+ }
+ .h-xxl-unset {
+ height: unset !important;
+ }
+ .h-xxl-25 {
+ height: 25% !important;
+ }
+ .h-xxl-50 {
+ height: 50% !important;
+ }
+ .h-xxl-75 {
+ height: 75% !important;
+ }
+ .h-xxl-100 {
+ height: 100% !important;
+ }
+ .h-xxl-auto {
+ height: auto !important;
+ }
+ .h-xxl-1px {
+ height: 1px !important;
+ }
+ .h-xxl-2px {
+ height: 2px !important;
+ }
+ .h-xxl-3px {
+ height: 3px !important;
+ }
+ .h-xxl-4px {
+ height: 4px !important;
+ }
+ .h-xxl-5px {
+ height: 5px !important;
+ }
+ .h-xxl-6px {
+ height: 6px !important;
+ }
+ .h-xxl-7px {
+ height: 7px !important;
+ }
+ .h-xxl-8px {
+ height: 8px !important;
+ }
+ .h-xxl-9px {
+ height: 9px !important;
+ }
+ .h-xxl-10px {
+ height: 10px !important;
+ }
+ .h-xxl-15px {
+ height: 15px !important;
+ }
+ .h-xxl-20px {
+ height: 20px !important;
+ }
+ .h-xxl-25px {
+ height: 25px !important;
+ }
+ .h-xxl-30px {
+ height: 30px !important;
+ }
+ .h-xxl-35px {
+ height: 35px !important;
+ }
+ .h-xxl-40px {
+ height: 40px !important;
+ }
+ .h-xxl-45px {
+ height: 45px !important;
+ }
+ .h-xxl-50px {
+ height: 50px !important;
+ }
+ .h-xxl-55px {
+ height: 55px !important;
+ }
+ .h-xxl-60px {
+ height: 60px !important;
+ }
+ .h-xxl-65px {
+ height: 65px !important;
+ }
+ .h-xxl-70px {
+ height: 70px !important;
+ }
+ .h-xxl-75px {
+ height: 75px !important;
+ }
+ .h-xxl-80px {
+ height: 80px !important;
+ }
+ .h-xxl-85px {
+ height: 85px !important;
+ }
+ .h-xxl-90px {
+ height: 90px !important;
+ }
+ .h-xxl-95px {
+ height: 95px !important;
+ }
+ .h-xxl-100px {
+ height: 100px !important;
+ }
+ .h-xxl-125px {
+ height: 125px !important;
+ }
+ .h-xxl-150px {
+ height: 150px !important;
+ }
+ .h-xxl-175px {
+ height: 175px !important;
+ }
+ .h-xxl-200px {
+ height: 200px !important;
+ }
+ .h-xxl-225px {
+ height: 225px !important;
+ }
+ .h-xxl-250px {
+ height: 250px !important;
+ }
+ .h-xxl-275px {
+ height: 275px !important;
+ }
+ .h-xxl-300px {
+ height: 300px !important;
+ }
+ .h-xxl-325px {
+ height: 325px !important;
+ }
+ .h-xxl-350px {
+ height: 350px !important;
+ }
+ .h-xxl-375px {
+ height: 375px !important;
+ }
+ .h-xxl-400px {
+ height: 400px !important;
+ }
+ .h-xxl-425px {
+ height: 425px !important;
+ }
+ .h-xxl-450px {
+ height: 450px !important;
+ }
+ .h-xxl-475px {
+ height: 475px !important;
+ }
+ .h-xxl-500px {
+ height: 500px !important;
+ }
+ .h-xxl-550px {
+ height: 550px !important;
+ }
+ .h-xxl-600px {
+ height: 600px !important;
+ }
+ .h-xxl-650px {
+ height: 650px !important;
+ }
+ .h-xxl-700px {
+ height: 700px !important;
+ }
+ .h-xxl-750px {
+ height: 750px !important;
+ }
+ .h-xxl-800px {
+ height: 800px !important;
+ }
+ .h-xxl-850px {
+ height: 850px !important;
+ }
+ .h-xxl-900px {
+ height: 900px !important;
+ }
+ .h-xxl-950px {
+ height: 950px !important;
+ }
+ .h-xxl-1000px {
+ height: 1000px !important;
+ }
+ .mh-xxl-unset {
+ max-height: unset !important;
+ }
+ .mh-xxl-25 {
+ max-height: 25% !important;
+ }
+ .mh-xxl-50 {
+ max-height: 50% !important;
+ }
+ .mh-xxl-75 {
+ max-height: 75% !important;
+ }
+ .mh-xxl-100 {
+ max-height: 100% !important;
+ }
+ .mh-xxl-auto {
+ max-height: auto !important;
+ }
+ .mh-xxl-1px {
+ max-height: 1px !important;
+ }
+ .mh-xxl-2px {
+ max-height: 2px !important;
+ }
+ .mh-xxl-3px {
+ max-height: 3px !important;
+ }
+ .mh-xxl-4px {
+ max-height: 4px !important;
+ }
+ .mh-xxl-5px {
+ max-height: 5px !important;
+ }
+ .mh-xxl-6px {
+ max-height: 6px !important;
+ }
+ .mh-xxl-7px {
+ max-height: 7px !important;
+ }
+ .mh-xxl-8px {
+ max-height: 8px !important;
+ }
+ .mh-xxl-9px {
+ max-height: 9px !important;
+ }
+ .mh-xxl-10px {
+ max-height: 10px !important;
+ }
+ .mh-xxl-15px {
+ max-height: 15px !important;
+ }
+ .mh-xxl-20px {
+ max-height: 20px !important;
+ }
+ .mh-xxl-25px {
+ max-height: 25px !important;
+ }
+ .mh-xxl-30px {
+ max-height: 30px !important;
+ }
+ .mh-xxl-35px {
+ max-height: 35px !important;
+ }
+ .mh-xxl-40px {
+ max-height: 40px !important;
+ }
+ .mh-xxl-45px {
+ max-height: 45px !important;
+ }
+ .mh-xxl-50px {
+ max-height: 50px !important;
+ }
+ .mh-xxl-55px {
+ max-height: 55px !important;
+ }
+ .mh-xxl-60px {
+ max-height: 60px !important;
+ }
+ .mh-xxl-65px {
+ max-height: 65px !important;
+ }
+ .mh-xxl-70px {
+ max-height: 70px !important;
+ }
+ .mh-xxl-75px {
+ max-height: 75px !important;
+ }
+ .mh-xxl-80px {
+ max-height: 80px !important;
+ }
+ .mh-xxl-85px {
+ max-height: 85px !important;
+ }
+ .mh-xxl-90px {
+ max-height: 90px !important;
+ }
+ .mh-xxl-95px {
+ max-height: 95px !important;
+ }
+ .mh-xxl-100px {
+ max-height: 100px !important;
+ }
+ .mh-xxl-125px {
+ max-height: 125px !important;
+ }
+ .mh-xxl-150px {
+ max-height: 150px !important;
+ }
+ .mh-xxl-175px {
+ max-height: 175px !important;
+ }
+ .mh-xxl-200px {
+ max-height: 200px !important;
+ }
+ .mh-xxl-225px {
+ max-height: 225px !important;
+ }
+ .mh-xxl-250px {
+ max-height: 250px !important;
+ }
+ .mh-xxl-275px {
+ max-height: 275px !important;
+ }
+ .mh-xxl-300px {
+ max-height: 300px !important;
+ }
+ .mh-xxl-325px {
+ max-height: 325px !important;
+ }
+ .mh-xxl-350px {
+ max-height: 350px !important;
+ }
+ .mh-xxl-375px {
+ max-height: 375px !important;
+ }
+ .mh-xxl-400px {
+ max-height: 400px !important;
+ }
+ .mh-xxl-425px {
+ max-height: 425px !important;
+ }
+ .mh-xxl-450px {
+ max-height: 450px !important;
+ }
+ .mh-xxl-475px {
+ max-height: 475px !important;
+ }
+ .mh-xxl-500px {
+ max-height: 500px !important;
+ }
+ .mh-xxl-550px {
+ max-height: 550px !important;
+ }
+ .mh-xxl-600px {
+ max-height: 600px !important;
+ }
+ .mh-xxl-650px {
+ max-height: 650px !important;
+ }
+ .mh-xxl-700px {
+ max-height: 700px !important;
+ }
+ .mh-xxl-750px {
+ max-height: 750px !important;
+ }
+ .mh-xxl-800px {
+ max-height: 800px !important;
+ }
+ .mh-xxl-850px {
+ max-height: 850px !important;
+ }
+ .mh-xxl-900px {
+ max-height: 900px !important;
+ }
+ .mh-xxl-950px {
+ max-height: 950px !important;
+ }
+ .mh-xxl-1000px {
+ max-height: 1000px !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: 0.25rem !important;
+ }
+ .m-xxl-2 {
+ margin: 0.5rem !important;
+ }
+ .m-xxl-3 {
+ margin: 0.75rem !important;
+ }
+ .m-xxl-4 {
+ margin: 1rem !important;
+ }
+ .m-xxl-5 {
+ margin: 1.25rem !important;
+ }
+ .m-xxl-6 {
+ margin: 1.5rem !important;
+ }
+ .m-xxl-7 {
+ margin: 1.75rem !important;
+ }
+ .m-xxl-8 {
+ margin: 2rem !important;
+ }
+ .m-xxl-9 {
+ margin: 2.25rem !important;
+ }
+ .m-xxl-10 {
+ margin: 2.5rem !important;
+ }
+ .m-xxl-11 {
+ margin: 2.75rem !important;
+ }
+ .m-xxl-12 {
+ margin: 3rem !important;
+ }
+ .m-xxl-13 {
+ margin: 3.25rem !important;
+ }
+ .m-xxl-14 {
+ margin: 3.5rem !important;
+ }
+ .m-xxl-15 {
+ margin: 3.75rem !important;
+ }
+ .m-xxl-16 {
+ margin: 4rem !important;
+ }
+ .m-xxl-17 {
+ margin: 4.25rem !important;
+ }
+ .m-xxl-18 {
+ margin: 4.5rem !important;
+ }
+ .m-xxl-19 {
+ margin: 4.75rem !important;
+ }
+ .m-xxl-20 {
+ margin: 5rem !important;
+ }
+ .m-xxl-auto {
+ margin: auto !important;
+ }
+ .mx-xxl-0 {
+ margin-right: 0 !important;
+ margin-left: 0 !important;
+ }
+ .mx-xxl-1 {
+ margin-right: 0.25rem !important;
+ margin-left: 0.25rem !important;
+ }
+ .mx-xxl-2 {
+ margin-right: 0.5rem !important;
+ margin-left: 0.5rem !important;
+ }
+ .mx-xxl-3 {
+ margin-right: 0.75rem !important;
+ margin-left: 0.75rem !important;
+ }
+ .mx-xxl-4 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important;
+ }
+ .mx-xxl-5 {
+ margin-right: 1.25rem !important;
+ margin-left: 1.25rem !important;
+ }
+ .mx-xxl-6 {
+ margin-right: 1.5rem !important;
+ margin-left: 1.5rem !important;
+ }
+ .mx-xxl-7 {
+ margin-right: 1.75rem !important;
+ margin-left: 1.75rem !important;
+ }
+ .mx-xxl-8 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important;
+ }
+ .mx-xxl-9 {
+ margin-right: 2.25rem !important;
+ margin-left: 2.25rem !important;
+ }
+ .mx-xxl-10 {
+ margin-right: 2.5rem !important;
+ margin-left: 2.5rem !important;
+ }
+ .mx-xxl-11 {
+ margin-right: 2.75rem !important;
+ margin-left: 2.75rem !important;
+ }
+ .mx-xxl-12 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important;
+ }
+ .mx-xxl-13 {
+ margin-right: 3.25rem !important;
+ margin-left: 3.25rem !important;
+ }
+ .mx-xxl-14 {
+ margin-right: 3.5rem !important;
+ margin-left: 3.5rem !important;
+ }
+ .mx-xxl-15 {
+ margin-right: 3.75rem !important;
+ margin-left: 3.75rem !important;
+ }
+ .mx-xxl-16 {
+ margin-right: 4rem !important;
+ margin-left: 4rem !important;
+ }
+ .mx-xxl-17 {
+ margin-right: 4.25rem !important;
+ margin-left: 4.25rem !important;
+ }
+ .mx-xxl-18 {
+ margin-right: 4.5rem !important;
+ margin-left: 4.5rem !important;
+ }
+ .mx-xxl-19 {
+ margin-right: 4.75rem !important;
+ margin-left: 4.75rem !important;
+ }
+ .mx-xxl-20 {
+ margin-right: 5rem !important;
+ margin-left: 5rem !important;
+ }
+ .mx-xxl-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+ .my-xxl-0 {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+ .my-xxl-1 {
+ margin-top: 0.25rem !important;
+ margin-bottom: 0.25rem !important;
+ }
+ .my-xxl-2 {
+ margin-top: 0.5rem !important;
+ margin-bottom: 0.5rem !important;
+ }
+ .my-xxl-3 {
+ margin-top: 0.75rem !important;
+ margin-bottom: 0.75rem !important;
+ }
+ .my-xxl-4 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important;
+ }
+ .my-xxl-5 {
+ margin-top: 1.25rem !important;
+ margin-bottom: 1.25rem !important;
+ }
+ .my-xxl-6 {
+ margin-top: 1.5rem !important;
+ margin-bottom: 1.5rem !important;
+ }
+ .my-xxl-7 {
+ margin-top: 1.75rem !important;
+ margin-bottom: 1.75rem !important;
+ }
+ .my-xxl-8 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important;
+ }
+ .my-xxl-9 {
+ margin-top: 2.25rem !important;
+ margin-bottom: 2.25rem !important;
+ }
+ .my-xxl-10 {
+ margin-top: 2.5rem !important;
+ margin-bottom: 2.5rem !important;
+ }
+ .my-xxl-11 {
+ margin-top: 2.75rem !important;
+ margin-bottom: 2.75rem !important;
+ }
+ .my-xxl-12 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important;
+ }
+ .my-xxl-13 {
+ margin-top: 3.25rem !important;
+ margin-bottom: 3.25rem !important;
+ }
+ .my-xxl-14 {
+ margin-top: 3.5rem !important;
+ margin-bottom: 3.5rem !important;
+ }
+ .my-xxl-15 {
+ margin-top: 3.75rem !important;
+ margin-bottom: 3.75rem !important;
+ }
+ .my-xxl-16 {
+ margin-top: 4rem !important;
+ margin-bottom: 4rem !important;
+ }
+ .my-xxl-17 {
+ margin-top: 4.25rem !important;
+ margin-bottom: 4.25rem !important;
+ }
+ .my-xxl-18 {
+ margin-top: 4.5rem !important;
+ margin-bottom: 4.5rem !important;
+ }
+ .my-xxl-19 {
+ margin-top: 4.75rem !important;
+ margin-bottom: 4.75rem !important;
+ }
+ .my-xxl-20 {
+ margin-top: 5rem !important;
+ margin-bottom: 5rem !important;
+ }
+ .my-xxl-auto {
+ margin-top: auto !important;
+ margin-bottom: auto !important;
+ }
+ .mt-xxl-0 {
+ margin-top: 0 !important;
+ }
+ .mt-xxl-1 {
+ margin-top: 0.25rem !important;
+ }
+ .mt-xxl-2 {
+ margin-top: 0.5rem !important;
+ }
+ .mt-xxl-3 {
+ margin-top: 0.75rem !important;
+ }
+ .mt-xxl-4 {
+ margin-top: 1rem !important;
+ }
+ .mt-xxl-5 {
+ margin-top: 1.25rem !important;
+ }
+ .mt-xxl-6 {
+ margin-top: 1.5rem !important;
+ }
+ .mt-xxl-7 {
+ margin-top: 1.75rem !important;
+ }
+ .mt-xxl-8 {
+ margin-top: 2rem !important;
+ }
+ .mt-xxl-9 {
+ margin-top: 2.25rem !important;
+ }
+ .mt-xxl-10 {
+ margin-top: 2.5rem !important;
+ }
+ .mt-xxl-11 {
+ margin-top: 2.75rem !important;
+ }
+ .mt-xxl-12 {
+ margin-top: 3rem !important;
+ }
+ .mt-xxl-13 {
+ margin-top: 3.25rem !important;
+ }
+ .mt-xxl-14 {
+ margin-top: 3.5rem !important;
+ }
+ .mt-xxl-15 {
+ margin-top: 3.75rem !important;
+ }
+ .mt-xxl-16 {
+ margin-top: 4rem !important;
+ }
+ .mt-xxl-17 {
+ margin-top: 4.25rem !important;
+ }
+ .mt-xxl-18 {
+ margin-top: 4.5rem !important;
+ }
+ .mt-xxl-19 {
+ margin-top: 4.75rem !important;
+ }
+ .mt-xxl-20 {
+ margin-top: 5rem !important;
+ }
+ .mt-xxl-auto {
+ margin-top: auto !important;
+ }
+ .me-xxl-0 {
+ margin-right: 0 !important;
+ }
+ .me-xxl-1 {
+ margin-right: 0.25rem !important;
+ }
+ .me-xxl-2 {
+ margin-right: 0.5rem !important;
+ }
+ .me-xxl-3 {
+ margin-right: 0.75rem !important;
+ }
+ .me-xxl-4 {
+ margin-right: 1rem !important;
+ }
+ .me-xxl-5 {
+ margin-right: 1.25rem !important;
+ }
+ .me-xxl-6 {
+ margin-right: 1.5rem !important;
+ }
+ .me-xxl-7 {
+ margin-right: 1.75rem !important;
+ }
+ .me-xxl-8 {
+ margin-right: 2rem !important;
+ }
+ .me-xxl-9 {
+ margin-right: 2.25rem !important;
+ }
+ .me-xxl-10 {
+ margin-right: 2.5rem !important;
+ }
+ .me-xxl-11 {
+ margin-right: 2.75rem !important;
+ }
+ .me-xxl-12 {
+ margin-right: 3rem !important;
+ }
+ .me-xxl-13 {
+ margin-right: 3.25rem !important;
+ }
+ .me-xxl-14 {
+ margin-right: 3.5rem !important;
+ }
+ .me-xxl-15 {
+ margin-right: 3.75rem !important;
+ }
+ .me-xxl-16 {
+ margin-right: 4rem !important;
+ }
+ .me-xxl-17 {
+ margin-right: 4.25rem !important;
+ }
+ .me-xxl-18 {
+ margin-right: 4.5rem !important;
+ }
+ .me-xxl-19 {
+ margin-right: 4.75rem !important;
+ }
+ .me-xxl-20 {
+ margin-right: 5rem !important;
+ }
+ .me-xxl-auto {
+ margin-right: auto !important;
+ }
+ .mb-xxl-0 {
+ margin-bottom: 0 !important;
+ }
+ .mb-xxl-1 {
+ margin-bottom: 0.25rem !important;
+ }
+ .mb-xxl-2 {
+ margin-bottom: 0.5rem !important;
+ }
+ .mb-xxl-3 {
+ margin-bottom: 0.75rem !important;
+ }
+ .mb-xxl-4 {
+ margin-bottom: 1rem !important;
+ }
+ .mb-xxl-5 {
+ margin-bottom: 1.25rem !important;
+ }
+ .mb-xxl-6 {
+ margin-bottom: 1.5rem !important;
+ }
+ .mb-xxl-7 {
+ margin-bottom: 1.75rem !important;
+ }
+ .mb-xxl-8 {
+ margin-bottom: 2rem !important;
+ }
+ .mb-xxl-9 {
+ margin-bottom: 2.25rem !important;
+ }
+ .mb-xxl-10 {
+ margin-bottom: 2.5rem !important;
+ }
+ .mb-xxl-11 {
+ margin-bottom: 2.75rem !important;
+ }
+ .mb-xxl-12 {
+ margin-bottom: 3rem !important;
+ }
+ .mb-xxl-13 {
+ margin-bottom: 3.25rem !important;
+ }
+ .mb-xxl-14 {
+ margin-bottom: 3.5rem !important;
+ }
+ .mb-xxl-15 {
+ margin-bottom: 3.75rem !important;
+ }
+ .mb-xxl-16 {
+ margin-bottom: 4rem !important;
+ }
+ .mb-xxl-17 {
+ margin-bottom: 4.25rem !important;
+ }
+ .mb-xxl-18 {
+ margin-bottom: 4.5rem !important;
+ }
+ .mb-xxl-19 {
+ margin-bottom: 4.75rem !important;
+ }
+ .mb-xxl-20 {
+ margin-bottom: 5rem !important;
+ }
+ .mb-xxl-auto {
+ margin-bottom: auto !important;
+ }
+ .ms-xxl-0 {
+ margin-left: 0 !important;
+ }
+ .ms-xxl-1 {
+ margin-left: 0.25rem !important;
+ }
+ .ms-xxl-2 {
+ margin-left: 0.5rem !important;
+ }
+ .ms-xxl-3 {
+ margin-left: 0.75rem !important;
+ }
+ .ms-xxl-4 {
+ margin-left: 1rem !important;
+ }
+ .ms-xxl-5 {
+ margin-left: 1.25rem !important;
+ }
+ .ms-xxl-6 {
+ margin-left: 1.5rem !important;
+ }
+ .ms-xxl-7 {
+ margin-left: 1.75rem !important;
+ }
+ .ms-xxl-8 {
+ margin-left: 2rem !important;
+ }
+ .ms-xxl-9 {
+ margin-left: 2.25rem !important;
+ }
+ .ms-xxl-10 {
+ margin-left: 2.5rem !important;
+ }
+ .ms-xxl-11 {
+ margin-left: 2.75rem !important;
+ }
+ .ms-xxl-12 {
+ margin-left: 3rem !important;
+ }
+ .ms-xxl-13 {
+ margin-left: 3.25rem !important;
+ }
+ .ms-xxl-14 {
+ margin-left: 3.5rem !important;
+ }
+ .ms-xxl-15 {
+ margin-left: 3.75rem !important;
+ }
+ .ms-xxl-16 {
+ margin-left: 4rem !important;
+ }
+ .ms-xxl-17 {
+ margin-left: 4.25rem !important;
+ }
+ .ms-xxl-18 {
+ margin-left: 4.5rem !important;
+ }
+ .ms-xxl-19 {
+ margin-left: 4.75rem !important;
+ }
+ .ms-xxl-20 {
+ margin-left: 5rem !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: -0.75rem !important;
+ }
+ .m-xxl-n4 {
+ margin: -1rem !important;
+ }
+ .m-xxl-n5 {
+ margin: -1.25rem !important;
+ }
+ .m-xxl-n6 {
+ margin: -1.5rem !important;
+ }
+ .m-xxl-n7 {
+ margin: -1.75rem !important;
+ }
+ .m-xxl-n8 {
+ margin: -2rem !important;
+ }
+ .m-xxl-n9 {
+ margin: -2.25rem !important;
+ }
+ .m-xxl-n10 {
+ margin: -2.5rem !important;
+ }
+ .m-xxl-n11 {
+ margin: -2.75rem !important;
+ }
+ .m-xxl-n12 {
+ margin: -3rem !important;
+ }
+ .m-xxl-n13 {
+ margin: -3.25rem !important;
+ }
+ .m-xxl-n14 {
+ margin: -3.5rem !important;
+ }
+ .m-xxl-n15 {
+ margin: -3.75rem !important;
+ }
+ .m-xxl-n16 {
+ margin: -4rem !important;
+ }
+ .m-xxl-n17 {
+ margin: -4.25rem !important;
+ }
+ .m-xxl-n18 {
+ margin: -4.5rem !important;
+ }
+ .m-xxl-n19 {
+ margin: -4.75rem !important;
+ }
+ .m-xxl-n20 {
+ margin: -5rem !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: -0.75rem !important;
+ margin-left: -0.75rem !important;
+ }
+ .mx-xxl-n4 {
+ margin-right: -1rem !important;
+ margin-left: -1rem !important;
+ }
+ .mx-xxl-n5 {
+ margin-right: -1.25rem !important;
+ margin-left: -1.25rem !important;
+ }
+ .mx-xxl-n6 {
+ margin-right: -1.5rem !important;
+ margin-left: -1.5rem !important;
+ }
+ .mx-xxl-n7 {
+ margin-right: -1.75rem !important;
+ margin-left: -1.75rem !important;
+ }
+ .mx-xxl-n8 {
+ margin-right: -2rem !important;
+ margin-left: -2rem !important;
+ }
+ .mx-xxl-n9 {
+ margin-right: -2.25rem !important;
+ margin-left: -2.25rem !important;
+ }
+ .mx-xxl-n10 {
+ margin-right: -2.5rem !important;
+ margin-left: -2.5rem !important;
+ }
+ .mx-xxl-n11 {
+ margin-right: -2.75rem !important;
+ margin-left: -2.75rem !important;
+ }
+ .mx-xxl-n12 {
+ margin-right: -3rem !important;
+ margin-left: -3rem !important;
+ }
+ .mx-xxl-n13 {
+ margin-right: -3.25rem !important;
+ margin-left: -3.25rem !important;
+ }
+ .mx-xxl-n14 {
+ margin-right: -3.5rem !important;
+ margin-left: -3.5rem !important;
+ }
+ .mx-xxl-n15 {
+ margin-right: -3.75rem !important;
+ margin-left: -3.75rem !important;
+ }
+ .mx-xxl-n16 {
+ margin-right: -4rem !important;
+ margin-left: -4rem !important;
+ }
+ .mx-xxl-n17 {
+ margin-right: -4.25rem !important;
+ margin-left: -4.25rem !important;
+ }
+ .mx-xxl-n18 {
+ margin-right: -4.5rem !important;
+ margin-left: -4.5rem !important;
+ }
+ .mx-xxl-n19 {
+ margin-right: -4.75rem !important;
+ margin-left: -4.75rem !important;
+ }
+ .mx-xxl-n20 {
+ margin-right: -5rem !important;
+ margin-left: -5rem !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: -0.75rem !important;
+ margin-bottom: -0.75rem !important;
+ }
+ .my-xxl-n4 {
+ margin-top: -1rem !important;
+ margin-bottom: -1rem !important;
+ }
+ .my-xxl-n5 {
+ margin-top: -1.25rem !important;
+ margin-bottom: -1.25rem !important;
+ }
+ .my-xxl-n6 {
+ margin-top: -1.5rem !important;
+ margin-bottom: -1.5rem !important;
+ }
+ .my-xxl-n7 {
+ margin-top: -1.75rem !important;
+ margin-bottom: -1.75rem !important;
+ }
+ .my-xxl-n8 {
+ margin-top: -2rem !important;
+ margin-bottom: -2rem !important;
+ }
+ .my-xxl-n9 {
+ margin-top: -2.25rem !important;
+ margin-bottom: -2.25rem !important;
+ }
+ .my-xxl-n10 {
+ margin-top: -2.5rem !important;
+ margin-bottom: -2.5rem !important;
+ }
+ .my-xxl-n11 {
+ margin-top: -2.75rem !important;
+ margin-bottom: -2.75rem !important;
+ }
+ .my-xxl-n12 {
+ margin-top: -3rem !important;
+ margin-bottom: -3rem !important;
+ }
+ .my-xxl-n13 {
+ margin-top: -3.25rem !important;
+ margin-bottom: -3.25rem !important;
+ }
+ .my-xxl-n14 {
+ margin-top: -3.5rem !important;
+ margin-bottom: -3.5rem !important;
+ }
+ .my-xxl-n15 {
+ margin-top: -3.75rem !important;
+ margin-bottom: -3.75rem !important;
+ }
+ .my-xxl-n16 {
+ margin-top: -4rem !important;
+ margin-bottom: -4rem !important;
+ }
+ .my-xxl-n17 {
+ margin-top: -4.25rem !important;
+ margin-bottom: -4.25rem !important;
+ }
+ .my-xxl-n18 {
+ margin-top: -4.5rem !important;
+ margin-bottom: -4.5rem !important;
+ }
+ .my-xxl-n19 {
+ margin-top: -4.75rem !important;
+ margin-bottom: -4.75rem !important;
+ }
+ .my-xxl-n20 {
+ margin-top: -5rem !important;
+ margin-bottom: -5rem !important;
+ }
+ .mt-xxl-n1 {
+ margin-top: -0.25rem !important;
+ }
+ .mt-xxl-n2 {
+ margin-top: -0.5rem !important;
+ }
+ .mt-xxl-n3 {
+ margin-top: -0.75rem !important;
+ }
+ .mt-xxl-n4 {
+ margin-top: -1rem !important;
+ }
+ .mt-xxl-n5 {
+ margin-top: -1.25rem !important;
+ }
+ .mt-xxl-n6 {
+ margin-top: -1.5rem !important;
+ }
+ .mt-xxl-n7 {
+ margin-top: -1.75rem !important;
+ }
+ .mt-xxl-n8 {
+ margin-top: -2rem !important;
+ }
+ .mt-xxl-n9 {
+ margin-top: -2.25rem !important;
+ }
+ .mt-xxl-n10 {
+ margin-top: -2.5rem !important;
+ }
+ .mt-xxl-n11 {
+ margin-top: -2.75rem !important;
+ }
+ .mt-xxl-n12 {
+ margin-top: -3rem !important;
+ }
+ .mt-xxl-n13 {
+ margin-top: -3.25rem !important;
+ }
+ .mt-xxl-n14 {
+ margin-top: -3.5rem !important;
+ }
+ .mt-xxl-n15 {
+ margin-top: -3.75rem !important;
+ }
+ .mt-xxl-n16 {
+ margin-top: -4rem !important;
+ }
+ .mt-xxl-n17 {
+ margin-top: -4.25rem !important;
+ }
+ .mt-xxl-n18 {
+ margin-top: -4.5rem !important;
+ }
+ .mt-xxl-n19 {
+ margin-top: -4.75rem !important;
+ }
+ .mt-xxl-n20 {
+ margin-top: -5rem !important;
+ }
+ .me-xxl-n1 {
+ margin-right: -0.25rem !important;
+ }
+ .me-xxl-n2 {
+ margin-right: -0.5rem !important;
+ }
+ .me-xxl-n3 {
+ margin-right: -0.75rem !important;
+ }
+ .me-xxl-n4 {
+ margin-right: -1rem !important;
+ }
+ .me-xxl-n5 {
+ margin-right: -1.25rem !important;
+ }
+ .me-xxl-n6 {
+ margin-right: -1.5rem !important;
+ }
+ .me-xxl-n7 {
+ margin-right: -1.75rem !important;
+ }
+ .me-xxl-n8 {
+ margin-right: -2rem !important;
+ }
+ .me-xxl-n9 {
+ margin-right: -2.25rem !important;
+ }
+ .me-xxl-n10 {
+ margin-right: -2.5rem !important;
+ }
+ .me-xxl-n11 {
+ margin-right: -2.75rem !important;
+ }
+ .me-xxl-n12 {
+ margin-right: -3rem !important;
+ }
+ .me-xxl-n13 {
+ margin-right: -3.25rem !important;
+ }
+ .me-xxl-n14 {
+ margin-right: -3.5rem !important;
+ }
+ .me-xxl-n15 {
+ margin-right: -3.75rem !important;
+ }
+ .me-xxl-n16 {
+ margin-right: -4rem !important;
+ }
+ .me-xxl-n17 {
+ margin-right: -4.25rem !important;
+ }
+ .me-xxl-n18 {
+ margin-right: -4.5rem !important;
+ }
+ .me-xxl-n19 {
+ margin-right: -4.75rem !important;
+ }
+ .me-xxl-n20 {
+ margin-right: -5rem !important;
+ }
+ .mb-xxl-n1 {
+ margin-bottom: -0.25rem !important;
+ }
+ .mb-xxl-n2 {
+ margin-bottom: -0.5rem !important;
+ }
+ .mb-xxl-n3 {
+ margin-bottom: -0.75rem !important;
+ }
+ .mb-xxl-n4 {
+ margin-bottom: -1rem !important;
+ }
+ .mb-xxl-n5 {
+ margin-bottom: -1.25rem !important;
+ }
+ .mb-xxl-n6 {
+ margin-bottom: -1.5rem !important;
+ }
+ .mb-xxl-n7 {
+ margin-bottom: -1.75rem !important;
+ }
+ .mb-xxl-n8 {
+ margin-bottom: -2rem !important;
+ }
+ .mb-xxl-n9 {
+ margin-bottom: -2.25rem !important;
+ }
+ .mb-xxl-n10 {
+ margin-bottom: -2.5rem !important;
+ }
+ .mb-xxl-n11 {
+ margin-bottom: -2.75rem !important;
+ }
+ .mb-xxl-n12 {
+ margin-bottom: -3rem !important;
+ }
+ .mb-xxl-n13 {
+ margin-bottom: -3.25rem !important;
+ }
+ .mb-xxl-n14 {
+ margin-bottom: -3.5rem !important;
+ }
+ .mb-xxl-n15 {
+ margin-bottom: -3.75rem !important;
+ }
+ .mb-xxl-n16 {
+ margin-bottom: -4rem !important;
+ }
+ .mb-xxl-n17 {
+ margin-bottom: -4.25rem !important;
+ }
+ .mb-xxl-n18 {
+ margin-bottom: -4.5rem !important;
+ }
+ .mb-xxl-n19 {
+ margin-bottom: -4.75rem !important;
+ }
+ .mb-xxl-n20 {
+ margin-bottom: -5rem !important;
+ }
+ .ms-xxl-n1 {
+ margin-left: -0.25rem !important;
+ }
+ .ms-xxl-n2 {
+ margin-left: -0.5rem !important;
+ }
+ .ms-xxl-n3 {
+ margin-left: -0.75rem !important;
+ }
+ .ms-xxl-n4 {
+ margin-left: -1rem !important;
+ }
+ .ms-xxl-n5 {
+ margin-left: -1.25rem !important;
+ }
+ .ms-xxl-n6 {
+ margin-left: -1.5rem !important;
+ }
+ .ms-xxl-n7 {
+ margin-left: -1.75rem !important;
+ }
+ .ms-xxl-n8 {
+ margin-left: -2rem !important;
+ }
+ .ms-xxl-n9 {
+ margin-left: -2.25rem !important;
+ }
+ .ms-xxl-n10 {
+ margin-left: -2.5rem !important;
+ }
+ .ms-xxl-n11 {
+ margin-left: -2.75rem !important;
+ }
+ .ms-xxl-n12 {
+ margin-left: -3rem !important;
+ }
+ .ms-xxl-n13 {
+ margin-left: -3.25rem !important;
+ }
+ .ms-xxl-n14 {
+ margin-left: -3.5rem !important;
+ }
+ .ms-xxl-n15 {
+ margin-left: -3.75rem !important;
+ }
+ .ms-xxl-n16 {
+ margin-left: -4rem !important;
+ }
+ .ms-xxl-n17 {
+ margin-left: -4.25rem !important;
+ }
+ .ms-xxl-n18 {
+ margin-left: -4.5rem !important;
+ }
+ .ms-xxl-n19 {
+ margin-left: -4.75rem !important;
+ }
+ .ms-xxl-n20 {
+ margin-left: -5rem !important;
+ }
+ .p-xxl-0 {
+ padding: 0 !important;
+ }
+ .p-xxl-1 {
+ padding: 0.25rem !important;
+ }
+ .p-xxl-2 {
+ padding: 0.5rem !important;
+ }
+ .p-xxl-3 {
+ padding: 0.75rem !important;
+ }
+ .p-xxl-4 {
+ padding: 1rem !important;
+ }
+ .p-xxl-5 {
+ padding: 1.25rem !important;
+ }
+ .p-xxl-6 {
+ padding: 1.5rem !important;
+ }
+ .p-xxl-7 {
+ padding: 1.75rem !important;
+ }
+ .p-xxl-8 {
+ padding: 2rem !important;
+ }
+ .p-xxl-9 {
+ padding: 2.25rem !important;
+ }
+ .p-xxl-10 {
+ padding: 2.5rem !important;
+ }
+ .p-xxl-11 {
+ padding: 2.75rem !important;
+ }
+ .p-xxl-12 {
+ padding: 3rem !important;
+ }
+ .p-xxl-13 {
+ padding: 3.25rem !important;
+ }
+ .p-xxl-14 {
+ padding: 3.5rem !important;
+ }
+ .p-xxl-15 {
+ padding: 3.75rem !important;
+ }
+ .p-xxl-16 {
+ padding: 4rem !important;
+ }
+ .p-xxl-17 {
+ padding: 4.25rem !important;
+ }
+ .p-xxl-18 {
+ padding: 4.5rem !important;
+ }
+ .p-xxl-19 {
+ padding: 4.75rem !important;
+ }
+ .p-xxl-20 {
+ padding: 5rem !important;
+ }
+ .px-xxl-0 {
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ }
+ .px-xxl-1 {
+ padding-right: 0.25rem !important;
+ padding-left: 0.25rem !important;
+ }
+ .px-xxl-2 {
+ padding-right: 0.5rem !important;
+ padding-left: 0.5rem !important;
+ }
+ .px-xxl-3 {
+ padding-right: 0.75rem !important;
+ padding-left: 0.75rem !important;
+ }
+ .px-xxl-4 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important;
+ }
+ .px-xxl-5 {
+ padding-right: 1.25rem !important;
+ padding-left: 1.25rem !important;
+ }
+ .px-xxl-6 {
+ padding-right: 1.5rem !important;
+ padding-left: 1.5rem !important;
+ }
+ .px-xxl-7 {
+ padding-right: 1.75rem !important;
+ padding-left: 1.75rem !important;
+ }
+ .px-xxl-8 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important;
+ }
+ .px-xxl-9 {
+ padding-right: 2.25rem !important;
+ padding-left: 2.25rem !important;
+ }
+ .px-xxl-10 {
+ padding-right: 2.5rem !important;
+ padding-left: 2.5rem !important;
+ }
+ .px-xxl-11 {
+ padding-right: 2.75rem !important;
+ padding-left: 2.75rem !important;
+ }
+ .px-xxl-12 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important;
+ }
+ .px-xxl-13 {
+ padding-right: 3.25rem !important;
+ padding-left: 3.25rem !important;
+ }
+ .px-xxl-14 {
+ padding-right: 3.5rem !important;
+ padding-left: 3.5rem !important;
+ }
+ .px-xxl-15 {
+ padding-right: 3.75rem !important;
+ padding-left: 3.75rem !important;
+ }
+ .px-xxl-16 {
+ padding-right: 4rem !important;
+ padding-left: 4rem !important;
+ }
+ .px-xxl-17 {
+ padding-right: 4.25rem !important;
+ padding-left: 4.25rem !important;
+ }
+ .px-xxl-18 {
+ padding-right: 4.5rem !important;
+ padding-left: 4.5rem !important;
+ }
+ .px-xxl-19 {
+ padding-right: 4.75rem !important;
+ padding-left: 4.75rem !important;
+ }
+ .px-xxl-20 {
+ padding-right: 5rem !important;
+ padding-left: 5rem !important;
+ }
+ .py-xxl-0 {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ }
+ .py-xxl-1 {
+ padding-top: 0.25rem !important;
+ padding-bottom: 0.25rem !important;
+ }
+ .py-xxl-2 {
+ padding-top: 0.5rem !important;
+ padding-bottom: 0.5rem !important;
+ }
+ .py-xxl-3 {
+ padding-top: 0.75rem !important;
+ padding-bottom: 0.75rem !important;
+ }
+ .py-xxl-4 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important;
+ }
+ .py-xxl-5 {
+ padding-top: 1.25rem !important;
+ padding-bottom: 1.25rem !important;
+ }
+ .py-xxl-6 {
+ padding-top: 1.5rem !important;
+ padding-bottom: 1.5rem !important;
+ }
+ .py-xxl-7 {
+ padding-top: 1.75rem !important;
+ padding-bottom: 1.75rem !important;
+ }
+ .py-xxl-8 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+ }
+ .py-xxl-9 {
+ padding-top: 2.25rem !important;
+ padding-bottom: 2.25rem !important;
+ }
+ .py-xxl-10 {
+ padding-top: 2.5rem !important;
+ padding-bottom: 2.5rem !important;
+ }
+ .py-xxl-11 {
+ padding-top: 2.75rem !important;
+ padding-bottom: 2.75rem !important;
+ }
+ .py-xxl-12 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important;
+ }
+ .py-xxl-13 {
+ padding-top: 3.25rem !important;
+ padding-bottom: 3.25rem !important;
+ }
+ .py-xxl-14 {
+ padding-top: 3.5rem !important;
+ padding-bottom: 3.5rem !important;
+ }
+ .py-xxl-15 {
+ padding-top: 3.75rem !important;
+ padding-bottom: 3.75rem !important;
+ }
+ .py-xxl-16 {
+ padding-top: 4rem !important;
+ padding-bottom: 4rem !important;
+ }
+ .py-xxl-17 {
+ padding-top: 4.25rem !important;
+ padding-bottom: 4.25rem !important;
+ }
+ .py-xxl-18 {
+ padding-top: 4.5rem !important;
+ padding-bottom: 4.5rem !important;
+ }
+ .py-xxl-19 {
+ padding-top: 4.75rem !important;
+ padding-bottom: 4.75rem !important;
+ }
+ .py-xxl-20 {
+ padding-top: 5rem !important;
+ padding-bottom: 5rem !important;
+ }
+ .pt-xxl-0 {
+ padding-top: 0 !important;
+ }
+ .pt-xxl-1 {
+ padding-top: 0.25rem !important;
+ }
+ .pt-xxl-2 {
+ padding-top: 0.5rem !important;
+ }
+ .pt-xxl-3 {
+ padding-top: 0.75rem !important;
+ }
+ .pt-xxl-4 {
+ padding-top: 1rem !important;
+ }
+ .pt-xxl-5 {
+ padding-top: 1.25rem !important;
+ }
+ .pt-xxl-6 {
+ padding-top: 1.5rem !important;
+ }
+ .pt-xxl-7 {
+ padding-top: 1.75rem !important;
+ }
+ .pt-xxl-8 {
+ padding-top: 2rem !important;
+ }
+ .pt-xxl-9 {
+ padding-top: 2.25rem !important;
+ }
+ .pt-xxl-10 {
+ padding-top: 2.5rem !important;
+ }
+ .pt-xxl-11 {
+ padding-top: 2.75rem !important;
+ }
+ .pt-xxl-12 {
+ padding-top: 3rem !important;
+ }
+ .pt-xxl-13 {
+ padding-top: 3.25rem !important;
+ }
+ .pt-xxl-14 {
+ padding-top: 3.5rem !important;
+ }
+ .pt-xxl-15 {
+ padding-top: 3.75rem !important;
+ }
+ .pt-xxl-16 {
+ padding-top: 4rem !important;
+ }
+ .pt-xxl-17 {
+ padding-top: 4.25rem !important;
+ }
+ .pt-xxl-18 {
+ padding-top: 4.5rem !important;
+ }
+ .pt-xxl-19 {
+ padding-top: 4.75rem !important;
+ }
+ .pt-xxl-20 {
+ padding-top: 5rem !important;
+ }
+ .pe-xxl-0 {
+ padding-right: 0 !important;
+ }
+ .pe-xxl-1 {
+ padding-right: 0.25rem !important;
+ }
+ .pe-xxl-2 {
+ padding-right: 0.5rem !important;
+ }
+ .pe-xxl-3 {
+ padding-right: 0.75rem !important;
+ }
+ .pe-xxl-4 {
+ padding-right: 1rem !important;
+ }
+ .pe-xxl-5 {
+ padding-right: 1.25rem !important;
+ }
+ .pe-xxl-6 {
+ padding-right: 1.5rem !important;
+ }
+ .pe-xxl-7 {
+ padding-right: 1.75rem !important;
+ }
+ .pe-xxl-8 {
+ padding-right: 2rem !important;
+ }
+ .pe-xxl-9 {
+ padding-right: 2.25rem !important;
+ }
+ .pe-xxl-10 {
+ padding-right: 2.5rem !important;
+ }
+ .pe-xxl-11 {
+ padding-right: 2.75rem !important;
+ }
+ .pe-xxl-12 {
+ padding-right: 3rem !important;
+ }
+ .pe-xxl-13 {
+ padding-right: 3.25rem !important;
+ }
+ .pe-xxl-14 {
+ padding-right: 3.5rem !important;
+ }
+ .pe-xxl-15 {
+ padding-right: 3.75rem !important;
+ }
+ .pe-xxl-16 {
+ padding-right: 4rem !important;
+ }
+ .pe-xxl-17 {
+ padding-right: 4.25rem !important;
+ }
+ .pe-xxl-18 {
+ padding-right: 4.5rem !important;
+ }
+ .pe-xxl-19 {
+ padding-right: 4.75rem !important;
+ }
+ .pe-xxl-20 {
+ padding-right: 5rem !important;
+ }
+ .pb-xxl-0 {
+ padding-bottom: 0 !important;
+ }
+ .pb-xxl-1 {
+ padding-bottom: 0.25rem !important;
+ }
+ .pb-xxl-2 {
+ padding-bottom: 0.5rem !important;
+ }
+ .pb-xxl-3 {
+ padding-bottom: 0.75rem !important;
+ }
+ .pb-xxl-4 {
+ padding-bottom: 1rem !important;
+ }
+ .pb-xxl-5 {
+ padding-bottom: 1.25rem !important;
+ }
+ .pb-xxl-6 {
+ padding-bottom: 1.5rem !important;
+ }
+ .pb-xxl-7 {
+ padding-bottom: 1.75rem !important;
+ }
+ .pb-xxl-8 {
+ padding-bottom: 2rem !important;
+ }
+ .pb-xxl-9 {
+ padding-bottom: 2.25rem !important;
+ }
+ .pb-xxl-10 {
+ padding-bottom: 2.5rem !important;
+ }
+ .pb-xxl-11 {
+ padding-bottom: 2.75rem !important;
+ }
+ .pb-xxl-12 {
+ padding-bottom: 3rem !important;
+ }
+ .pb-xxl-13 {
+ padding-bottom: 3.25rem !important;
+ }
+ .pb-xxl-14 {
+ padding-bottom: 3.5rem !important;
+ }
+ .pb-xxl-15 {
+ padding-bottom: 3.75rem !important;
+ }
+ .pb-xxl-16 {
+ padding-bottom: 4rem !important;
+ }
+ .pb-xxl-17 {
+ padding-bottom: 4.25rem !important;
+ }
+ .pb-xxl-18 {
+ padding-bottom: 4.5rem !important;
+ }
+ .pb-xxl-19 {
+ padding-bottom: 4.75rem !important;
+ }
+ .pb-xxl-20 {
+ padding-bottom: 5rem !important;
+ }
+ .ps-xxl-0 {
+ padding-left: 0 !important;
+ }
+ .ps-xxl-1 {
+ padding-left: 0.25rem !important;
+ }
+ .ps-xxl-2 {
+ padding-left: 0.5rem !important;
+ }
+ .ps-xxl-3 {
+ padding-left: 0.75rem !important;
+ }
+ .ps-xxl-4 {
+ padding-left: 1rem !important;
+ }
+ .ps-xxl-5 {
+ padding-left: 1.25rem !important;
+ }
+ .ps-xxl-6 {
+ padding-left: 1.5rem !important;
+ }
+ .ps-xxl-7 {
+ padding-left: 1.75rem !important;
+ }
+ .ps-xxl-8 {
+ padding-left: 2rem !important;
+ }
+ .ps-xxl-9 {
+ padding-left: 2.25rem !important;
+ }
+ .ps-xxl-10 {
+ padding-left: 2.5rem !important;
+ }
+ .ps-xxl-11 {
+ padding-left: 2.75rem !important;
+ }
+ .ps-xxl-12 {
+ padding-left: 3rem !important;
+ }
+ .ps-xxl-13 {
+ padding-left: 3.25rem !important;
+ }
+ .ps-xxl-14 {
+ padding-left: 3.5rem !important;
+ }
+ .ps-xxl-15 {
+ padding-left: 3.75rem !important;
+ }
+ .ps-xxl-16 {
+ padding-left: 4rem !important;
+ }
+ .ps-xxl-17 {
+ padding-left: 4.25rem !important;
+ }
+ .ps-xxl-18 {
+ padding-left: 4.5rem !important;
+ }
+ .ps-xxl-19 {
+ padding-left: 4.75rem !important;
+ }
+ .ps-xxl-20 {
+ padding-left: 5rem !important;
+ }
+ .gap-xxl-0 {
+ gap: 0 !important;
+ }
+ .gap-xxl-1 {
+ gap: 0.25rem !important;
+ }
+ .gap-xxl-2 {
+ gap: 0.5rem !important;
+ }
+ .gap-xxl-3 {
+ gap: 0.75rem !important;
+ }
+ .gap-xxl-4 {
+ gap: 1rem !important;
+ }
+ .gap-xxl-5 {
+ gap: 1.25rem !important;
+ }
+ .gap-xxl-6 {
+ gap: 1.5rem !important;
+ }
+ .gap-xxl-7 {
+ gap: 1.75rem !important;
+ }
+ .gap-xxl-8 {
+ gap: 2rem !important;
+ }
+ .gap-xxl-9 {
+ gap: 2.25rem !important;
+ }
+ .gap-xxl-10 {
+ gap: 2.5rem !important;
+ }
+ .gap-xxl-11 {
+ gap: 2.75rem !important;
+ }
+ .gap-xxl-12 {
+ gap: 3rem !important;
+ }
+ .gap-xxl-13 {
+ gap: 3.25rem !important;
+ }
+ .gap-xxl-14 {
+ gap: 3.5rem !important;
+ }
+ .gap-xxl-15 {
+ gap: 3.75rem !important;
+ }
+ .gap-xxl-16 {
+ gap: 4rem !important;
+ }
+ .gap-xxl-17 {
+ gap: 4.25rem !important;
+ }
+ .gap-xxl-18 {
+ gap: 4.5rem !important;
+ }
+ .gap-xxl-19 {
+ gap: 4.75rem !important;
+ }
+ .gap-xxl-20 {
+ gap: 5rem !important;
+ }
+ .row-gap-xxl-0 {
+ row-gap: 0 !important;
+ }
+ .row-gap-xxl-1 {
+ row-gap: 0.25rem !important;
+ }
+ .row-gap-xxl-2 {
+ row-gap: 0.5rem !important;
+ }
+ .row-gap-xxl-3 {
+ row-gap: 0.75rem !important;
+ }
+ .row-gap-xxl-4 {
+ row-gap: 1rem !important;
+ }
+ .row-gap-xxl-5 {
+ row-gap: 1.25rem !important;
+ }
+ .row-gap-xxl-6 {
+ row-gap: 1.5rem !important;
+ }
+ .row-gap-xxl-7 {
+ row-gap: 1.75rem !important;
+ }
+ .row-gap-xxl-8 {
+ row-gap: 2rem !important;
+ }
+ .row-gap-xxl-9 {
+ row-gap: 2.25rem !important;
+ }
+ .row-gap-xxl-10 {
+ row-gap: 2.5rem !important;
+ }
+ .row-gap-xxl-11 {
+ row-gap: 2.75rem !important;
+ }
+ .row-gap-xxl-12 {
+ row-gap: 3rem !important;
+ }
+ .row-gap-xxl-13 {
+ row-gap: 3.25rem !important;
+ }
+ .row-gap-xxl-14 {
+ row-gap: 3.5rem !important;
+ }
+ .row-gap-xxl-15 {
+ row-gap: 3.75rem !important;
+ }
+ .row-gap-xxl-16 {
+ row-gap: 4rem !important;
+ }
+ .row-gap-xxl-17 {
+ row-gap: 4.25rem !important;
+ }
+ .row-gap-xxl-18 {
+ row-gap: 4.5rem !important;
+ }
+ .row-gap-xxl-19 {
+ row-gap: 4.75rem !important;
+ }
+ .row-gap-xxl-20 {
+ row-gap: 5rem !important;
+ }
+ .column-gap-xxl-0 {
+ column-gap: 0 !important;
+ }
+ .column-gap-xxl-1 {
+ column-gap: 0.25rem !important;
+ }
+ .column-gap-xxl-2 {
+ column-gap: 0.5rem !important;
+ }
+ .column-gap-xxl-3 {
+ column-gap: 0.75rem !important;
+ }
+ .column-gap-xxl-4 {
+ column-gap: 1rem !important;
+ }
+ .column-gap-xxl-5 {
+ column-gap: 1.25rem !important;
+ }
+ .column-gap-xxl-6 {
+ column-gap: 1.5rem !important;
+ }
+ .column-gap-xxl-7 {
+ column-gap: 1.75rem !important;
+ }
+ .column-gap-xxl-8 {
+ column-gap: 2rem !important;
+ }
+ .column-gap-xxl-9 {
+ column-gap: 2.25rem !important;
+ }
+ .column-gap-xxl-10 {
+ column-gap: 2.5rem !important;
+ }
+ .column-gap-xxl-11 {
+ column-gap: 2.75rem !important;
+ }
+ .column-gap-xxl-12 {
+ column-gap: 3rem !important;
+ }
+ .column-gap-xxl-13 {
+ column-gap: 3.25rem !important;
+ }
+ .column-gap-xxl-14 {
+ column-gap: 3.5rem !important;
+ }
+ .column-gap-xxl-15 {
+ column-gap: 3.75rem !important;
+ }
+ .column-gap-xxl-16 {
+ column-gap: 4rem !important;
+ }
+ .column-gap-xxl-17 {
+ column-gap: 4.25rem !important;
+ }
+ .column-gap-xxl-18 {
+ column-gap: 4.5rem !important;
+ }
+ .column-gap-xxl-19 {
+ column-gap: 4.75rem !important;
+ }
+ .column-gap-xxl-20 {
+ column-gap: 5rem !important;
+ }
+ .fs-xxl-1 {
+ font-size: calc(1.3rem + 0.6vw) !important;
+ }
+ .fs-xxl-2 {
+ font-size: calc(1.275rem + 0.3vw) !important;
+ }
+ .fs-xxl-3 {
+ font-size: calc(1.26rem + 0.12vw) !important;
+ }
+ .fs-xxl-4 {
+ font-size: 1.25rem !important;
+ }
+ .fs-xxl-5 {
+ font-size: 1.15rem !important;
+ }
+ .fs-xxl-6 {
+ font-size: 1.075rem !important;
+ }
+ .fs-xxl-7 {
+ font-size: 0.95rem !important;
+ }
+ .fs-xxl-8 {
+ font-size: 0.85rem !important;
+ }
+ .fs-xxl-9 {
+ font-size: 0.75rem !important;
+ }
+ .fs-xxl-10 {
+ font-size: 0.5rem !important;
+ }
+ .fs-xxl-base {
+ font-size: 1rem !important;
+ }
+ .fs-xxl-fluid {
+ font-size: 100% !important;
+ }
+ .fs-xxl-2x {
+ font-size: calc(1.325rem + 0.9vw) !important;
+ }
+ .fs-xxl-2qx {
+ font-size: calc(1.35rem + 1.2vw) !important;
+ }
+ .fs-xxl-2hx {
+ font-size: calc(1.375rem + 1.5vw) !important;
+ }
+ .fs-xxl-2tx {
+ font-size: calc(1.4rem + 1.8vw) !important;
+ }
+ .fs-xxl-3x {
+ font-size: calc(1.425rem + 2.1vw) !important;
+ }
+ .fs-xxl-3qx {
+ font-size: calc(1.45rem + 2.4vw) !important;
+ }
+ .fs-xxl-3hx {
+ font-size: calc(1.475rem + 2.7vw) !important;
+ }
+ .fs-xxl-3tx {
+ font-size: calc(1.5rem + 3vw) !important;
+ }
+ .fs-xxl-4x {
+ font-size: calc(1.525rem + 3.3vw) !important;
+ }
+ .fs-xxl-4qx {
+ font-size: calc(1.55rem + 3.6vw) !important;
+ }
+ .fs-xxl-4hx {
+ font-size: calc(1.575rem + 3.9vw) !important;
+ }
+ .fs-xxl-4tx {
+ font-size: calc(1.6rem + 4.2vw) !important;
+ }
+ .fs-xxl-5x {
+ font-size: calc(1.625rem + 4.5vw) !important;
+ }
+ .fs-xxl-5qx {
+ font-size: calc(1.65rem + 4.8vw) !important;
+ }
+ .fs-xxl-5hx {
+ font-size: calc(1.675rem + 5.1vw) !important;
+ }
+ .fs-xxl-5tx {
+ font-size: calc(1.7rem + 5.4vw) !important;
+ }
+ .text-xxl-start {
+ text-align: left !important;
+ }
+ .text-xxl-end {
+ text-align: right !important;
+ }
+ .text-xxl-center {
+ text-align: center !important;
+ }
+ .min-w-xxl-unset {
+ min-width: unset !important;
+ }
+ .min-w-xxl-25 {
+ min-width: 25% !important;
+ }
+ .min-w-xxl-50 {
+ min-width: 50% !important;
+ }
+ .min-w-xxl-75 {
+ min-width: 75% !important;
+ }
+ .min-w-xxl-100 {
+ min-width: 100% !important;
+ }
+ .min-w-xxl-auto {
+ min-width: auto !important;
+ }
+ .min-w-xxl-1px {
+ min-width: 1px !important;
+ }
+ .min-w-xxl-2px {
+ min-width: 2px !important;
+ }
+ .min-w-xxl-3px {
+ min-width: 3px !important;
+ }
+ .min-w-xxl-4px {
+ min-width: 4px !important;
+ }
+ .min-w-xxl-5px {
+ min-width: 5px !important;
+ }
+ .min-w-xxl-6px {
+ min-width: 6px !important;
+ }
+ .min-w-xxl-7px {
+ min-width: 7px !important;
+ }
+ .min-w-xxl-8px {
+ min-width: 8px !important;
+ }
+ .min-w-xxl-9px {
+ min-width: 9px !important;
+ }
+ .min-w-xxl-10px {
+ min-width: 10px !important;
+ }
+ .min-w-xxl-15px {
+ min-width: 15px !important;
+ }
+ .min-w-xxl-20px {
+ min-width: 20px !important;
+ }
+ .min-w-xxl-25px {
+ min-width: 25px !important;
+ }
+ .min-w-xxl-30px {
+ min-width: 30px !important;
+ }
+ .min-w-xxl-35px {
+ min-width: 35px !important;
+ }
+ .min-w-xxl-40px {
+ min-width: 40px !important;
+ }
+ .min-w-xxl-45px {
+ min-width: 45px !important;
+ }
+ .min-w-xxl-50px {
+ min-width: 50px !important;
+ }
+ .min-w-xxl-55px {
+ min-width: 55px !important;
+ }
+ .min-w-xxl-60px {
+ min-width: 60px !important;
+ }
+ .min-w-xxl-65px {
+ min-width: 65px !important;
+ }
+ .min-w-xxl-70px {
+ min-width: 70px !important;
+ }
+ .min-w-xxl-75px {
+ min-width: 75px !important;
+ }
+ .min-w-xxl-80px {
+ min-width: 80px !important;
+ }
+ .min-w-xxl-85px {
+ min-width: 85px !important;
+ }
+ .min-w-xxl-90px {
+ min-width: 90px !important;
+ }
+ .min-w-xxl-95px {
+ min-width: 95px !important;
+ }
+ .min-w-xxl-100px {
+ min-width: 100px !important;
+ }
+ .min-w-xxl-125px {
+ min-width: 125px !important;
+ }
+ .min-w-xxl-150px {
+ min-width: 150px !important;
+ }
+ .min-w-xxl-175px {
+ min-width: 175px !important;
+ }
+ .min-w-xxl-200px {
+ min-width: 200px !important;
+ }
+ .min-w-xxl-225px {
+ min-width: 225px !important;
+ }
+ .min-w-xxl-250px {
+ min-width: 250px !important;
+ }
+ .min-w-xxl-275px {
+ min-width: 275px !important;
+ }
+ .min-w-xxl-300px {
+ min-width: 300px !important;
+ }
+ .min-w-xxl-325px {
+ min-width: 325px !important;
+ }
+ .min-w-xxl-350px {
+ min-width: 350px !important;
+ }
+ .min-w-xxl-375px {
+ min-width: 375px !important;
+ }
+ .min-w-xxl-400px {
+ min-width: 400px !important;
+ }
+ .min-w-xxl-425px {
+ min-width: 425px !important;
+ }
+ .min-w-xxl-450px {
+ min-width: 450px !important;
+ }
+ .min-w-xxl-475px {
+ min-width: 475px !important;
+ }
+ .min-w-xxl-500px {
+ min-width: 500px !important;
+ }
+ .min-w-xxl-550px {
+ min-width: 550px !important;
+ }
+ .min-w-xxl-600px {
+ min-width: 600px !important;
+ }
+ .min-w-xxl-650px {
+ min-width: 650px !important;
+ }
+ .min-w-xxl-700px {
+ min-width: 700px !important;
+ }
+ .min-w-xxl-750px {
+ min-width: 750px !important;
+ }
+ .min-w-xxl-800px {
+ min-width: 800px !important;
+ }
+ .min-w-xxl-850px {
+ min-width: 850px !important;
+ }
+ .min-w-xxl-900px {
+ min-width: 900px !important;
+ }
+ .min-w-xxl-950px {
+ min-width: 950px !important;
+ }
+ .min-w-xxl-1000px {
+ min-width: 1000px !important;
+ }
+ .min-h-xxl-unset {
+ min-height: unset !important;
+ }
+ .min-h-xxl-25 {
+ min-height: 25% !important;
+ }
+ .min-h-xxl-50 {
+ min-height: 50% !important;
+ }
+ .min-h-xxl-75 {
+ min-height: 75% !important;
+ }
+ .min-h-xxl-100 {
+ min-height: 100% !important;
+ }
+ .min-h-xxl-auto {
+ min-height: auto !important;
+ }
+ .min-h-xxl-1px {
+ min-height: 1px !important;
+ }
+ .min-h-xxl-2px {
+ min-height: 2px !important;
+ }
+ .min-h-xxl-3px {
+ min-height: 3px !important;
+ }
+ .min-h-xxl-4px {
+ min-height: 4px !important;
+ }
+ .min-h-xxl-5px {
+ min-height: 5px !important;
+ }
+ .min-h-xxl-6px {
+ min-height: 6px !important;
+ }
+ .min-h-xxl-7px {
+ min-height: 7px !important;
+ }
+ .min-h-xxl-8px {
+ min-height: 8px !important;
+ }
+ .min-h-xxl-9px {
+ min-height: 9px !important;
+ }
+ .min-h-xxl-10px {
+ min-height: 10px !important;
+ }
+ .min-h-xxl-15px {
+ min-height: 15px !important;
+ }
+ .min-h-xxl-20px {
+ min-height: 20px !important;
+ }
+ .min-h-xxl-25px {
+ min-height: 25px !important;
+ }
+ .min-h-xxl-30px {
+ min-height: 30px !important;
+ }
+ .min-h-xxl-35px {
+ min-height: 35px !important;
+ }
+ .min-h-xxl-40px {
+ min-height: 40px !important;
+ }
+ .min-h-xxl-45px {
+ min-height: 45px !important;
+ }
+ .min-h-xxl-50px {
+ min-height: 50px !important;
+ }
+ .min-h-xxl-55px {
+ min-height: 55px !important;
+ }
+ .min-h-xxl-60px {
+ min-height: 60px !important;
+ }
+ .min-h-xxl-65px {
+ min-height: 65px !important;
+ }
+ .min-h-xxl-70px {
+ min-height: 70px !important;
+ }
+ .min-h-xxl-75px {
+ min-height: 75px !important;
+ }
+ .min-h-xxl-80px {
+ min-height: 80px !important;
+ }
+ .min-h-xxl-85px {
+ min-height: 85px !important;
+ }
+ .min-h-xxl-90px {
+ min-height: 90px !important;
+ }
+ .min-h-xxl-95px {
+ min-height: 95px !important;
+ }
+ .min-h-xxl-100px {
+ min-height: 100px !important;
+ }
+ .min-h-xxl-125px {
+ min-height: 125px !important;
+ }
+ .min-h-xxl-150px {
+ min-height: 150px !important;
+ }
+ .min-h-xxl-175px {
+ min-height: 175px !important;
+ }
+ .min-h-xxl-200px {
+ min-height: 200px !important;
+ }
+ .min-h-xxl-225px {
+ min-height: 225px !important;
+ }
+ .min-h-xxl-250px {
+ min-height: 250px !important;
+ }
+ .min-h-xxl-275px {
+ min-height: 275px !important;
+ }
+ .min-h-xxl-300px {
+ min-height: 300px !important;
+ }
+ .min-h-xxl-325px {
+ min-height: 325px !important;
+ }
+ .min-h-xxl-350px {
+ min-height: 350px !important;
+ }
+ .min-h-xxl-375px {
+ min-height: 375px !important;
+ }
+ .min-h-xxl-400px {
+ min-height: 400px !important;
+ }
+ .min-h-xxl-425px {
+ min-height: 425px !important;
+ }
+ .min-h-xxl-450px {
+ min-height: 450px !important;
+ }
+ .min-h-xxl-475px {
+ min-height: 475px !important;
+ }
+ .min-h-xxl-500px {
+ min-height: 500px !important;
+ }
+ .min-h-xxl-550px {
+ min-height: 550px !important;
+ }
+ .min-h-xxl-600px {
+ min-height: 600px !important;
+ }
+ .min-h-xxl-650px {
+ min-height: 650px !important;
+ }
+ .min-h-xxl-700px {
+ min-height: 700px !important;
+ }
+ .min-h-xxl-750px {
+ min-height: 750px !important;
+ }
+ .min-h-xxl-800px {
+ min-height: 800px !important;
+ }
+ .min-h-xxl-850px {
+ min-height: 850px !important;
+ }
+ .min-h-xxl-900px {
+ min-height: 900px !important;
+ }
+ .min-h-xxl-950px {
+ min-height: 950px !important;
+ }
+ .min-h-xxl-1000px {
+ min-height: 1000px !important;
+ }
+}
+@media (min-width: 1200px) {
+ .fs-1 {
+ font-size: 1.75rem !important;
+ }
+ .fs-2 {
+ font-size: 1.5rem !important;
+ }
+ .fs-3 {
+ font-size: 1.35rem !important;
+ }
+ .fs-2x {
+ font-size: 2rem !important;
+ }
+ .fs-2qx {
+ font-size: 2.25rem !important;
+ }
+ .fs-2hx {
+ font-size: 2.5rem !important;
+ }
+ .fs-2tx {
+ font-size: 2.75rem !important;
+ }
+ .fs-3x {
+ font-size: 3rem !important;
+ }
+ .fs-3qx {
+ font-size: 3.25rem !important;
+ }
+ .fs-3hx {
+ font-size: 3.5rem !important;
+ }
+ .fs-3tx {
+ font-size: 3.75rem !important;
+ }
+ .fs-4x {
+ font-size: 4rem !important;
+ }
+ .fs-4qx {
+ font-size: 4.25rem !important;
+ }
+ .fs-4hx {
+ font-size: 4.5rem !important;
+ }
+ .fs-4tx {
+ font-size: 4.75rem !important;
+ }
+ .fs-5x {
+ font-size: 5rem !important;
+ }
+ .fs-5qx {
+ font-size: 5.25rem !important;
+ }
+ .fs-5hx {
+ font-size: 5.5rem !important;
+ }
+ .fs-5tx {
+ font-size: 5.75rem !important;
+ }
+ .fs-sm-1 {
+ font-size: 1.75rem !important;
+ }
+ .fs-sm-2 {
+ font-size: 1.5rem !important;
+ }
+ .fs-sm-3 {
+ font-size: 1.35rem !important;
+ }
+ .fs-sm-2x {
+ font-size: 2rem !important;
+ }
+ .fs-sm-2qx {
+ font-size: 2.25rem !important;
+ }
+ .fs-sm-2hx {
+ font-size: 2.5rem !important;
+ }
+ .fs-sm-2tx {
+ font-size: 2.75rem !important;
+ }
+ .fs-sm-3x {
+ font-size: 3rem !important;
+ }
+ .fs-sm-3qx {
+ font-size: 3.25rem !important;
+ }
+ .fs-sm-3hx {
+ font-size: 3.5rem !important;
+ }
+ .fs-sm-3tx {
+ font-size: 3.75rem !important;
+ }
+ .fs-sm-4x {
+ font-size: 4rem !important;
+ }
+ .fs-sm-4qx {
+ font-size: 4.25rem !important;
+ }
+ .fs-sm-4hx {
+ font-size: 4.5rem !important;
+ }
+ .fs-sm-4tx {
+ font-size: 4.75rem !important;
+ }
+ .fs-sm-5x {
+ font-size: 5rem !important;
+ }
+ .fs-sm-5qx {
+ font-size: 5.25rem !important;
+ }
+ .fs-sm-5hx {
+ font-size: 5.5rem !important;
+ }
+ .fs-sm-5tx {
+ font-size: 5.75rem !important;
+ }
+ .fs-md-1 {
+ font-size: 1.75rem !important;
+ }
+ .fs-md-2 {
+ font-size: 1.5rem !important;
+ }
+ .fs-md-3 {
+ font-size: 1.35rem !important;
+ }
+ .fs-md-2x {
+ font-size: 2rem !important;
+ }
+ .fs-md-2qx {
+ font-size: 2.25rem !important;
+ }
+ .fs-md-2hx {
+ font-size: 2.5rem !important;
+ }
+ .fs-md-2tx {
+ font-size: 2.75rem !important;
+ }
+ .fs-md-3x {
+ font-size: 3rem !important;
+ }
+ .fs-md-3qx {
+ font-size: 3.25rem !important;
+ }
+ .fs-md-3hx {
+ font-size: 3.5rem !important;
+ }
+ .fs-md-3tx {
+ font-size: 3.75rem !important;
+ }
+ .fs-md-4x {
+ font-size: 4rem !important;
+ }
+ .fs-md-4qx {
+ font-size: 4.25rem !important;
+ }
+ .fs-md-4hx {
+ font-size: 4.5rem !important;
+ }
+ .fs-md-4tx {
+ font-size: 4.75rem !important;
+ }
+ .fs-md-5x {
+ font-size: 5rem !important;
+ }
+ .fs-md-5qx {
+ font-size: 5.25rem !important;
+ }
+ .fs-md-5hx {
+ font-size: 5.5rem !important;
+ }
+ .fs-md-5tx {
+ font-size: 5.75rem !important;
+ }
+ .fs-lg-1 {
+ font-size: 1.75rem !important;
+ }
+ .fs-lg-2 {
+ font-size: 1.5rem !important;
+ }
+ .fs-lg-3 {
+ font-size: 1.35rem !important;
+ }
+ .fs-lg-2x {
+ font-size: 2rem !important;
+ }
+ .fs-lg-2qx {
+ font-size: 2.25rem !important;
+ }
+ .fs-lg-2hx {
+ font-size: 2.5rem !important;
+ }
+ .fs-lg-2tx {
+ font-size: 2.75rem !important;
+ }
+ .fs-lg-3x {
+ font-size: 3rem !important;
+ }
+ .fs-lg-3qx {
+ font-size: 3.25rem !important;
+ }
+ .fs-lg-3hx {
+ font-size: 3.5rem !important;
+ }
+ .fs-lg-3tx {
+ font-size: 3.75rem !important;
+ }
+ .fs-lg-4x {
+ font-size: 4rem !important;
+ }
+ .fs-lg-4qx {
+ font-size: 4.25rem !important;
+ }
+ .fs-lg-4hx {
+ font-size: 4.5rem !important;
+ }
+ .fs-lg-4tx {
+ font-size: 4.75rem !important;
+ }
+ .fs-lg-5x {
+ font-size: 5rem !important;
+ }
+ .fs-lg-5qx {
+ font-size: 5.25rem !important;
+ }
+ .fs-lg-5hx {
+ font-size: 5.5rem !important;
+ }
+ .fs-lg-5tx {
+ font-size: 5.75rem !important;
+ }
+}
+@media print {
+ .d-print-inline {
+ display: inline !important;
+ }
+ .d-print-inline-block {
+ display: inline-block !important;
+ }
+ .d-print-block {
+ display: block !important;
+ }
+ .d-print-grid {
+ display: grid !important;
+ }
+ .d-print-table {
+ display: table !important;
+ }
+ .d-print-table-row {
+ display: table-row !important;
+ }
+ .d-print-table-cell {
+ display: table-cell !important;
+ }
+ .d-print-flex {
+ display: flex !important;
+ }
+ .d-print-inline-flex {
+ display: inline-flex !important;
+ }
+ .d-print-none {
+ display: none !important;
+ }
+}
+:root {
+ --bs-xs:0;
+ --bs-sm:576px;
+ --bs-md:768px;
+ --bs-lg:992px;
+ --bs-xl:1200px;
+ --bs-xxl:1400px;
+ --bs-scrollbar-size: 5px;
+ --bs-scrollbar-overlay-size: 19px;
+ --bs-scrollbar-overlay-space: 7px;
+}
+
+[data-bs-theme=light] {
+ --bs-text-muted: #A1A5B7;
+ --bs-gray-100: #F9F9F9;
+ --bs-gray-100-rgb: 249, 249, 249;
+ --bs-gray-200: #F4F4F4;
+ --bs-gray-200-rgb: 244, 244, 244;
+ --bs-gray-300: #E1E3EA;
+ --bs-gray-300-rgb: 225, 227, 234;
+ --bs-gray-400: #B5B5C3;
+ --bs-gray-400-rgb: 181, 181, 195;
+ --bs-gray-500: #A1A5B7;
+ --bs-gray-500-rgb: 161, 165, 183;
+ --bs-gray-600: #7E8299;
+ --bs-gray-600-rgb: 126, 130, 153;
+ --bs-gray-700: #5E6278;
+ --bs-gray-700-rgb: 94, 98, 120;
+ --bs-gray-800: #3F4254;
+ --bs-gray-800-rgb: 63, 66, 84;
+ --bs-gray-900: #181C32;
+ --bs-gray-900-rgb: 24, 28, 50;
+ --bs-white: #ffffff;
+ --bs-light: #F9F9F9;
+ --bs-primary: #009ef7;
+ --bs-secondary: #E1E3EA;
+ --bs-success: #50cd89;
+ --bs-info: #7239ea;
+ --bs-warning: #ffc700;
+ --bs-danger: #f1416c;
+ --bs-dark: #181C32;
+ --bs-primary-active: #0095e8;
+ --bs-secondary-active: #B5B5C3;
+ --bs-light-active: #F4F4F4;
+ --bs-success-active: #47be7d;
+ --bs-info-active: #5014d0;
+ --bs-warning-active: #f1bc00;
+ --bs-danger-active: #d9214e;
+ --bs-dark-active: #131628;
+ --bs-primary-light: #f1faff;
+ --bs-secondary-light: #F9F9F9;
+ --bs-success-light: #e8fff3;
+ --bs-info-light: #f8f5ff;
+ --bs-warning-light: #fff8dd;
+ --bs-danger-light: #fff5f8;
+ --bs-dark-light: #F4F4F4;
+ --bs-primary-inverse: #ffffff;
+ --bs-secondary-inverse: #3F4254;
+ --bs-light-inverse: #7E8299;
+ --bs-success-inverse: #ffffff;
+ --bs-info-inverse: #ffffff;
+ --bs-warning-inverse: #ffffff;
+ --bs-danger-inverse: #ffffff;
+ --bs-dark-inverse: #ffffff;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-light-rgb: 249, 249, 249;
+ --bs-primary-rgb: 0, 158, 247;
+ --bs-secondary-rgb: 225, 227, 234;
+ --bs-success-rgb: 80, 205, 137;
+ --bs-info-rgb: 114, 57, 234;
+ --bs-warning-rgb: 255, 199, 0;
+ --bs-danger-rgb: 241, 65, 108;
+ --bs-dark-rgb: 24, 28, 50;
+ --bs-text-white: #ffffff;
+ --bs-text-primary: #009ef7;
+ --bs-text-secondary: #E1E3EA;
+ --bs-text-light: #F9F9F9;
+ --bs-text-success: #50cd89;
+ --bs-text-info: #7239ea;
+ --bs-text-warning: #ffc700;
+ --bs-text-danger: #f1416c;
+ --bs-text-dark: #181C32;
+ --bs-text-muted: #A1A5B7;
+ --bs-text-gray-100: #F9F9F9;
+ --bs-text-gray-200: #F4F4F4;
+ --bs-text-gray-300: #E1E3EA;
+ --bs-text-gray-400: #B5B5C3;
+ --bs-text-gray-500: #A1A5B7;
+ --bs-text-gray-600: #7E8299;
+ --bs-text-gray-700: #5E6278;
+ --bs-text-gray-800: #3F4254;
+ --bs-text-gray-900: #181C32;
+ --bs-border-color: #F4F4F4;
+ --bs-border-dashed-color: #E1E3EA;
+ --bs-component-active-color: #ffffff;
+ --bs-component-active-bg: #009ef7;
+ --bs-component-hover-color: #009ef7;
+ --bs-component-hover-bg: #F4F6FA;
+ --bs-component-checked-color: #ffffff;
+ --bs-component-checked-bg: #009ef7;
+ --bs-box-shadow-xs: 0 0.1rem 0.75rem 0.25rem rgba(0, 0, 0, 0.05);
+ --bs-box-shadow-sm: 0 0.1rem 1rem 0.25rem rgba(0, 0, 0, 0.05);
+ --bs-box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075);
+ --bs-box-shadow-lg: 0 1rem 2rem 1rem rgba(0, 0, 0, 0.1);
+ --bs-tooltip-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.15);
+ --bs-card-box-shadow: 0px 0px 20px 0px rgba(76, 87, 125, 0.02);
+ --bs-table-striped-bg: rgba(var(--bs-gray-100-rgb), 0.75);
+ --bs-dropdown-bg: var(--bs-body-bg);
+ --bs-dropdown-box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15);
+ --bs-code-bg: #F1F3F8;
+ --bs-code-box-shadow: 0px 3px 9px rgba(0, 0, 0, 0.08);
+ --bs-code-color: #b93993;
+ --bs-symbol-label-color: var(--bs-gray-800);
+ --bs-symbol-label-bg: var(--bs-gray-100);
+ --bs-symbol-border-color: rgba(var(--bs-body-bg), 0.5);
+ --bs-bullet-bg-color: var(--bs-gray-400);
+ --bs-scrolltop-opacity: 0;
+ --bs-scrolltop-opacity-on: 0.3;
+ --bs-scrolltop-opacity-hover: 1;
+ --bs-scrolltop-box-shadow: var(--bs-box-shadow);
+ --bs-scrolltop-bg-color: var(--bs-primary);
+ --bs-scrolltop-bg-color-hover: var(--bs-primary);
+ --bs-scrolltop-icon-color: var(--bs-primary-inverse);
+ --bs-scrolltop-icon-color-hover: var(--bs-primary-inverse);
+ --bs-drawer-box-shadow: 0px 1px 9px -3px rgba(0, 0, 0, 0.05);
+ --bs-drawer-bg-color: #ffffff;
+ --bs-drawer-overlay-bg-color: rgba(0, 0, 0, 0.2);
+ --bs-menu-dropdown-box-shadow: 0px 0px 50px 0px rgba(82, 63, 105, 0.15);
+ --bs-menu-dropdown-bg-color: var(--bs-body-bg);
+ --bs-menu-heading-color: #A1A5B7;
+ --bs-menu-link-color-hover: #009ef7;
+ --bs-menu-link-color-show: #009ef7;
+ --bs-menu-link-color-here: #009ef7;
+ --bs-menu-link-color-active: #009ef7;
+ --bs-menu-link-bg-color-hover: #F4F6FA;
+ --bs-menu-link-bg-color-show: #F4F6FA;
+ --bs-menu-link-bg-color-here: #F4F6FA;
+ --bs-menu-link-bg-color-active: #F4F6FA;
+ --bs-scrollbar-color: #F4F4F4;
+ --bs-scrollbar-hover-color: #efefef;
+ --bs-scrollbar-size: 5px;
+ --bs-scrollbar-overlay-size: 19px;
+ --bs-scrollbar-overlay-space: 7px;
+ --bs-overlay-bg: rgba(0, 0, 0, 0.05);
+ --bs-blockui-overlay-bg: rgba(0, 0, 0, 0.05);
+ --bs-rating-color-default: #B5B5C3;
+ --bs-rating-color-active: #FFAD0F;
+ --bs-ribbon-label-box-shadow: 0px -1px 5px 0px rgba(24, 28, 50, 0.1);
+ --bs-ribbon-label-bg: #009ef7;
+ --bs-ribbon-label-border-color: #005d91;
+ --bs-ribbon-clip-bg: #181C32;
+ --bs-engage-btn-bg: #ffffff;
+ --bs-engage-btn-box-shadow: 0px 0px 22px #E0E0E0;
+ --bs-engage-btn-border-color: #E8E8E8;
+ --bs-engage-btn-color: #3F4254;
+ --bs-engage-btn-icon-color: #7E8299;
+ --bs-engage-btn-color-active: #3F4254;
+}
+
+[data-bs-theme=dark] {
+ --bs-text-muted: #565674;
+ --bs-gray-100: #1b1b29;
+ --bs-gray-100-rgb: 27, 27, 41;
+ --bs-gray-200: #2B2B40;
+ --bs-gray-200-rgb: 43, 43, 64;
+ --bs-gray-300: #323248;
+ --bs-gray-300-rgb: 50, 50, 72;
+ --bs-gray-400: #474761;
+ --bs-gray-400-rgb: 71, 71, 97;
+ --bs-gray-500: #565674;
+ --bs-gray-500-rgb: 86, 86, 116;
+ --bs-gray-600: #6D6D80;
+ --bs-gray-600-rgb: 109, 109, 128;
+ --bs-gray-700: #92929F;
+ --bs-gray-700-rgb: 146, 146, 159;
+ --bs-gray-800: #CDCDDE;
+ --bs-gray-800-rgb: 205, 205, 222;
+ --bs-gray-900: #FFFFFF;
+ --bs-gray-900-rgb: 255, 255, 255;
+ --bs-white: #ffffff;
+ --bs-light: #2B2B40;
+ --bs-primary: #009ef7;
+ --bs-success: #50cd89;
+ --bs-info: #7239ea;
+ --bs-warning: #ffc700;
+ --bs-danger: #f1416c;
+ --bs-dark: #FFFFFF;
+ --bs-secondary: #323248;
+ --bs-primary-active: #0095e8;
+ --bs-secondary-active: #474761;
+ --bs-light-active: #323248;
+ --bs-success-active: #47be7d;
+ --bs-info-active: #5014d0;
+ --bs-warning-active: #f1bc00;
+ --bs-danger-active: #d9214e;
+ --bs-dark-active: white;
+ --bs-primary-light: #212e48;
+ --bs-success-light: #1c3238;
+ --bs-info-light: #2f264f;
+ --bs-warning-light: #392f28;
+ --bs-danger-light: #3a2434;
+ --bs-dark-light: #2B2B40;
+ --bs-secondary-light: #1b1b29;
+ --bs-primary-inverse: #ffffff;
+ --bs-secondary-inverse: #92929F;
+ --bs-light-inverse: #7E8299;
+ --bs-success-inverse: #ffffff;
+ --bs-info-inverse: #ffffff;
+ --bs-warning-inverse: #ffffff;
+ --bs-danger-inverse: #ffffff;
+ --bs-dark-inverse: #1b1b29;
+ --bs-white-rgb: 255, 255, 255;
+ --bs-light-rgb: 43, 43, 64;
+ --bs-primary-rgb: 0, 158, 247;
+ --bs-success-rgb: 80, 205, 137;
+ --bs-info-rgb: 114, 57, 234;
+ --bs-warning-rgb: 255, 199, 0;
+ --bs-danger-rgb: 241, 65, 108;
+ --bs-dark-rgb: 255, 255, 255;
+ --bs-secondary-rgb: 50, 50, 72;
+ --bs-text-white: #ffffff;
+ --bs-text-primary: #009ef7;
+ --bs-text-secondary: #323248;
+ --bs-text-light: #2B2B40;
+ --bs-text-success: #50cd89;
+ --bs-text-info: #7239ea;
+ --bs-text-warning: #ffc700;
+ --bs-text-danger: #f1416c;
+ --bs-text-dark: #FFFFFF;
+ --bs-text-muted: #565674;
+ --bs-text-gray-100: #1b1b29;
+ --bs-text-gray-200: #2B2B40;
+ --bs-text-gray-300: #323248;
+ --bs-text-gray-400: #474761;
+ --bs-text-gray-500: #565674;
+ --bs-text-gray-600: #6D6D80;
+ --bs-text-gray-700: #92929F;
+ --bs-text-gray-800: #CDCDDE;
+ --bs-text-gray-900: #FFFFFF;
+ --bs-border-color: #2B2B40;
+ --bs-border-dashed-color: #323248;
+ --bs-component-active-color: #ffffff;
+ --bs-component-active-bg: #009ef7;
+ --bs-component-hover-color: #009ef7;
+ --bs-component-hover-bg: #2B2B40;
+ --bs-component-checked-color: #ffffff;
+ --bs-component-checked-bg: #009ef7;
+ --bs-box-shadow-xs: 0 0.1rem 0.75rem 0.25rem rgba(0, 0, 0, 0.05);
+ --bs-box-shadow-sm: 0 0.1rem 1rem 0.25rem rgba(0, 0, 0, 0.05);
+ --bs-box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075);
+ --bs-box-shadow-lg: 0 1rem 2rem 1rem rgba(0, 0, 0, 0.1);
+ --bs-tooltip-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.15);
+ --bs-card-box-shadow: ;
+ --bs-table-striped-bg: rgba(27, 27, 41, 0.75);
+ --bs-dropdown-bg: #1e1e2d;
+ --bs-dropdown-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
+ --bs-code-bg: #2B2B40;
+ --bs-code-box-shadow: 0px 3px 9px rgba(0, 0, 0, 0.08);
+ --bs-code-color: #b93993;
+ --bs-symbol-label-color: #CDCDDE;
+ --bs-symbol-label-bg: #1b1b29;
+ --bs-symbol-border-color: rgba(255, 255, 255, 0.5);
+ --bs-bullet-bg-color: #474761;
+ --bs-scrolltop-opacity: 0;
+ --bs-scrolltop-opacity-on: 0.3;
+ --bs-scrolltop-opacity-hover: 1;
+ --bs-scrolltop-box-shadow: 0 0.5rem 1.5rem 0.5rem rgba(0, 0, 0, 0.075);
+ --bs-scrolltop-bg-color: #009ef7;
+ --bs-scrolltop-bg-color-hover: #009ef7;
+ --bs-scrolltop-icon-color: #ffffff;
+ --bs-scrolltop-icon-color-hover: #ffffff;
+ --bs-drawer-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1);
+ --bs-drawer-bg-color: #1e1e2d;
+ --bs-drawer-overlay-bg-color: rgba(0, 0, 0, 0.4);
+ --bs-menu-dropdown-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
+ --bs-menu-dropdown-bg-color: #1e1e2d;
+ --bs-menu-heading-color: #565674;
+ --bs-menu-link-color-hover: #009ef7;
+ --bs-menu-link-color-show: #009ef7;
+ --bs-menu-link-color-here: #009ef7;
+ --bs-menu-link-color-active: #009ef7;
+ --bs-menu-link-bg-color-hover: #2B2B40;
+ --bs-menu-link-bg-color-show: #2B2B40;
+ --bs-menu-link-bg-color-here: #2B2B40;
+ --bs-menu-link-bg-color-active: #2B2B40;
+ --bs-scrollbar-color: #2B2B40;
+ --bs-scrollbar-hover-color: #27273a;
+ --bs-overlay-bg: rgba(255, 255, 255, 0.05);
+ --bs-blockui-overlay-bg: rgba(255, 255, 255, 0.05);
+ --bs-rating-color-default: #474761;
+ --bs-rating-color-active: #FFAD0F;
+ --bs-ribbon-label-box-shadow: 0px -1px 5px 0px rgba(255, 255, 255, 0.1);
+ --bs-ribbon-label-bg: #009ef7;
+ --bs-ribbon-label-border-color: #005d91;
+ --bs-ribbon-clip-bg: #F9F9F9;
+ --bs-engage-btn-bg: #2B2B40;
+ --bs-engage-btn-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
+ --bs-engage-btn-border-color: #2B2B40;
+ --bs-engage-btn-color: #CDCDDE;
+ --bs-engage-btn-icon-color: #6D6D80;
+ --bs-engage-btn-color-active: #CDCDDE;
+}
+
+h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
+ outline: 0;
+}
+
+.blockquote-footer {
+ color: var(--bs-blockquote-footer-color);
+}
+
+.list-style-none {
+ list-style: none;
+}
+
+[data-kt-theme-mode-switching=true] * {
+ transition: none !important;
+}
+
+[data-bs-theme=light] .theme-dark-show {
+ display: none !important;
+}
+[data-bs-theme=light] .theme-light-bg-transparent {
+ background-color: transparent !important;
+}
+[data-bs-theme=light] .theme-light-bg-body {
+ background-color: var(--bs-body-bg) !important;
+}
+
+[data-bs-theme=dark] .theme-light-show {
+ display: none !important;
+}
+[data-bs-theme=dark] .theme-dark-bg-transparent {
+ background-color: transparent !important;
+}
+[data-bs-theme=dark] .theme-dark-bg-body {
+ background-color: var(--bs-body-bg) !important;
+}
+
+.animation {
+ animation-duration: 1s;
+ animation-fill-mode: both;
+}
+
+@keyframes animationSlideInDown {
+ from {
+ transform: translate3d(0, -100%, 0);
+ visibility: visible;
+ }
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+}
+.animation-slide-in-down {
+ animation-name: animationSlideInDown;
+}
+
+@keyframes animationSlideInUp {
+ from {
+ transform: translate3d(0, 100%, 0);
+ visibility: visible;
+ }
+ to {
+ transform: translate3d(0, 0, 0);
+ }
+}
+.animation-slide-in-up {
+ animation-name: animationSlideInUp;
+}
+
+@keyframes animationFadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+.animation-fade-in {
+ animation-name: animationFadeIn;
+}
+
+@keyframes animationFadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+.animation-fade-out {
+ animation-name: animationFadeOut;
+}
+
+.animation-blink {
+ animation: animationBlink 1s steps(5, start) infinite;
+}
+
+@keyframes animationBlink {
+ to {
+ visibility: hidden;
+ }
+}
+.alert-white {
+ color: var(--bs-white);
+ border-color: var(--bs-white);
+ background-color: var(--bs-white-light);
+}
+.alert-white .alert-link {
+ color: var(--bs-white);
+}
+
+.alert-light {
+ color: var(--bs-light);
+ border-color: var(--bs-light);
+ background-color: var(--bs-light-light);
+}
+.alert-light .alert-link {
+ color: var(--bs-light);
+}
+
+.alert-primary {
+ color: var(--bs-primary);
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary-light);
+}
+.alert-primary .alert-link {
+ color: var(--bs-primary);
+}
+
+.alert-secondary {
+ color: var(--bs-secondary);
+ border-color: var(--bs-secondary);
+ background-color: var(--bs-secondary-light);
+}
+.alert-secondary .alert-link {
+ color: var(--bs-secondary);
+}
+
+.alert-success {
+ color: var(--bs-success);
+ border-color: var(--bs-success);
+ background-color: var(--bs-success-light);
+}
+.alert-success .alert-link {
+ color: var(--bs-success);
+}
+
+.alert-info {
+ color: var(--bs-info);
+ border-color: var(--bs-info);
+ background-color: var(--bs-info-light);
+}
+.alert-info .alert-link {
+ color: var(--bs-info);
+}
+
+.alert-warning {
+ color: var(--bs-warning);
+ border-color: var(--bs-warning);
+ background-color: var(--bs-warning-light);
+}
+.alert-warning .alert-link {
+ color: var(--bs-warning);
+}
+
+.alert-danger {
+ color: var(--bs-danger);
+ border-color: var(--bs-danger);
+ background-color: var(--bs-danger-light);
+}
+.alert-danger .alert-link {
+ color: var(--bs-danger);
+}
+
+.alert-dark {
+ color: var(--bs-dark);
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark-light);
+}
+.alert-dark .alert-link {
+ color: var(--bs-dark);
+}
+
+[data-bs-theme=dark] .dropdown-menu {
+ box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
+}
+
+.toast .toast-header .btn-close {
+ margin-right: 0;
+}
+
+[data-bs-theme=dark] .toast {
+ --bs-toast-bg: #2B2B40;
+ --bs-toast-header-bg: #2B2B40;
+ --bs-toast-header-border-color: #323248;
+}
+
+.nav-pills .nav-item {
+ margin-right: 0.5rem;
+}
+.nav-pills .nav-item:last-child {
+ margin-right: 0;
+}
+
+.nav-stretch {
+ align-items: stretch;
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.nav-stretch .nav-item {
+ display: flex;
+ align-items: stretch;
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+}
+.nav-stretch .nav-link {
+ display: flex;
+ align-items: center;
+}
+
+.nav-group {
+ padding: 0.35rem;
+ border-radius: 0.475rem;
+ background-color: var(--bs-gray-100);
+}
+.nav-group.nav-group-outline {
+ background-color: transparent;
+ border: 1px solid var(--bs-border-color);
+}
+.nav-group.nav-group-fluid {
+ display: flex;
+}
+.nav-group.nav-group-fluid > label,
+.nav-group.nav-group-fluid > .btn {
+ position: relative;
+ flex-shrink: 0;
+ flex-grow: 1;
+ flex-basis: 0;
+}
+.nav-group.nav-group-fluid > label {
+ margin-right: 0.1rem;
+}
+.nav-group.nav-group-fluid > label > .btn {
+ width: 100%;
+}
+.nav-group.nav-group-fluid > label:last-child {
+ margin-right: 0;
+}
+
+.nav-line-tabs {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: var(--bs-border-color);
+}
+.nav-line-tabs .nav-item {
+ margin-bottom: -1px;
+}
+.nav-line-tabs .nav-item .nav-link {
+ color: var(--bs-gray-500);
+ border: 0;
+ border-bottom: 1px solid transparent;
+ transition: color 0.2s ease;
+ padding: 0.5rem 0;
+ margin: 0 1rem;
+}
+.nav-line-tabs .nav-item:first-child .nav-link {
+ margin-left: 0;
+}
+.nav-line-tabs .nav-item:last-child .nav-link {
+ margin-right: 0;
+}
+.nav-line-tabs .nav-item .nav-link.active,
+.nav-line-tabs .nav-item.show .nav-link,
+.nav-line-tabs .nav-item .nav-link:hover:not(.disabled) {
+ background-color: transparent;
+ border: 0;
+ border-bottom: 1px solid var(--bs-primary);
+ transition: color 0.2s ease;
+}
+.nav-line-tabs.nav-line-tabs-2x {
+ border-bottom-width: 2px;
+}
+.nav-line-tabs.nav-line-tabs-2x .nav-item {
+ margin-bottom: -2px;
+}
+.nav-line-tabs.nav-line-tabs-2x .nav-item .nav-link {
+ border-bottom-width: 2px;
+}
+.nav-line-tabs.nav-line-tabs-2x .nav-item .nav-link.active,
+.nav-line-tabs.nav-line-tabs-2x .nav-item.show .nav-link,
+.nav-line-tabs.nav-line-tabs-2x .nav-item .nav-link:hover:not(.disabled) {
+ border-bottom-width: 2px;
+}
+
+.nav.nav-pills.nav-pills-custom .show > .nav-link,
+.nav.nav-pills.nav-pills-custom .nav-link {
+ border: 1px dashed var(--bs-border-dashed-color);
+ border-radius: 0.625rem;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link.nav-link-border-solid,
+.nav.nav-pills.nav-pills-custom .nav-link.nav-link-border-solid {
+ border: 3px solid var(--bs-border-dashed-color);
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link.nav-link-border-solid.active,
+.nav.nav-pills.nav-pills-custom .nav-link.nav-link-border-solid.active {
+ border: 3px solid var(--bs-primary);
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link .nav-icon img,
+.nav.nav-pills.nav-pills-custom .nav-link .nav-icon img {
+ width: 30px;
+ transition: color 0.2s ease;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link .nav-icon img.default,
+.nav.nav-pills.nav-pills-custom .nav-link .nav-icon img.default {
+ display: inline-block;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link .nav-icon img.active,
+.nav.nav-pills.nav-pills-custom .nav-link .nav-icon img.active {
+ display: none;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link.active,
+.nav.nav-pills.nav-pills-custom .nav-link.active {
+ background-color: transparent;
+ border: 1px solid var(--bs-border-dashed-color);
+ transition-duration: 1ms;
+ position: relative;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link.active .nav-text,
+.nav.nav-pills.nav-pills-custom .nav-link.active .nav-text {
+ color: var(--bs-gray-800) !important;
+ transition: color 0.2s ease;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link.active .bullet-custom,
+.nav.nav-pills.nav-pills-custom .nav-link.active .bullet-custom {
+ display: block;
+}
+.nav.nav-pills.nav-pills-custom .show > .nav-link .bullet-custom,
+.nav.nav-pills.nav-pills-custom .nav-link .bullet-custom {
+ display: none;
+}
+.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link:not(:active) span:nth-child(1) {
+ color: #B5B5C3;
+}
+.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link:not(:active) span:nth-child(2) {
+ color: #3F4254;
+}
+.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link:hover span:nth-child(1) {
+ color: #ffffff !important;
+}
+.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link:hover span:nth-child(2) {
+ color: #ffffff !important;
+}
+.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link.active span:nth-child(1) {
+ color: #ffffff !important;
+}
+.nav.nav-pills.nav-pills-custom.nav-pills-active-custom .nav-item .nav-link.active span:nth-child(2) {
+ color: #ffffff !important;
+}
+
+.pagination {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+ margin: 0;
+}
+.pagination.pagination-circle .page-link {
+ border-radius: 50%;
+}
+.pagination.pagination-outline .page-link {
+ border: 1px solid var(--bs-border-color);
+}
+.pagination.pagination-outline .page-item:hover:not(.disabled) .page-link, .pagination.pagination-outline .page-item.active .page-link {
+ border-color: var(--bs-primary-light);
+}
+
+.page-item {
+ margin-right: 0.5rem;
+ /*rtl:end:ignore*/
+}
+.page-item:last-child {
+ margin-right: 0;
+}
+.page-item .page-link {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 0.475rem;
+ height: 2.5rem;
+ min-width: 2.5rem;
+ font-weight: 500;
+ font-size: 1.075rem;
+ /*rtl:options:{"autoRename":false}*/
+ /*rtl:end:ignore*/
+ /*rtl:options:{"autoRename":false}*/
+}
+.page-item .page-link i {
+ font-size: 0.85rem;
+}
+.page-item .page-link .previous,
+.page-item .page-link .next {
+ display: block;
+ height: 0.875rem;
+ width: 0.875rem;
+ /*rtl:raw:transform: rotateZ(-180deg);*/
+}
+.page-item .page-link .previous {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+}
+.page-item .page-link .next {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+}
+.page-item:focus .page-link {
+ color: var(--bs-pagination-focus-color);
+ /*rtl:options:{"autoRename":false}*/
+}
+.page-item:focus .page-link .svg-icon,
+.page-item:focus .page-link i {
+ color: var(--bs-pagination-focus-color);
+}
+.page-item:focus .page-link .previous {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-focus-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-focus-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-focus-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+}
+.page-item:focus .page-link .next {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-focus-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-focus-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-focus-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+}
+.page-item:hover:not(.active):not(.offset):not(.disabled) .page-link {
+ color: var(--bs-pagination-hover-color);
+ /*rtl:options:{"autoRename":false}*/
+}
+.page-item:hover:not(.active):not(.offset):not(.disabled) .page-link.page-text {
+ background-color: transparent;
+}
+.page-item:hover:not(.active):not(.offset):not(.disabled) .page-link .svg-icon,
+.page-item:hover:not(.active):not(.offset):not(.disabled) .page-link i {
+ color: var(--bs-pagination-hover-color);
+}
+.page-item:hover:not(.active):not(.offset):not(.disabled) .page-link .previous {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-hover-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-hover-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-hover-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+}
+.page-item:hover:not(.active):not(.offset):not(.disabled) .page-link .next {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-hover-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-hover-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-hover-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+}
+.page-item.active .page-link {
+ color: var(--bs-pagination-active-color);
+ /*rtl:options:{"autoRename":false}*/
+}
+.page-item.active .page-link.page-text {
+ background-color: transparent;
+}
+.page-item.active .page-link .svg-icon,
+.page-item.active .page-link i {
+ color: var(--bs-pagination-active-color);
+}
+.page-item.active .page-link .previous {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-active-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-active-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-active-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+}
+.page-item.active .page-link .next {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-active-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-active-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-active-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+}
+.page-item.disabled .page-link {
+ color: var(--bs-pagination-disabled-color);
+ /*rtl:options:{"autoRename":false}*/
+}
+.page-item.disabled .page-link .svg-icon,
+.page-item.disabled .page-link i {
+ color: var(--bs-pagination-disabled-color);
+}
+.page-item.disabled .page-link .previous {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-disabled-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-disabled-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-disabled-color%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+}
+.page-item.disabled .page-link .next {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-pagination-disabled-color);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-disabled-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-pagination-disabled-color%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+}
+
+@media (max-width: 991.98px) {
+ .page-item {
+ margin-right: 0.25rem;
+ }
+ .page-item:last-child {
+ margin-right: 0;
+ }
+}
+.separator {
+ display: block;
+ height: 0;
+ border-bottom: 1px solid var(--bs-border-color);
+}
+.separator.separator-dotted {
+ border-bottom-style: dotted;
+ border-bottom-color: var(--bs-border-dashed-color);
+}
+.separator.separator-dashed {
+ border-bottom-style: dashed;
+ border-bottom-color: var(--bs-border-dashed-color);
+}
+.separator.separator-content {
+ display: flex;
+ align-items: center;
+ border-bottom: 0;
+ text-align: center;
+}
+.separator.separator-content::before, .separator.separator-content::after {
+ content: " ";
+ width: 50%;
+ border-bottom: 1px solid var(--bs-border-color);
+}
+.separator.separator-content::before {
+ margin-right: 1.25rem;
+}
+.separator.separator-content::after {
+ margin-left: 1.25rem;
+}
+.separator.separator-content.separator-dotted::before, .separator.separator-content.separator-dotted::after {
+ border-bottom-style: dotted;
+ border-bottom-color: var(--bs-border-dashed-color);
+}
+.separator.separator-content.separator-dashed::before, .separator.separator-content.separator-dashed::after {
+ border-bottom-style: dashed;
+ border-bottom-color: var(--bs-border-dashed-color);
+}
+.separator.separator-content.border-white::before, .separator.separator-content.border-white::after {
+ border-color: #ffffff !important;
+}
+.separator.separator-content.border-light::before, .separator.separator-content.border-light::after {
+ border-color: #F9F9F9 !important;
+}
+.separator.separator-content.border-primary::before, .separator.separator-content.border-primary::after {
+ border-color: #009ef7 !important;
+}
+.separator.separator-content.border-secondary::before, .separator.separator-content.border-secondary::after {
+ border-color: #E1E3EA !important;
+}
+.separator.separator-content.border-success::before, .separator.separator-content.border-success::after {
+ border-color: #50cd89 !important;
+}
+.separator.separator-content.border-info::before, .separator.separator-content.border-info::after {
+ border-color: #7239ea !important;
+}
+.separator.separator-content.border-warning::before, .separator.separator-content.border-warning::after {
+ border-color: #ffc700 !important;
+}
+.separator.separator-content.border-danger::before, .separator.separator-content.border-danger::after {
+ border-color: #f1416c !important;
+}
+.separator.separator-content.border-dark::before, .separator.separator-content.border-dark::after {
+ border-color: #181C32 !important;
+}
+
+.carousel-custom .carousel-indicators {
+ align-items: center;
+ position: static;
+ z-index: auto;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+.carousel-custom .carousel-indicators li {
+ transform: none;
+ opacity: 1;
+}
+.carousel-custom .carousel-indicators li.active {
+ transform: none;
+ opacity: 1;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-dots li {
+ border-radius: 0;
+ background-color: transparent !important;
+ height: 13px;
+ width: 13px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-dots li:after {
+ display: inline-block;
+ content: " ";
+ border-radius: 50%;
+ transition: all 0.3s ease;
+ background-color: var(--bs-gray-200);
+ height: 9px;
+ width: 9px;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-dots li.active {
+ background-color: transparent;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-dots li.active:after {
+ transition: all 0.3s ease;
+ height: 13px;
+ width: 13px;
+ background-color: var(--bs-gray-400);
+}
+.carousel-custom .carousel-indicators.carousel-indicators-bullet li {
+ transition: all 0.3s ease;
+ background-color: transparent !important;
+ border-radius: 6px;
+ height: 6px;
+ width: 6px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-bullet li:after {
+ display: inline-block;
+ content: " ";
+ transition: all 0.3s ease;
+ background-color: var(--bs-gray-400);
+ border-radius: 6px;
+ height: 6px;
+ width: 6px;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-bullet li.active {
+ transition: all 0.3s ease;
+ background-color: transparent;
+ height: 6px;
+ width: 16px;
+}
+.carousel-custom .carousel-indicators.carousel-indicators-bullet li.active:after {
+ transition: all 0.3s ease;
+ height: 6px;
+ width: 16px;
+ background-color: var(--bs-gray-600);
+}
+.carousel-custom .carousel-indicators-active-white li.active:after {
+ background-color: var(--bs-white) !important;
+}
+.carousel-custom .carousel-indicators-active-light li.active:after {
+ background-color: var(--bs-light) !important;
+}
+.carousel-custom .carousel-indicators-active-primary li.active:after {
+ background-color: var(--bs-primary) !important;
+}
+.carousel-custom .carousel-indicators-active-secondary li.active:after {
+ background-color: var(--bs-secondary) !important;
+}
+.carousel-custom .carousel-indicators-active-success li.active:after {
+ background-color: var(--bs-success) !important;
+}
+.carousel-custom .carousel-indicators-active-info li.active:after {
+ background-color: var(--bs-info) !important;
+}
+.carousel-custom .carousel-indicators-active-warning li.active:after {
+ background-color: var(--bs-warning) !important;
+}
+.carousel-custom .carousel-indicators-active-danger li.active:after {
+ background-color: var(--bs-danger) !important;
+}
+.carousel-custom .carousel-indicators-active-dark li.active:after {
+ background-color: var(--bs-dark) !important;
+}
+.carousel-custom.carousel-stretch {
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+}
+.carousel-custom.carousel-stretch .carousel-inner {
+ flex-grow: 1;
+}
+.carousel-custom.carousel-stretch .carousel-item {
+ height: 100%;
+}
+.carousel-custom.carousel-stretch .carousel-wrapper {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+}
+
+.menu-group {
+ display: flex;
+}
+
+.menu,
+.menu-wrapper {
+ display: flex;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+.menu-inner {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+.menu-sub {
+ display: none;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ flex-direction: column;
+}
+
+.menu-item {
+ display: block;
+ padding: 0.15rem 0;
+}
+.menu-item .menu-link {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ padding: 0;
+ flex: 0 0 100%;
+ padding: 0.65rem 1rem;
+ transition: none;
+ outline: none !important;
+}
+.menu-item .menu-link .menu-icon {
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 2rem;
+ margin-right: 0.5rem;
+}
+.menu-item .menu-link .menu-icon .svg-icon {
+ line-height: 1;
+}
+.menu-item .menu-link .menu-bullet {
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 1.25rem;
+ margin-right: 0.5rem;
+}
+.menu-item .menu-link .menu-title {
+ display: flex;
+ align-items: center;
+ flex-grow: 1;
+}
+.menu-item .menu-link .menu-badge {
+ display: flex;
+ align-items: center;
+ flex-shrink: 0;
+ margin-left: 0.5rem;
+}
+.menu-item .menu-link .menu-arrow {
+ display: flex;
+ align-items: stretch;
+ position: relative;
+ overflow: hidden;
+ flex-shrink: 0;
+ margin-left: 5px;
+ width: 9px;
+ height: 9px;
+}
+.menu-item .menu-link .menu-arrow:after {
+ display: block;
+ width: 100%;
+ content: " ";
+ will-change: transform;
+ background-size: 100% 100%;
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-item .menu-content {
+ padding: 0.65rem 1rem;
+}
+
+.menu-item.show .menu-link .menu-arrow:after {
+ backface-visibility: hidden;
+ transition: transform 0.3s ease;
+}
+
+.menu-center {
+ justify-content: center;
+}
+
+.menu-heading {
+ color: var(--bs-menu-heading-color);
+}
+
+.menu-item.menu-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+}
+.menu-item.menu-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+}
+
+.menu-sub-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+}
+.show.menu-dropdown > .menu-sub-dropdown, .menu-sub-dropdown.menu.show, .menu-sub-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+}
+
+.menu-sub-accordion {
+ display: none;
+}
+.show:not(.menu-dropdown) > .menu-sub-accordion, .menu-sub-accordion.show {
+ display: flex;
+}
+
+.menu-sub-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+}
+.menu-sub-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+}
+
+.menu-inline {
+ display: flex;
+}
+
+.menu-fit > .menu-item > .menu-content,
+.menu-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+}
+
+.menu-column {
+ flex-direction: column;
+ width: 100%;
+}
+
+.menu-row {
+ flex-direction: row;
+}
+.menu-row > .menu-item {
+ display: flex;
+ align-items: center;
+}
+.menu-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+}
+
+.menu-rounded .menu-link {
+ border-radius: 0.475rem;
+}
+
+.menu-pill .menu-link {
+ border-radius: 50px;
+}
+
+.menu-rounded-0 .menu-link {
+ border-radius: 0 !important;
+}
+
+@media (min-width: 576px) {
+ .menu-item.menu-sm-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-sm-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-sm-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-sm-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-sm-dropdown, .menu-sub-sm-dropdown.menu.show, .menu-sub-sm-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-sm-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-sm-accordion, .menu-sub-sm-accordion.show {
+ display: flex;
+ }
+ .menu-sub-sm-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-sm-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-sm-inline {
+ display: flex;
+ }
+ .menu-sm-fit > .menu-item > .menu-content,
+.menu-sm-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-sm-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-sm-row {
+ flex-direction: row;
+ }
+ .menu-sm-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-sm-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sm-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-sm-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-sm-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (min-width: 768px) {
+ .menu-item.menu-md-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-md-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-md-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-md-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-md-dropdown, .menu-sub-md-dropdown.menu.show, .menu-sub-md-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-md-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-md-accordion, .menu-sub-md-accordion.show {
+ display: flex;
+ }
+ .menu-sub-md-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-md-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-md-inline {
+ display: flex;
+ }
+ .menu-md-fit > .menu-item > .menu-content,
+.menu-md-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-md-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-md-row {
+ flex-direction: row;
+ }
+ .menu-md-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-md-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-md-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-md-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-md-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (min-width: 992px) {
+ .menu-item.menu-lg-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-lg-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-lg-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-lg-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-lg-dropdown, .menu-sub-lg-dropdown.menu.show, .menu-sub-lg-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-lg-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-lg-accordion, .menu-sub-lg-accordion.show {
+ display: flex;
+ }
+ .menu-sub-lg-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-lg-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-lg-inline {
+ display: flex;
+ }
+ .menu-lg-fit > .menu-item > .menu-content,
+.menu-lg-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-lg-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-lg-row {
+ flex-direction: row;
+ }
+ .menu-lg-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-lg-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-lg-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-lg-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-lg-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (min-width: 1200px) {
+ .menu-item.menu-xl-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-xl-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-xl-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-xl-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-xl-dropdown, .menu-sub-xl-dropdown.menu.show, .menu-sub-xl-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-xl-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-xl-accordion, .menu-sub-xl-accordion.show {
+ display: flex;
+ }
+ .menu-sub-xl-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-xl-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-xl-inline {
+ display: flex;
+ }
+ .menu-xl-fit > .menu-item > .menu-content,
+.menu-xl-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-xl-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-xl-row {
+ flex-direction: row;
+ }
+ .menu-xl-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-xl-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-xl-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-xl-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-xl-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (min-width: 1400px) {
+ .menu-item.menu-xxl-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-xxl-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-xxl-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-xxl-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-xxl-dropdown, .menu-sub-xxl-dropdown.menu.show, .menu-sub-xxl-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-xxl-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-xxl-accordion, .menu-sub-xxl-accordion.show {
+ display: flex;
+ }
+ .menu-sub-xxl-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-xxl-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-xxl-inline {
+ display: flex;
+ }
+ .menu-xxl-fit > .menu-item > .menu-content,
+.menu-xxl-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-xxl-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-xxl-row {
+ flex-direction: row;
+ }
+ .menu-xxl-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-xxl-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-xxl-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-xxl-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-xxl-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (max-width: 575.98px) {
+ .menu-item.menu-sm-down-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-sm-down-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-sm-down-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-sm-down-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-sm-down-dropdown, .menu-sub-sm-down-dropdown.menu.show, .menu-sub-sm-down-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-sm-down-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-sm-down-accordion, .menu-sub-sm-down-accordion.show {
+ display: flex;
+ }
+ .menu-sub-sm-down-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-sm-down-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-sm-down-inline {
+ display: flex;
+ }
+ .menu-sm-down-fit > .menu-item > .menu-content,
+.menu-sm-down-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-sm-down-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-sm-down-row {
+ flex-direction: row;
+ }
+ .menu-sm-down-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-sm-down-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sm-down-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-sm-down-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-sm-down-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (max-width: 767.98px) {
+ .menu-item.menu-md-down-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-md-down-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-md-down-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-md-down-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-md-down-dropdown, .menu-sub-md-down-dropdown.menu.show, .menu-sub-md-down-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-md-down-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-md-down-accordion, .menu-sub-md-down-accordion.show {
+ display: flex;
+ }
+ .menu-sub-md-down-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-md-down-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-md-down-inline {
+ display: flex;
+ }
+ .menu-md-down-fit > .menu-item > .menu-content,
+.menu-md-down-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-md-down-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-md-down-row {
+ flex-direction: row;
+ }
+ .menu-md-down-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-md-down-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-md-down-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-md-down-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-md-down-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .menu-item.menu-lg-down-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-lg-down-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-lg-down-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-lg-down-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-lg-down-dropdown, .menu-sub-lg-down-dropdown.menu.show, .menu-sub-lg-down-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-lg-down-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-lg-down-accordion, .menu-sub-lg-down-accordion.show {
+ display: flex;
+ }
+ .menu-sub-lg-down-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-lg-down-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-lg-down-inline {
+ display: flex;
+ }
+ .menu-lg-down-fit > .menu-item > .menu-content,
+.menu-lg-down-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-lg-down-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-lg-down-row {
+ flex-direction: row;
+ }
+ .menu-lg-down-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-lg-down-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-lg-down-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-lg-down-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-lg-down-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (max-width: 1199.98px) {
+ .menu-item.menu-xl-down-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-xl-down-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-xl-down-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-xl-down-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-xl-down-dropdown, .menu-sub-xl-down-dropdown.menu.show, .menu-sub-xl-down-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-xl-down-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-xl-down-accordion, .menu-sub-xl-down-accordion.show {
+ display: flex;
+ }
+ .menu-sub-xl-down-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-xl-down-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-xl-down-inline {
+ display: flex;
+ }
+ .menu-xl-down-fit > .menu-item > .menu-content,
+.menu-xl-down-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-xl-down-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-xl-down-row {
+ flex-direction: row;
+ }
+ .menu-xl-down-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-xl-down-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-xl-down-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-xl-down-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-xl-down-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+@media (max-width: 1399.98px) {
+ .menu-item.menu-xxl-down-accordion .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-item.menu-xxl-down-accordion.showing:not(.menu-dropdown) > .menu-link .menu-arrow:after, .menu-item.menu-xxl-down-accordion.show:not(.hiding):not(.menu-dropdown) > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(90deg);
+ /*rtl:remove*/
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-sub-xxl-down-dropdown {
+ display: none;
+ border-radius: 0.475rem;
+ background-color: var(--bs-menu-dropdown-bg-color);
+ box-shadow: var(--bs-menu-dropdown-box-shadow);
+ z-index: 107;
+ }
+ .show.menu-dropdown > .menu-sub-xxl-down-dropdown, .menu-sub-xxl-down-dropdown.menu.show, .menu-sub-xxl-down-dropdown.show[data-popper-placement] {
+ display: flex;
+ will-change: transform;
+ animation: menu-sub-dropdown-animation-fade-in 0.3s ease 1, menu-sub-dropdown-animation-move-up 0.3s ease 1;
+ }
+ .menu-sub-xxl-down-accordion {
+ display: none;
+ }
+ .show:not(.menu-dropdown) > .menu-sub-xxl-down-accordion, .menu-sub-xxl-down-accordion.show {
+ display: flex;
+ }
+ .menu-sub-xxl-down-indention .menu-sub:not([data-popper-placement]) {
+ margin-left: 1rem;
+ }
+ .menu-sub-xxl-down-indention .menu-item .menu-item .menu-link.active {
+ margin-right: 1rem;
+ }
+ .menu-xxl-down-inline {
+ display: flex;
+ }
+ .menu-xxl-down-fit > .menu-item > .menu-content,
+.menu-xxl-down-fit > .menu-item > .menu-link {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ .menu-xxl-down-column {
+ flex-direction: column;
+ width: 100%;
+ }
+ .menu-xxl-down-row {
+ flex-direction: row;
+ }
+ .menu-xxl-down-row > .menu-item {
+ display: flex;
+ align-items: center;
+ }
+ .menu-xxl-down-row > .menu-item > .menu-link .menu-arrow:after {
+ /*rtl:ignore*/
+ transform: rotateZ(-90deg);
+ /*rtl:remove*/
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+ }
+ .menu-xxl-down-rounded .menu-link {
+ border-radius: 0.475rem;
+ }
+ .menu-xxl-down-pill .menu-link {
+ border-radius: 50px;
+ }
+ .menu-xxl-down-rounded-0 .menu-link {
+ border-radius: 0 !important;
+ }
+}
+.menu-link-indention .menu-item {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(1rem + 1rem);
+}
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(2rem + 1rem);
+}
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(3rem + 1rem);
+}
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(4rem + 1rem);
+}
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: 1rem;
+ padding-right: 0;
+}
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(2rem);
+ padding-right: 0;
+}
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(3rem);
+ padding-right: 0;
+}
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-item > .menu-link,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-content,
+.menu-link-indention.menu-fit .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-sub:not([data-popper-placement]) > .menu-inner > .menu-item > .menu-link {
+ padding-left: calc(4rem);
+ padding-right: 0;
+}
+
+@keyframes menu-sub-dropdown-animation-fade-in {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes menu-sub-dropdown-animation-move-up {
+ from {
+ margin-top: 0.75rem;
+ }
+ to {
+ margin-top: 0;
+ }
+}
+@keyframes menu-sub-dropdown-animation-move-down {
+ from {
+ margin-bottom: 0.75rem;
+ }
+ to {
+ margin-bottom: 0;
+ }
+}
+.menu-white .menu-item .menu-link {
+ color: var(--bs-white);
+}
+.menu-white .menu-item .menu-link .menu-title {
+ color: var(--bs-white);
+}
+.menu-white .menu-item .menu-link .menu-icon,
+.menu-white .menu-item .menu-link .menu-icon .svg-icon,
+.menu-white .menu-item .menu-link .menu-icon i {
+ color: var(--bs-white);
+}
+.menu-white .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-white);
+}
+.menu-white .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-white);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-white%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-white%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-white);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-white%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-white%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-white .menu-item .menu-link {
+ color: var(--bs-text-white);
+}
+.menu-title-white .menu-item .menu-link .menu-title {
+ color: var(--bs-text-white);
+}
+
+.menu-icon-white .menu-item .menu-link .menu-icon,
+.menu-icon-white .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-white .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-white);
+}
+
+.menu-bullet-white .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-white);
+}
+
+.menu-arrow-white .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-white);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-white%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-white%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-white);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-white%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-white%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-primary .menu-item .menu-link {
+ color: var(--bs-primary);
+}
+.menu-primary .menu-item .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-primary .menu-item .menu-link .menu-icon,
+.menu-primary .menu-item .menu-link .menu-icon .svg-icon,
+.menu-primary .menu-item .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-primary .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-primary .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-primary .menu-item .menu-link {
+ color: var(--bs-text-primary);
+}
+.menu-title-primary .menu-item .menu-link .menu-title {
+ color: var(--bs-text-primary);
+}
+
+.menu-icon-primary .menu-item .menu-link .menu-icon,
+.menu-icon-primary .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-primary .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-primary);
+}
+
+.menu-bullet-primary .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-primary);
+}
+
+.menu-arrow-primary .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-secondary .menu-item .menu-link {
+ color: var(--bs-secondary);
+}
+.menu-secondary .menu-item .menu-link .menu-title {
+ color: var(--bs-secondary);
+}
+.menu-secondary .menu-item .menu-link .menu-icon,
+.menu-secondary .menu-item .menu-link .menu-icon .svg-icon,
+.menu-secondary .menu-item .menu-link .menu-icon i {
+ color: var(--bs-secondary);
+}
+.menu-secondary .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-secondary);
+}
+.menu-secondary .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-secondary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-secondary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-secondary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-secondary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-secondary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-secondary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-secondary .menu-item .menu-link {
+ color: var(--bs-text-secondary);
+}
+.menu-title-secondary .menu-item .menu-link .menu-title {
+ color: var(--bs-text-secondary);
+}
+
+.menu-icon-secondary .menu-item .menu-link .menu-icon,
+.menu-icon-secondary .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-secondary .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-secondary);
+}
+
+.menu-bullet-secondary .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-secondary);
+}
+
+.menu-arrow-secondary .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-secondary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-secondary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-secondary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-secondary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-secondary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-secondary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-light .menu-item .menu-link {
+ color: var(--bs-light);
+}
+.menu-light .menu-item .menu-link .menu-title {
+ color: var(--bs-light);
+}
+.menu-light .menu-item .menu-link .menu-icon,
+.menu-light .menu-item .menu-link .menu-icon .svg-icon,
+.menu-light .menu-item .menu-link .menu-icon i {
+ color: var(--bs-light);
+}
+.menu-light .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-light);
+}
+.menu-light .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-light);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-light%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-light%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-light);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-light%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-light%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-light .menu-item .menu-link {
+ color: var(--bs-text-light);
+}
+.menu-title-light .menu-item .menu-link .menu-title {
+ color: var(--bs-text-light);
+}
+
+.menu-icon-light .menu-item .menu-link .menu-icon,
+.menu-icon-light .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-light .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-light);
+}
+
+.menu-bullet-light .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-light);
+}
+
+.menu-arrow-light .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-light);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-light%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-light%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-light);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-light%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-light%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-success .menu-item .menu-link {
+ color: var(--bs-success);
+}
+.menu-success .menu-item .menu-link .menu-title {
+ color: var(--bs-success);
+}
+.menu-success .menu-item .menu-link .menu-icon,
+.menu-success .menu-item .menu-link .menu-icon .svg-icon,
+.menu-success .menu-item .menu-link .menu-icon i {
+ color: var(--bs-success);
+}
+.menu-success .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-success);
+}
+.menu-success .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-success);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-success%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-success%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-success);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-success%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-success%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-success .menu-item .menu-link {
+ color: var(--bs-text-success);
+}
+.menu-title-success .menu-item .menu-link .menu-title {
+ color: var(--bs-text-success);
+}
+
+.menu-icon-success .menu-item .menu-link .menu-icon,
+.menu-icon-success .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-success .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-success);
+}
+
+.menu-bullet-success .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-success);
+}
+
+.menu-arrow-success .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-success);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-success%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-success%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-success);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-success%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-success%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-info .menu-item .menu-link {
+ color: var(--bs-info);
+}
+.menu-info .menu-item .menu-link .menu-title {
+ color: var(--bs-info);
+}
+.menu-info .menu-item .menu-link .menu-icon,
+.menu-info .menu-item .menu-link .menu-icon .svg-icon,
+.menu-info .menu-item .menu-link .menu-icon i {
+ color: var(--bs-info);
+}
+.menu-info .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-info);
+}
+.menu-info .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-info);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-info%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-info%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-info);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-info%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-info%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-info .menu-item .menu-link {
+ color: var(--bs-text-info);
+}
+.menu-title-info .menu-item .menu-link .menu-title {
+ color: var(--bs-text-info);
+}
+
+.menu-icon-info .menu-item .menu-link .menu-icon,
+.menu-icon-info .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-info .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-info);
+}
+
+.menu-bullet-info .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-info);
+}
+
+.menu-arrow-info .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-info);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-info%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-info%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-info);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-info%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-info%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-warning .menu-item .menu-link {
+ color: var(--bs-warning);
+}
+.menu-warning .menu-item .menu-link .menu-title {
+ color: var(--bs-warning);
+}
+.menu-warning .menu-item .menu-link .menu-icon,
+.menu-warning .menu-item .menu-link .menu-icon .svg-icon,
+.menu-warning .menu-item .menu-link .menu-icon i {
+ color: var(--bs-warning);
+}
+.menu-warning .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-warning);
+}
+.menu-warning .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-warning);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-warning%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-warning%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-warning);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-warning%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-warning%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-warning .menu-item .menu-link {
+ color: var(--bs-text-warning);
+}
+.menu-title-warning .menu-item .menu-link .menu-title {
+ color: var(--bs-text-warning);
+}
+
+.menu-icon-warning .menu-item .menu-link .menu-icon,
+.menu-icon-warning .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-warning .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-warning);
+}
+
+.menu-bullet-warning .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-warning);
+}
+
+.menu-arrow-warning .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-warning);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-warning%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-warning%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-warning);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-warning%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-warning%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-danger .menu-item .menu-link {
+ color: var(--bs-danger);
+}
+.menu-danger .menu-item .menu-link .menu-title {
+ color: var(--bs-danger);
+}
+.menu-danger .menu-item .menu-link .menu-icon,
+.menu-danger .menu-item .menu-link .menu-icon .svg-icon,
+.menu-danger .menu-item .menu-link .menu-icon i {
+ color: var(--bs-danger);
+}
+.menu-danger .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-danger);
+}
+.menu-danger .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-danger);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-danger%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-danger%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-danger);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-danger%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-danger%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-danger .menu-item .menu-link {
+ color: var(--bs-text-danger);
+}
+.menu-title-danger .menu-item .menu-link .menu-title {
+ color: var(--bs-text-danger);
+}
+
+.menu-icon-danger .menu-item .menu-link .menu-icon,
+.menu-icon-danger .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-danger .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-danger);
+}
+
+.menu-bullet-danger .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-danger);
+}
+
+.menu-arrow-danger .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-danger);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-danger%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-danger%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-danger);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-danger%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-danger%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-dark .menu-item .menu-link {
+ color: var(--bs-dark);
+}
+.menu-dark .menu-item .menu-link .menu-title {
+ color: var(--bs-dark);
+}
+.menu-dark .menu-item .menu-link .menu-icon,
+.menu-dark .menu-item .menu-link .menu-icon .svg-icon,
+.menu-dark .menu-item .menu-link .menu-icon i {
+ color: var(--bs-dark);
+}
+.menu-dark .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-dark);
+}
+.menu-dark .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-dark .menu-item .menu-link {
+ color: var(--bs-text-dark);
+}
+.menu-title-dark .menu-item .menu-link .menu-title {
+ color: var(--bs-text-dark);
+}
+
+.menu-icon-dark .menu-item .menu-link .menu-icon,
+.menu-icon-dark .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-dark .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-dark);
+}
+
+.menu-bullet-dark .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-dark);
+}
+
+.menu-arrow-dark .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-muted .menu-item .menu-link {
+ color: var(--bs-muted);
+}
+.menu-muted .menu-item .menu-link .menu-title {
+ color: var(--bs-muted);
+}
+.menu-muted .menu-item .menu-link .menu-icon,
+.menu-muted .menu-item .menu-link .menu-icon .svg-icon,
+.menu-muted .menu-item .menu-link .menu-icon i {
+ color: var(--bs-muted);
+}
+.menu-muted .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-muted);
+}
+.menu-muted .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-muted%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-muted%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-muted%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-muted%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-muted .menu-item .menu-link {
+ color: var(--bs-text-muted);
+}
+.menu-title-muted .menu-item .menu-link .menu-title {
+ color: var(--bs-text-muted);
+}
+
+.menu-icon-muted .menu-item .menu-link .menu-icon,
+.menu-icon-muted .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-muted .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-muted);
+}
+
+.menu-bullet-muted .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-muted);
+}
+
+.menu-arrow-muted .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-100 .menu-item .menu-link {
+ color: var(--bs-gray-100);
+}
+.menu-gray-100 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-100);
+}
+.menu-gray-100 .menu-item .menu-link .menu-icon,
+.menu-gray-100 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-100 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-100);
+}
+.menu-gray-100 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-100);
+}
+.menu-gray-100 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-100);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-100%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-100%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-100);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-100%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-100%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-100 .menu-item .menu-link {
+ color: var(--bs-text-gray-100);
+}
+.menu-title-gray-100 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-100);
+}
+
+.menu-icon-gray-100 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-100 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-100 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-100);
+}
+
+.menu-bullet-gray-100 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-100);
+}
+
+.menu-arrow-gray-100 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-100);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-100%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-100%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-100);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-100%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-100%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-200 .menu-item .menu-link {
+ color: var(--bs-gray-200);
+}
+.menu-gray-200 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-200);
+}
+.menu-gray-200 .menu-item .menu-link .menu-icon,
+.menu-gray-200 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-200 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-200);
+}
+.menu-gray-200 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-200);
+}
+.menu-gray-200 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-200);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-200%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-200%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-200);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-200%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-200%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-200 .menu-item .menu-link {
+ color: var(--bs-text-gray-200);
+}
+.menu-title-gray-200 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-200);
+}
+
+.menu-icon-gray-200 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-200 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-200 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-200);
+}
+
+.menu-bullet-gray-200 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-200);
+}
+
+.menu-arrow-gray-200 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-200);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-200%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-200%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-200);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-200%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-200%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-300 .menu-item .menu-link {
+ color: var(--bs-gray-300);
+}
+.menu-gray-300 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-300);
+}
+.menu-gray-300 .menu-item .menu-link .menu-icon,
+.menu-gray-300 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-300 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-300);
+}
+.menu-gray-300 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-300);
+}
+.menu-gray-300 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-300);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-300%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-300%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-300);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-300%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-300%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-300 .menu-item .menu-link {
+ color: var(--bs-text-gray-300);
+}
+.menu-title-gray-300 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-300);
+}
+
+.menu-icon-gray-300 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-300 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-300 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-300);
+}
+
+.menu-bullet-gray-300 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-300);
+}
+
+.menu-arrow-gray-300 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-300);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-300%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-300%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-300);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-300%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-300%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-400 .menu-item .menu-link {
+ color: var(--bs-gray-400);
+}
+.menu-gray-400 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-400);
+}
+.menu-gray-400 .menu-item .menu-link .menu-icon,
+.menu-gray-400 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-400 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-400);
+}
+.menu-gray-400 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-400);
+}
+.menu-gray-400 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-400);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-400%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-400%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-400);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-400%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-400%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-400 .menu-item .menu-link {
+ color: var(--bs-text-gray-400);
+}
+.menu-title-gray-400 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-400);
+}
+
+.menu-icon-gray-400 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-400 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-400 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-400);
+}
+
+.menu-bullet-gray-400 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-400);
+}
+
+.menu-arrow-gray-400 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-400);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-400%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-400%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-400);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-400%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-400%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-500 .menu-item .menu-link {
+ color: var(--bs-gray-500);
+}
+.menu-gray-500 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-500);
+}
+.menu-gray-500 .menu-item .menu-link .menu-icon,
+.menu-gray-500 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-500 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-500);
+}
+.menu-gray-500 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-500);
+}
+.menu-gray-500 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-500 .menu-item .menu-link {
+ color: var(--bs-text-gray-500);
+}
+.menu-title-gray-500 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-500);
+}
+
+.menu-icon-gray-500 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-500 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-500 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-500);
+}
+
+.menu-bullet-gray-500 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-500);
+}
+
+.menu-arrow-gray-500 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-600 .menu-item .menu-link {
+ color: var(--bs-gray-600);
+}
+.menu-gray-600 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-600);
+}
+.menu-gray-600 .menu-item .menu-link .menu-icon,
+.menu-gray-600 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-600 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-600);
+}
+.menu-gray-600 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-600);
+}
+.menu-gray-600 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-600);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-600%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-600%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-600);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-600%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-600%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-600 .menu-item .menu-link {
+ color: var(--bs-text-gray-600);
+}
+.menu-title-gray-600 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-600);
+}
+
+.menu-icon-gray-600 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-600 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-600 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-600);
+}
+
+.menu-bullet-gray-600 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-600);
+}
+
+.menu-arrow-gray-600 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-600);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-600%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-600%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-600);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-600%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-600%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-700 .menu-item .menu-link {
+ color: var(--bs-gray-700);
+}
+.menu-gray-700 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-700);
+}
+.menu-gray-700 .menu-item .menu-link .menu-icon,
+.menu-gray-700 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-700 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-700);
+}
+.menu-gray-700 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-700);
+}
+.menu-gray-700 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-700 .menu-item .menu-link {
+ color: var(--bs-text-gray-700);
+}
+.menu-title-gray-700 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-700);
+}
+
+.menu-icon-gray-700 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-700 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-700 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-700);
+}
+
+.menu-bullet-gray-700 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-700);
+}
+
+.menu-arrow-gray-700 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-800 .menu-item .menu-link {
+ color: var(--bs-gray-800);
+}
+.menu-gray-800 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-800);
+}
+.menu-gray-800 .menu-item .menu-link .menu-icon,
+.menu-gray-800 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-800 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-800);
+}
+.menu-gray-800 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-800);
+}
+.menu-gray-800 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-800);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-800%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-800%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-800);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-800%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-800%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-800 .menu-item .menu-link {
+ color: var(--bs-text-gray-800);
+}
+.menu-title-gray-800 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-800);
+}
+
+.menu-icon-gray-800 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-800 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-800 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-800);
+}
+
+.menu-bullet-gray-800 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-800);
+}
+
+.menu-arrow-gray-800 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-800);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-800%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-800%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-800);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-800%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-800%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-gray-900 .menu-item .menu-link {
+ color: var(--bs-gray-900);
+}
+.menu-gray-900 .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-900);
+}
+.menu-gray-900 .menu-item .menu-link .menu-icon,
+.menu-gray-900 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-gray-900 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-900);
+}
+.menu-gray-900 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-900);
+}
+.menu-gray-900 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-900);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-900%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-900%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-900);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-900%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-900%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-title-gray-900 .menu-item .menu-link {
+ color: var(--bs-text-gray-900);
+}
+.menu-title-gray-900 .menu-item .menu-link .menu-title {
+ color: var(--bs-text-gray-900);
+}
+
+.menu-icon-gray-900 .menu-item .menu-link .menu-icon,
+.menu-icon-gray-900 .menu-item .menu-link .menu-icon .svg-icon,
+.menu-icon-gray-900 .menu-item .menu-link .menu-icon i {
+ color: var(--bs-text-gray-900);
+}
+
+.menu-bullet-gray-900 .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-text-gray-900);
+}
+
+.menu-arrow-gray-900 .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-900);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-900%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-900%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-gray-900);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-900%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-gray-900%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-hover);
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-hover);
+}
+.menu-hover-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-hover-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-hover);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-hover);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-here-bg .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-here);
+ color: var(--bs-menu-link-color-here);
+}
+.menu-here-bg .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-here-bg .menu-item.here > .menu-link .menu-icon,
+.menu-here-bg .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-here-bg .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-here-bg .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-here);
+}
+.menu-here-bg .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-root-here-bg > .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-here);
+ color: var(--bs-menu-link-color-here);
+}
+.menu-root-here-bg > .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-root-here-bg > .menu-item.here > .menu-link .menu-icon,
+.menu-root-here-bg > .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-root-here-bg > .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-root-here-bg > .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-here);
+}
+.menu-root-here-bg > .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+@media (min-width: 992px) {
+ .menu-root-here-bg-desktop > .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-here);
+ color: var(--bs-menu-link-color-here);
+ }
+ .menu-root-here-bg-desktop > .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-here);
+ }
+ .menu-root-here-bg-desktop > .menu-item.here > .menu-link .menu-icon,
+.menu-root-here-bg-desktop > .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-root-here-bg-desktop > .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-here);
+ }
+ .menu-root-here-bg-desktop > .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-here);
+ }
+ .menu-root-here-bg-desktop > .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+}
+.menu-show-bg .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-show);
+ color: var(--bs-menu-link-color-show);
+}
+.menu-show-bg .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-show);
+}
+.menu-show-bg .menu-item.show > .menu-link .menu-icon,
+.menu-show-bg .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-show-bg .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-show);
+}
+.menu-show-bg .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-show);
+}
+.menu-show-bg .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-show);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-show);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-active-bg .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-active);
+ color: var(--bs-menu-link-color-active);
+}
+.menu-active-bg .menu-item .menu-link.active .menu-title {
+ color: var(--bs-menu-link-color-active);
+}
+.menu-active-bg .menu-item .menu-link.active .menu-icon,
+.menu-active-bg .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-active-bg .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-menu-link-color-active);
+}
+.menu-active-bg .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-active);
+}
+.menu-active-bg .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-active);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-active);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-hover);
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-hover);
+}
+.menu-state-bg .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-bg .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-hover);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-hover);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-here);
+ color: var(--bs-menu-link-color-here);
+}
+.menu-state-bg .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-state-bg .menu-item.here > .menu-link .menu-icon,
+.menu-state-bg .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-bg .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-state-bg .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-here);
+}
+.menu-state-bg .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-show);
+ color: var(--bs-menu-link-color-show);
+}
+.menu-state-bg .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-show);
+}
+.menu-state-bg .menu-item.show > .menu-link .menu-icon,
+.menu-state-bg .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-bg .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-show);
+}
+.menu-state-bg .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-show);
+}
+.menu-state-bg .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-show);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-show);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-active);
+ color: var(--bs-menu-link-color-active);
+}
+.menu-state-bg .menu-item .menu-link.active .menu-title {
+ color: var(--bs-menu-link-color-active);
+}
+.menu-state-bg .menu-item .menu-link.active .menu-icon,
+.menu-state-bg .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-bg .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-menu-link-color-active);
+}
+.menu-state-bg .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-active);
+}
+.menu-state-bg .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-active);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-active);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-menu-link-color-hover);
+}
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-hover);
+}
+.menu-state-color .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-color .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-hover);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-hover);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-hover%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-color .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-menu-link-color-here);
+}
+.menu-state-color .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-state-color .menu-item.here > .menu-link .menu-icon,
+.menu-state-color .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-color .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-here);
+}
+.menu-state-color .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-here);
+}
+.menu-state-color .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-here);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-here%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-color .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-menu-link-color-show);
+}
+.menu-state-color .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-menu-link-color-show);
+}
+.menu-state-color .menu-item.show > .menu-link .menu-icon,
+.menu-state-color .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-color .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-menu-link-color-show);
+}
+.menu-state-color .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-show);
+}
+.menu-state-color .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-show);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-show);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-show%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-color .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ color: var(--bs-menu-link-color-active);
+}
+.menu-state-color .menu-item .menu-link.active .menu-title {
+ color: var(--bs-menu-link-color-active);
+}
+.menu-state-color .menu-item .menu-link.active .menu-icon,
+.menu-state-color .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-color .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-menu-link-color-active);
+}
+.menu-state-color .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-menu-link-color-active);
+}
+.menu-state-color .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-active);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-menu-link-color-active);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-menu-link-color-active%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-hover-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-hover-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-show-bg-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-show-bg-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-show-bg-primary .menu-item.show > .menu-link .menu-icon,
+.menu-show-bg-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-show-bg-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-show-bg-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-show-bg-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-here-bg-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-here-bg-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-here-bg-primary .menu-item.here > .menu-link .menu-icon,
+.menu-here-bg-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-here-bg-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-here-bg-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-here-bg-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-active-bg-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-active-bg-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-active-bg-primary .menu-item .menu-link.active .menu-icon,
+.menu-active-bg-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-active-bg-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-active-bg-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-active-bg-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-bg-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-icon,
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.here > .menu-link .menu-icon,
+.menu-state-bg-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-bg-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item .menu-link.active .menu-icon,
+.menu-state-bg-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-bg-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary);
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-icon,
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+.menu-state-bg-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-show-bg-light-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-show-bg-light-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-show-bg-light-primary .menu-item.show > .menu-link .menu-icon,
+.menu-show-bg-light-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-show-bg-light-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-show-bg-light-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-show-bg-light-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-here-bg-light-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-here-bg-light-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-here-bg-light-primary .menu-item.here > .menu-link .menu-icon,
+.menu-here-bg-light-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-here-bg-light-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-here-bg-light-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-here-bg-light-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-hover-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-hover-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-active-bg-light-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-active-bg-light-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+.menu-active-bg-light-primary .menu-item .menu-link.active .menu-icon,
+.menu-active-bg-light-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-active-bg-light-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-active-bg-light-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-active-bg-light-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-bg-light-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.show > .menu-link .menu-icon,
+.menu-state-bg-light-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-bg-light-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-light-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.here > .menu-link .menu-icon,
+.menu-state-bg-light-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-bg-light-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-bg-light-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-bg-light-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-primary-light);
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item .menu-link.active .menu-icon,
+.menu-state-bg-light-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-bg-light-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bg-light-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-hover-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-hover-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-show-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-show-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-show-primary .menu-item.show > .menu-link .menu-icon,
+.menu-show-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-show-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-show-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-show-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-here-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-here-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-here-primary .menu-item.here > .menu-link .menu-icon,
+.menu-here-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-here-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-here-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-here-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-active-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-active-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+.menu-active-primary .menu-item .menu-link.active .menu-icon,
+.menu-active-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-active-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-active-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-active-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.show > .menu-link .menu-icon,
+.menu-state-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.here > .menu-link .menu-icon,
+.menu-state-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item .menu-link.active .menu-icon,
+.menu-state-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-dark .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-dark .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.show > .menu-link .menu-icon,
+.menu-state-dark .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-dark .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-dark .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.here > .menu-link .menu-icon,
+.menu-state-dark .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-dark .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-dark);
+}
+.menu-state-dark .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-dark .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item .menu-link.active .menu-title {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item .menu-link.active .menu-icon,
+.menu-state-dark .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-dark .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-dark);
+}
+.menu-state-dark .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-dark);
+}
+.menu-state-dark .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-dark);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-dark%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-hover-title-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-title-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-hover-title-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-hover-title-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+
+.menu-here-title-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-here-title-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+
+.menu-show-title-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-show-title-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+
+.menu-active-title-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-active-title-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+
+.menu-state-title-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-title-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .menu-state-title-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.menu-state-title-primary .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+
+.menu-hover-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+}
+.menu-hover-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-hover-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-hover-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-hover-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+
+.menu-here-icon-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-here-icon-primary .menu-item.here > .menu-link .menu-icon,
+.menu-here-icon-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-here-icon-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+
+.menu-show-icon-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-show-icon-primary .menu-item.show > .menu-link .menu-icon,
+.menu-show-icon-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-show-icon-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+
+.menu-active-icon-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+}
+.menu-active-icon-primary .menu-item .menu-link.active .menu-icon,
+.menu-active-icon-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-active-icon-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+
+.menu-state-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+}
+.menu-state-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-icon-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .menu-state-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.menu-state-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.menu-state-icon-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-icon-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-state-icon-primary .menu-item.here > .menu-link .menu-icon,
+.menu-state-icon-primary .menu-item.here > .menu-link .menu-icon .svg-icon,
+.menu-state-icon-primary .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-icon-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-state-icon-primary .menu-item.show > .menu-link .menu-icon,
+.menu-state-icon-primary .menu-item.show > .menu-link .menu-icon .svg-icon,
+.menu-state-icon-primary .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.menu-state-icon-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+}
+.menu-state-icon-primary .menu-item .menu-link.active .menu-icon,
+.menu-state-icon-primary .menu-item .menu-link.active .menu-icon .svg-icon,
+.menu-state-icon-primary .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+
+.menu-hover-bullet-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-bullet-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+}
+.menu-hover-bullet-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-hover-bullet-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+
+.menu-show-bullet-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-show-bullet-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+
+.menu-here-bullet-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-here-bullet-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+
+.menu-active-bullet-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+}
+.menu-active-bullet-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+
+.menu-state-bullet-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-bullet-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+}
+.menu-state-bullet-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .menu-state-bullet-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bullet-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-state-bullet-primary .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bullet-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-state-bullet-primary .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.menu-state-bullet-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+}
+.menu-state-bullet-primary .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+
+.menu-hover-arrow-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-hover-arrow-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+}
+.menu-hover-arrow-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-hover-arrow-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-here-arrow-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-here-arrow-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-show-arrow-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-show-arrow-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-active-arrow-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+}
+.menu-active-arrow-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.menu-state-arrow-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .menu-state-arrow-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+}
+.menu-state-arrow-primary .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .menu-state-arrow-primary .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-arrow-primary .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-state-arrow-primary .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-arrow-primary .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+}
+.menu-state-arrow-primary .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.menu-state-arrow-primary .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+}
+.menu-state-arrow-primary .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+.anchor {
+ display: flex;
+ align-items: center;
+}
+.anchor a {
+ position: relative;
+ display: none;
+ align-items: center;
+ justify-content: flex-start;
+ height: 1em;
+ width: 1.25em;
+ margin-left: -1.25em;
+ font-weight: 500;
+ font-size: 0.8em;
+ color: var(--bs-text-muted);
+ transition: all 0.2s ease-in-out;
+}
+.anchor a:before {
+ content: "#";
+}
+.anchor:hover a {
+ display: flex;
+}
+.anchor:hover a:hover {
+ color: var(--bs-primary);
+ transition: all 0.2s ease-in-out;
+}
+
+.card {
+ border: 0;
+}
+.card .card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: stretch;
+ flex-wrap: wrap;
+ min-height: 70px;
+ padding: 0 2.25rem;
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-bottom: var(--bs-border-width) solid var(--bs-card-border-color);
+}
+.card .card-header .card-title {
+ display: flex;
+ align-items: center;
+ margin: 0.5rem;
+ margin-left: 0;
+}
+.card .card-header .card-title.flex-column {
+ align-items: flex-start;
+ justify-content: center;
+}
+.card .card-header .card-title .card-icon {
+ margin-right: 0.75rem;
+ line-height: 0;
+}
+.card .card-header .card-title .card-icon i {
+ font-size: 1.25rem;
+ color: var(--bs-gray-600);
+ line-height: 0;
+}
+.card .card-header .card-title .card-icon i:after, .card .card-header .card-title .card-icon i:before {
+ line-height: 0;
+}
+.card .card-header .card-title .card-icon .svg-icon {
+ color: var(--bs-gray-600);
+}
+.card .card-header .card-title .card-icon .svg-icon svg {
+ height: 24px;
+ width: 24px;
+}
+.card .card-header .card-title,
+.card .card-header .card-title .card-label {
+ font-weight: 500;
+ font-size: 1.275rem;
+ color: var(--bs-text-dark);
+}
+.card .card-header .card-title .card-label {
+ margin: 0 0.75rem 0 0;
+ flex-wrap: wrap;
+}
+.card .card-header .card-title small, .card .card-header .card-title .small {
+ color: var(--bs-text-muted);
+ font-size: 1rem;
+}
+.card .card-header .card-title h1, .card .card-header .card-title .h1, .card .card-header .card-title h2, .card .card-header .card-title .h2, .card .card-header .card-title h3, .card .card-header .card-title .h3, .card .card-header .card-title h4, .card .card-header .card-title .h4, .card .card-header .card-title h5, .card .card-header .card-title .h5, .card .card-header .card-title h6, .card .card-header .card-title .h6 {
+ margin-bottom: 0;
+}
+.card .card-header .card-toolbar {
+ display: flex;
+ align-items: center;
+ margin: 0.5rem 0;
+ flex-wrap: wrap;
+}
+.card .card-body {
+ padding: 2rem 2.25rem;
+ color: var(--bs-card-color);
+}
+.card .card-footer {
+ padding: 2rem 2.25rem;
+ color: var(--bs-card-cap-color);
+ background-color: var(--bs-card-cap-bg);
+ border-top: var(--bs-border-width) solid var(--bs-card-border-color);
+}
+.card .card-scroll {
+ position: relative;
+ overflow: auto;
+}
+.card.card-px-0 .card-header,
+.card.card-px-0 .card-body,
+.card.card-px-0 .card-footer {
+ padding-left: 0;
+ padding-right: 0;
+}
+.card.card-py-0 .card-header,
+.card.card-py-0 .card-body,
+.card.card-py-0 .card-footer {
+ padding-top: 0;
+ padding-bottom: 0;
+}
+.card.card-p-0 .card-header,
+.card.card-p-0 .card-body,
+.card.card-p-0 .card-footer {
+ padding: 0;
+}
+.card.card-dashed {
+ box-shadow: none;
+ border: var(--bs-border-width) dashed var(--bs-card-border-dashed-color);
+}
+.card.card-dashed > .card-header {
+ border-bottom: 1px dashed var(--bs-card-border-dashed-color);
+}
+.card.card-dashed > .card-footer {
+ border-top: 1px dashed var(--bs-card-border-dashed-color);
+}
+.card.card-bordered {
+ box-shadow: none;
+ border: var(--bs-border-width) solid var(--bs-card-border-color);
+}
+.card.card-flush > .card-header {
+ border-bottom: 0 !important;
+}
+.card.card-flush > .card-footer {
+ border-top: 0 !important;
+}
+.card.card-shadow {
+ box-shadow: var(--bs-card-box-shadow);
+ border: 0;
+}
+.card.card-reset {
+ border: 0 !important;
+ box-shadow: none !important;
+ background-color: transparent !important;
+}
+.card.card-reset > .card-header {
+ border-bottom: 0 !important;
+}
+.card.card-reset > .card-footer {
+ border-top: 0 !important;
+}
+
+.card.card-stretch {
+ height: calc(100% - var(--bs-gutter-y));
+}
+.card.card-stretch-75 {
+ height: calc(75% - var(--bs-gutter-y));
+}
+.card.card-stretch-50 {
+ height: calc(50% - var(--bs-gutter-y));
+}
+.card.card-stretch-33 {
+ height: calc(33.333% - var(--bs-gutter-y));
+}
+.card.card-stretch-25 {
+ height: calc(25% - var(--bs-gutter-y));
+}
+.card .card-header-stretch {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ align-items: stretch;
+}
+.card .card-header-stretch .card-toolbar {
+ margin: 0;
+ align-items: stretch;
+}
+@media (min-width: 576px) {
+ .card.card-sm-stretch {
+ height: calc(100% - var(--bs-gutter-y));
+ }
+ .card.card-sm-stretch-75 {
+ height: calc(75% - var(--bs-gutter-y));
+ }
+ .card.card-sm-stretch-50 {
+ height: calc(50% - var(--bs-gutter-y));
+ }
+ .card.card-sm-stretch-33 {
+ height: calc(33.333% - var(--bs-gutter-y));
+ }
+ .card.card-sm-stretch-25 {
+ height: calc(25% - var(--bs-gutter-y));
+ }
+ .card .card-header-sm-stretch {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ align-items: stretch;
+ }
+ .card .card-header-sm-stretch .card-toolbar {
+ margin: 0;
+ align-items: stretch;
+ }
+}
+@media (min-width: 768px) {
+ .card.card-md-stretch {
+ height: calc(100% - var(--bs-gutter-y));
+ }
+ .card.card-md-stretch-75 {
+ height: calc(75% - var(--bs-gutter-y));
+ }
+ .card.card-md-stretch-50 {
+ height: calc(50% - var(--bs-gutter-y));
+ }
+ .card.card-md-stretch-33 {
+ height: calc(33.333% - var(--bs-gutter-y));
+ }
+ .card.card-md-stretch-25 {
+ height: calc(25% - var(--bs-gutter-y));
+ }
+ .card .card-header-md-stretch {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ align-items: stretch;
+ }
+ .card .card-header-md-stretch .card-toolbar {
+ margin: 0;
+ align-items: stretch;
+ }
+}
+@media (min-width: 992px) {
+ .card.card-lg-stretch {
+ height: calc(100% - var(--bs-gutter-y));
+ }
+ .card.card-lg-stretch-75 {
+ height: calc(75% - var(--bs-gutter-y));
+ }
+ .card.card-lg-stretch-50 {
+ height: calc(50% - var(--bs-gutter-y));
+ }
+ .card.card-lg-stretch-33 {
+ height: calc(33.333% - var(--bs-gutter-y));
+ }
+ .card.card-lg-stretch-25 {
+ height: calc(25% - var(--bs-gutter-y));
+ }
+ .card .card-header-lg-stretch {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ align-items: stretch;
+ }
+ .card .card-header-lg-stretch .card-toolbar {
+ margin: 0;
+ align-items: stretch;
+ }
+}
+@media (min-width: 1200px) {
+ .card.card-xl-stretch {
+ height: calc(100% - var(--bs-gutter-y));
+ }
+ .card.card-xl-stretch-75 {
+ height: calc(75% - var(--bs-gutter-y));
+ }
+ .card.card-xl-stretch-50 {
+ height: calc(50% - var(--bs-gutter-y));
+ }
+ .card.card-xl-stretch-33 {
+ height: calc(33.333% - var(--bs-gutter-y));
+ }
+ .card.card-xl-stretch-25 {
+ height: calc(25% - var(--bs-gutter-y));
+ }
+ .card .card-header-xl-stretch {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ align-items: stretch;
+ }
+ .card .card-header-xl-stretch .card-toolbar {
+ margin: 0;
+ align-items: stretch;
+ }
+}
+@media (min-width: 1400px) {
+ .card.card-xxl-stretch {
+ height: calc(100% - var(--bs-gutter-y));
+ }
+ .card.card-xxl-stretch-75 {
+ height: calc(75% - var(--bs-gutter-y));
+ }
+ .card.card-xxl-stretch-50 {
+ height: calc(50% - var(--bs-gutter-y));
+ }
+ .card.card-xxl-stretch-33 {
+ height: calc(33.333% - var(--bs-gutter-y));
+ }
+ .card.card-xxl-stretch-25 {
+ height: calc(25% - var(--bs-gutter-y));
+ }
+ .card .card-header-xxl-stretch {
+ padding-top: 0 !important;
+ padding-bottom: 0 !important;
+ align-items: stretch;
+ }
+ .card .card-header-xxl-stretch .card-toolbar {
+ margin: 0;
+ align-items: stretch;
+ }
+}
+
+.card-p {
+ padding: 2rem 2.25rem !important;
+}
+
+.card-px {
+ padding-left: 2.25rem !important;
+ padding-right: 2.25rem !important;
+}
+
+.card-shadow {
+ box-shadow: var(--bs-card-box-shadow);
+}
+
+.card-py {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important;
+}
+
+.card-rounded {
+ border-radius: 0.625rem;
+}
+
+.card-rounded-start {
+ border-top-left-radius: 0.625rem;
+ border-bottom-left-radius: 0.625rem;
+}
+
+.card-rounded-end {
+ border-top-right-radius: 0.625rem;
+ border-bottom-right-radius: 0.625rem;
+}
+
+.card-rounded-top {
+ border-top-left-radius: 0.625rem;
+ border-top-right-radius: 0.625rem;
+}
+
+.card-rounded-bottom {
+ border-bottom-left-radius: 0.625rem;
+ border-bottom-right-radius: 0.625rem;
+}
+
+@media (max-width: 767.98px) {
+ .card > .card-header:not(.flex-nowrap) {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+}
+[data-bs-theme=dark] .card {
+ --bs-card-box-shadow: ;
+}
+
+.breadcrumb {
+ display: flex;
+ align-items: center;
+ background-color: transparent;
+ padding: 0;
+ margin: 0;
+}
+.breadcrumb .breadcrumb-item {
+ display: flex;
+ align-items: center;
+ padding-left: 0.5rem;
+}
+.breadcrumb .breadcrumb-item:last-child {
+ padding-right: 0;
+}
+.breadcrumb .breadcrumb-item:after {
+ padding-left: 0.5rem;
+ content: "/";
+}
+.breadcrumb .breadcrumb-item:before {
+ display: none;
+}
+.breadcrumb .breadcrumb-item:first-child {
+ padding-left: 0;
+}
+.breadcrumb .breadcrumb-item:last-child:after {
+ display: none;
+}
+
+.breadcrumb-line .breadcrumb-item:after {
+ content: "-";
+}
+
+.breadcrumb-dot .breadcrumb-item:after {
+ content: "•";
+}
+
+.breadcrumb-separatorless .breadcrumb-item:after {
+ display: none;
+}
+
+.btn {
+ --bs-btn-color: var(--bs-body-color);
+ outline: none !important;
+}
+.btn:not(.btn-shadow):not(.shadow):not(.shadow-sm):not(.shadow-lg):not(.shadow-xs) {
+ box-shadow: none;
+}
+.btn:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush):not(.btn-icon) {
+ border: 0;
+ padding: calc(0.775rem + 1px) calc(1.5rem + 1px);
+}
+.btn:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush):not(.btn-icon).btn-lg, .btn-group-lg > .btn:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush):not(.btn-icon) {
+ padding: calc(0.825rem + 1px) calc(1.75rem + 1px);
+}
+.btn:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush):not(.btn-icon).btn-sm, .btn-group-sm > .btn:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush):not(.btn-icon) {
+ padding: calc(0.55rem + 1px) calc(1.25rem + 1px);
+}
+.btn.btn-link {
+ border: 0;
+ border-radius: 0;
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ text-decoration: none;
+ font-weight: 500;
+}
+.btn.btn-outline:not(.btn-outline-dashed) {
+ border: 1px solid var(--bs-gray-300);
+}
+.btn.btn-outline-dashed {
+ border: 1px dashed var(--bs-gray-300);
+}
+.btn.btn-flush {
+ appearance: none;
+ box-shadow: none;
+ border-radius: 0;
+ border: none;
+ cursor: pointer;
+ background-color: transparent;
+ outline: none !important;
+ margin: 0;
+ padding: 0;
+}
+.btn.btn-flex {
+ display: inline-flex;
+ align-items: center;
+}
+.btn.btn-trim-start {
+ justify-content: flex-start !important;
+ padding-left: 0 !important;
+}
+.btn.btn-trim-end {
+ justify-content: flex-end !important;
+ padding-right: 0 !important;
+}
+
+.btn-reset {
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ user-select: none;
+ outline: none;
+}
+
+.btn i {
+ display: inline-flex;
+ font-size: 1rem;
+ padding-right: 0.35rem;
+ vertical-align: middle;
+ line-height: 0;
+}
+.btn .svg-icon {
+ flex-shrink: 0;
+ line-height: 0;
+ margin-right: 0.5rem;
+}
+.btn.btn-icon {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0;
+ height: calc(1.5em + 1.55rem + 2px);
+ width: calc(1.5em + 1.55rem + 2px);
+}
+.btn.btn-icon:not(.btn-outline):not(.btn-dashed):not(.border-hover):not(.border-active):not(.btn-flush) {
+ border: 0;
+}
+.btn.btn-icon.btn-sm, .btn-group-sm > .btn.btn-icon {
+ height: calc(1.5em + 1.1rem + 2px);
+ width: calc(1.5em + 1.1rem + 2px);
+}
+.btn.btn-icon.btn-lg, .btn-group-lg > .btn.btn-icon {
+ height: calc(1.5em + 1.65rem + 2px);
+ width: calc(1.5em + 1.65rem + 2px);
+}
+.btn.btn-icon.btn-circle {
+ border-radius: 50%;
+}
+.btn.btn-icon i,
+.btn.btn-icon .svg-icon {
+ padding: 0;
+ margin: 0;
+ line-height: 1;
+}
+
+.btn.btn-outline.btn-outline-dashed {
+ border-width: 1px;
+ border-style: dashed;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-dashed, .btn-check:active + .btn.btn-outline.btn-outline-dashed, .btn.btn-outline.btn-outline-dashed:focus:not(.btn-active), .btn.btn-outline.btn-outline-dashed:hover:not(.btn-active), .btn.btn-outline.btn-outline-dashed:active:not(.btn-active), .btn.btn-outline.btn-outline-dashed.active, .btn.btn-outline.btn-outline-dashed.show, .show > .btn.btn-outline.btn-outline-dashed {
+ border-color: var(--bs-primary);
+}
+
+.btn.btn-white {
+ color: var(--bs-white-inverse);
+ border-color: var(--bs-white);
+ background-color: var(--bs-white);
+}
+.btn.btn-white i,
+.btn.btn-white .svg-icon {
+ color: var(--bs-white-inverse);
+}
+.btn.btn-white.dropdown-toggle:after {
+ color: var(--bs-white-inverse);
+}
+.btn-check:checked + .btn.btn-white, .btn-check:active + .btn.btn-white, .btn.btn-white:focus:not(.btn-active), .btn.btn-white:hover:not(.btn-active), .btn.btn-white:active:not(.btn-active), .btn.btn-white.active, .btn.btn-white.show, .show > .btn.btn-white {
+ color: var(--bs-white-inverse);
+ border-color: var(--bs-white-active);
+ background-color: var(--bs-white-active) !important;
+}
+.btn-check:checked + .btn.btn-white i,
+.btn-check:checked + .btn.btn-white .svg-icon, .btn-check:active + .btn.btn-white i,
+.btn-check:active + .btn.btn-white .svg-icon, .btn.btn-white:focus:not(.btn-active) i,
+.btn.btn-white:focus:not(.btn-active) .svg-icon, .btn.btn-white:hover:not(.btn-active) i,
+.btn.btn-white:hover:not(.btn-active) .svg-icon, .btn.btn-white:active:not(.btn-active) i,
+.btn.btn-white:active:not(.btn-active) .svg-icon, .btn.btn-white.active i,
+.btn.btn-white.active .svg-icon, .btn.btn-white.show i,
+.btn.btn-white.show .svg-icon, .show > .btn.btn-white i,
+.show > .btn.btn-white .svg-icon {
+ color: var(--bs-white-inverse);
+}
+.btn-check:checked + .btn.btn-white.dropdown-toggle:after, .btn-check:active + .btn.btn-white.dropdown-toggle:after, .btn.btn-white:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-white:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-white:active:not(.btn-active).dropdown-toggle:after, .btn.btn-white.active.dropdown-toggle:after, .btn.btn-white.show.dropdown-toggle:after, .show > .btn.btn-white.dropdown-toggle:after {
+ color: var(--bs-white-inverse);
+}
+
+.btn.btn-bg-white {
+ border-color: var(--bs-white);
+ background-color: var(--bs-white);
+}
+.btn-check:checked + .btn.btn-active-white, .btn-check:active + .btn.btn-active-white, .btn.btn-active-white:focus:not(.btn-active), .btn.btn-active-white:hover:not(.btn-active), .btn.btn-active-white:active:not(.btn-active), .btn.btn-active-white.active, .btn.btn-active-white.show, .show > .btn.btn-active-white {
+ color: var(--bs-white-inverse);
+ border-color: var(--bs-white);
+ background-color: var(--bs-white) !important;
+}
+.btn-check:checked + .btn.btn-active-white i,
+.btn-check:checked + .btn.btn-active-white .svg-icon, .btn-check:active + .btn.btn-active-white i,
+.btn-check:active + .btn.btn-active-white .svg-icon, .btn.btn-active-white:focus:not(.btn-active) i,
+.btn.btn-active-white:focus:not(.btn-active) .svg-icon, .btn.btn-active-white:hover:not(.btn-active) i,
+.btn.btn-active-white:hover:not(.btn-active) .svg-icon, .btn.btn-active-white:active:not(.btn-active) i,
+.btn.btn-active-white:active:not(.btn-active) .svg-icon, .btn.btn-active-white.active i,
+.btn.btn-active-white.active .svg-icon, .btn.btn-active-white.show i,
+.btn.btn-active-white.show .svg-icon, .show > .btn.btn-active-white i,
+.show > .btn.btn-active-white .svg-icon {
+ color: var(--bs-white-inverse);
+}
+.btn-check:checked + .btn.btn-active-white.dropdown-toggle:after, .btn-check:active + .btn.btn-active-white.dropdown-toggle:after, .btn.btn-active-white:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-white:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-white:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-white.active.dropdown-toggle:after, .btn.btn-active-white.show.dropdown-toggle:after, .show > .btn.btn-active-white.dropdown-toggle:after {
+ color: var(--bs-white-inverse);
+}
+
+.btn.btn-outline.btn-outline-white {
+ color: var(--bs-white);
+ border-color: var(--bs-white);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-white i,
+.btn.btn-outline.btn-outline-white .svg-icon {
+ color: var(--bs-white);
+}
+.btn.btn-outline.btn-outline-white.dropdown-toggle:after {
+ color: var(--bs-white);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-white, .btn-check:active + .btn.btn-outline.btn-outline-white, .btn.btn-outline.btn-outline-white:focus:not(.btn-active), .btn.btn-outline.btn-outline-white:hover:not(.btn-active), .btn.btn-outline.btn-outline-white:active:not(.btn-active), .btn.btn-outline.btn-outline-white.active, .btn.btn-outline.btn-outline-white.show, .show > .btn.btn-outline.btn-outline-white {
+ color: var(--bs-white-active);
+ border-color: var(--bs-white);
+ background-color: var(--bs-white-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-white i,
+.btn-check:checked + .btn.btn-outline.btn-outline-white .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-white i,
+.btn-check:active + .btn.btn-outline.btn-outline-white .svg-icon, .btn.btn-outline.btn-outline-white:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-white:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-white:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-white:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-white:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-white:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-white.active i,
+.btn.btn-outline.btn-outline-white.active .svg-icon, .btn.btn-outline.btn-outline-white.show i,
+.btn.btn-outline.btn-outline-white.show .svg-icon, .show > .btn.btn-outline.btn-outline-white i,
+.show > .btn.btn-outline.btn-outline-white .svg-icon {
+ color: var(--bs-white-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-white.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-white.dropdown-toggle:after, .btn.btn-outline.btn-outline-white:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-white:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-white:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-white.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-white.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-white.dropdown-toggle:after {
+ color: var(--bs-white-active);
+}
+
+.btn.btn-light {
+ color: var(--bs-light-inverse);
+ border-color: var(--bs-light);
+ background-color: var(--bs-light);
+}
+.btn.btn-light i,
+.btn.btn-light .svg-icon {
+ color: var(--bs-light-inverse);
+}
+.btn.btn-light.dropdown-toggle:after {
+ color: var(--bs-light-inverse);
+}
+.btn-check:checked + .btn.btn-light, .btn-check:active + .btn.btn-light, .btn.btn-light:focus:not(.btn-active), .btn.btn-light:hover:not(.btn-active), .btn.btn-light:active:not(.btn-active), .btn.btn-light.active, .btn.btn-light.show, .show > .btn.btn-light {
+ color: var(--bs-light-inverse);
+ border-color: var(--bs-light-active);
+ background-color: var(--bs-light-active) !important;
+}
+.btn-check:checked + .btn.btn-light i,
+.btn-check:checked + .btn.btn-light .svg-icon, .btn-check:active + .btn.btn-light i,
+.btn-check:active + .btn.btn-light .svg-icon, .btn.btn-light:focus:not(.btn-active) i,
+.btn.btn-light:focus:not(.btn-active) .svg-icon, .btn.btn-light:hover:not(.btn-active) i,
+.btn.btn-light:hover:not(.btn-active) .svg-icon, .btn.btn-light:active:not(.btn-active) i,
+.btn.btn-light:active:not(.btn-active) .svg-icon, .btn.btn-light.active i,
+.btn.btn-light.active .svg-icon, .btn.btn-light.show i,
+.btn.btn-light.show .svg-icon, .show > .btn.btn-light i,
+.show > .btn.btn-light .svg-icon {
+ color: var(--bs-light-inverse);
+}
+.btn-check:checked + .btn.btn-light.dropdown-toggle:after, .btn-check:active + .btn.btn-light.dropdown-toggle:after, .btn.btn-light:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light.active.dropdown-toggle:after, .btn.btn-light.show.dropdown-toggle:after, .show > .btn.btn-light.dropdown-toggle:after {
+ color: var(--bs-light-inverse);
+}
+
+.btn.btn-bg-light {
+ border-color: var(--bs-light);
+ background-color: var(--bs-light);
+}
+.btn-check:checked + .btn.btn-active-light, .btn-check:active + .btn.btn-active-light, .btn.btn-active-light:focus:not(.btn-active), .btn.btn-active-light:hover:not(.btn-active), .btn.btn-active-light:active:not(.btn-active), .btn.btn-active-light.active, .btn.btn-active-light.show, .show > .btn.btn-active-light {
+ color: var(--bs-light-inverse);
+ border-color: var(--bs-light);
+ background-color: var(--bs-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light i,
+.btn-check:checked + .btn.btn-active-light .svg-icon, .btn-check:active + .btn.btn-active-light i,
+.btn-check:active + .btn.btn-active-light .svg-icon, .btn.btn-active-light:focus:not(.btn-active) i,
+.btn.btn-active-light:focus:not(.btn-active) .svg-icon, .btn.btn-active-light:hover:not(.btn-active) i,
+.btn.btn-active-light:hover:not(.btn-active) .svg-icon, .btn.btn-active-light:active:not(.btn-active) i,
+.btn.btn-active-light:active:not(.btn-active) .svg-icon, .btn.btn-active-light.active i,
+.btn.btn-active-light.active .svg-icon, .btn.btn-active-light.show i,
+.btn.btn-active-light.show .svg-icon, .show > .btn.btn-active-light i,
+.show > .btn.btn-active-light .svg-icon {
+ color: var(--bs-light-inverse);
+}
+.btn-check:checked + .btn.btn-active-light.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light.dropdown-toggle:after, .btn.btn-active-light:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light.active.dropdown-toggle:after, .btn.btn-active-light.show.dropdown-toggle:after, .show > .btn.btn-active-light.dropdown-toggle:after {
+ color: var(--bs-light-inverse);
+}
+
+.btn.btn-outline.btn-outline-light {
+ color: var(--bs-light);
+ border-color: var(--bs-light);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-light i,
+.btn.btn-outline.btn-outline-light .svg-icon {
+ color: var(--bs-light);
+}
+.btn.btn-outline.btn-outline-light.dropdown-toggle:after {
+ color: var(--bs-light);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-light, .btn-check:active + .btn.btn-outline.btn-outline-light, .btn.btn-outline.btn-outline-light:focus:not(.btn-active), .btn.btn-outline.btn-outline-light:hover:not(.btn-active), .btn.btn-outline.btn-outline-light:active:not(.btn-active), .btn.btn-outline.btn-outline-light.active, .btn.btn-outline.btn-outline-light.show, .show > .btn.btn-outline.btn-outline-light {
+ color: var(--bs-light-active);
+ border-color: var(--bs-light);
+ background-color: var(--bs-light-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-light i,
+.btn-check:checked + .btn.btn-outline.btn-outline-light .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-light i,
+.btn-check:active + .btn.btn-outline.btn-outline-light .svg-icon, .btn.btn-outline.btn-outline-light:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-light:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-light:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-light:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-light:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-light:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-light.active i,
+.btn.btn-outline.btn-outline-light.active .svg-icon, .btn.btn-outline.btn-outline-light.show i,
+.btn.btn-outline.btn-outline-light.show .svg-icon, .show > .btn.btn-outline.btn-outline-light i,
+.show > .btn.btn-outline.btn-outline-light .svg-icon {
+ color: var(--bs-light-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-light.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-light.dropdown-toggle:after, .btn.btn-outline.btn-outline-light:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-light:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-light:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-light.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-light.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-light.dropdown-toggle:after {
+ color: var(--bs-light-active);
+}
+
+.btn.btn-primary {
+ color: var(--bs-primary-inverse);
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary);
+}
+.btn.btn-primary i,
+.btn.btn-primary .svg-icon {
+ color: var(--bs-primary-inverse);
+}
+.btn.btn-primary.dropdown-toggle:after {
+ color: var(--bs-primary-inverse);
+}
+.btn-check:checked + .btn.btn-primary, .btn-check:active + .btn.btn-primary, .btn.btn-primary:focus:not(.btn-active), .btn.btn-primary:hover:not(.btn-active), .btn.btn-primary:active:not(.btn-active), .btn.btn-primary.active, .btn.btn-primary.show, .show > .btn.btn-primary {
+ color: var(--bs-primary-inverse);
+ border-color: var(--bs-primary-active);
+ background-color: var(--bs-primary-active) !important;
+}
+.btn-check:checked + .btn.btn-primary i,
+.btn-check:checked + .btn.btn-primary .svg-icon, .btn-check:active + .btn.btn-primary i,
+.btn-check:active + .btn.btn-primary .svg-icon, .btn.btn-primary:focus:not(.btn-active) i,
+.btn.btn-primary:focus:not(.btn-active) .svg-icon, .btn.btn-primary:hover:not(.btn-active) i,
+.btn.btn-primary:hover:not(.btn-active) .svg-icon, .btn.btn-primary:active:not(.btn-active) i,
+.btn.btn-primary:active:not(.btn-active) .svg-icon, .btn.btn-primary.active i,
+.btn.btn-primary.active .svg-icon, .btn.btn-primary.show i,
+.btn.btn-primary.show .svg-icon, .show > .btn.btn-primary i,
+.show > .btn.btn-primary .svg-icon {
+ color: var(--bs-primary-inverse);
+}
+.btn-check:checked + .btn.btn-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-primary.dropdown-toggle:after, .btn.btn-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-primary.active.dropdown-toggle:after, .btn.btn-primary.show.dropdown-toggle:after, .show > .btn.btn-primary.dropdown-toggle:after {
+ color: var(--bs-primary-inverse);
+}
+
+.btn.btn-light-primary {
+ color: var(--bs-primary);
+ border-color: var(--bs-primary-light);
+ background-color: var(--bs-primary-light);
+}
+.btn.btn-light-primary i,
+.btn.btn-light-primary .svg-icon {
+ color: var(--bs-primary);
+}
+.btn.btn-light-primary.dropdown-toggle:after {
+ color: var(--bs-primary);
+}
+.btn-check:checked + .btn.btn-light-primary, .btn-check:active + .btn.btn-light-primary, .btn.btn-light-primary:focus:not(.btn-active), .btn.btn-light-primary:hover:not(.btn-active), .btn.btn-light-primary:active:not(.btn-active), .btn.btn-light-primary.active, .btn.btn-light-primary.show, .show > .btn.btn-light-primary {
+ color: var(--bs-primary-inverse);
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary) !important;
+}
+.btn-check:checked + .btn.btn-light-primary i,
+.btn-check:checked + .btn.btn-light-primary .svg-icon, .btn-check:active + .btn.btn-light-primary i,
+.btn-check:active + .btn.btn-light-primary .svg-icon, .btn.btn-light-primary:focus:not(.btn-active) i,
+.btn.btn-light-primary:focus:not(.btn-active) .svg-icon, .btn.btn-light-primary:hover:not(.btn-active) i,
+.btn.btn-light-primary:hover:not(.btn-active) .svg-icon, .btn.btn-light-primary:active:not(.btn-active) i,
+.btn.btn-light-primary:active:not(.btn-active) .svg-icon, .btn.btn-light-primary.active i,
+.btn.btn-light-primary.active .svg-icon, .btn.btn-light-primary.show i,
+.btn.btn-light-primary.show .svg-icon, .show > .btn.btn-light-primary i,
+.show > .btn.btn-light-primary .svg-icon {
+ color: var(--bs-primary-inverse);
+}
+.btn-check:checked + .btn.btn-light-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-light-primary.dropdown-toggle:after, .btn.btn-light-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-primary.active.dropdown-toggle:after, .btn.btn-light-primary.show.dropdown-toggle:after, .show > .btn.btn-light-primary.dropdown-toggle:after {
+ color: var(--bs-primary-inverse);
+}
+
+.btn.btn-bg-primary {
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary);
+}
+.btn-check:checked + .btn.btn-active-primary, .btn-check:active + .btn.btn-active-primary, .btn.btn-active-primary:focus:not(.btn-active), .btn.btn-active-primary:hover:not(.btn-active), .btn.btn-active-primary:active:not(.btn-active), .btn.btn-active-primary.active, .btn.btn-active-primary.show, .show > .btn.btn-active-primary {
+ color: var(--bs-primary-inverse);
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary) !important;
+}
+.btn-check:checked + .btn.btn-active-primary i,
+.btn-check:checked + .btn.btn-active-primary .svg-icon, .btn-check:active + .btn.btn-active-primary i,
+.btn-check:active + .btn.btn-active-primary .svg-icon, .btn.btn-active-primary:focus:not(.btn-active) i,
+.btn.btn-active-primary:focus:not(.btn-active) .svg-icon, .btn.btn-active-primary:hover:not(.btn-active) i,
+.btn.btn-active-primary:hover:not(.btn-active) .svg-icon, .btn.btn-active-primary:active:not(.btn-active) i,
+.btn.btn-active-primary:active:not(.btn-active) .svg-icon, .btn.btn-active-primary.active i,
+.btn.btn-active-primary.active .svg-icon, .btn.btn-active-primary.show i,
+.btn.btn-active-primary.show .svg-icon, .show > .btn.btn-active-primary i,
+.show > .btn.btn-active-primary .svg-icon {
+ color: var(--bs-primary-inverse);
+}
+.btn-check:checked + .btn.btn-active-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-primary.dropdown-toggle:after, .btn.btn-active-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-primary.active.dropdown-toggle:after, .btn.btn-active-primary.show.dropdown-toggle:after, .show > .btn.btn-active-primary.dropdown-toggle:after {
+ color: var(--bs-primary-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-primary, .btn-check:active + .btn.btn-active-light-primary, .btn.btn-active-light-primary:focus:not(.btn-active), .btn.btn-active-light-primary:hover:not(.btn-active), .btn.btn-active-light-primary:active:not(.btn-active), .btn.btn-active-light-primary.active, .btn.btn-active-light-primary.show, .show > .btn.btn-active-light-primary {
+ color: var(--bs-primary);
+ border-color: var(--bs-primary-light);
+ background-color: var(--bs-primary-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-primary i,
+.btn-check:checked + .btn.btn-active-light-primary .svg-icon, .btn-check:active + .btn.btn-active-light-primary i,
+.btn-check:active + .btn.btn-active-light-primary .svg-icon, .btn.btn-active-light-primary:focus:not(.btn-active) i,
+.btn.btn-active-light-primary:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-primary:hover:not(.btn-active) i,
+.btn.btn-active-light-primary:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-primary:active:not(.btn-active) i,
+.btn.btn-active-light-primary:active:not(.btn-active) .svg-icon, .btn.btn-active-light-primary.active i,
+.btn.btn-active-light-primary.active .svg-icon, .btn.btn-active-light-primary.show i,
+.btn.btn-active-light-primary.show .svg-icon, .show > .btn.btn-active-light-primary i,
+.show > .btn.btn-active-light-primary .svg-icon {
+ color: var(--bs-primary);
+}
+.btn-check:checked + .btn.btn-active-light-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-primary.dropdown-toggle:after, .btn.btn-active-light-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-primary.active.dropdown-toggle:after, .btn.btn-active-light-primary.show.dropdown-toggle:after, .show > .btn.btn-active-light-primary.dropdown-toggle:after {
+ color: var(--bs-primary);
+}
+
+.btn.btn-outline.btn-outline-primary {
+ color: var(--bs-primary);
+ border-color: var(--bs-primary);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-primary i,
+.btn.btn-outline.btn-outline-primary .svg-icon {
+ color: var(--bs-primary);
+}
+.btn.btn-outline.btn-outline-primary.dropdown-toggle:after {
+ color: var(--bs-primary);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-primary, .btn-check:active + .btn.btn-outline.btn-outline-primary, .btn.btn-outline.btn-outline-primary:focus:not(.btn-active), .btn.btn-outline.btn-outline-primary:hover:not(.btn-active), .btn.btn-outline.btn-outline-primary:active:not(.btn-active), .btn.btn-outline.btn-outline-primary.active, .btn.btn-outline.btn-outline-primary.show, .show > .btn.btn-outline.btn-outline-primary {
+ color: var(--bs-primary-active);
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-primary i,
+.btn-check:checked + .btn.btn-outline.btn-outline-primary .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-primary i,
+.btn-check:active + .btn.btn-outline.btn-outline-primary .svg-icon, .btn.btn-outline.btn-outline-primary:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-primary:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-primary:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-primary:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-primary:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-primary:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-primary.active i,
+.btn.btn-outline.btn-outline-primary.active .svg-icon, .btn.btn-outline.btn-outline-primary.show i,
+.btn.btn-outline.btn-outline-primary.show .svg-icon, .show > .btn.btn-outline.btn-outline-primary i,
+.show > .btn.btn-outline.btn-outline-primary .svg-icon {
+ color: var(--bs-primary-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-primary.dropdown-toggle:after, .btn.btn-outline.btn-outline-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-primary.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-primary.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-primary.dropdown-toggle:after {
+ color: var(--bs-primary-active);
+}
+
+.btn.btn-secondary {
+ color: var(--bs-secondary-inverse);
+ border-color: var(--bs-secondary);
+ background-color: var(--bs-secondary);
+}
+.btn.btn-secondary i,
+.btn.btn-secondary .svg-icon {
+ color: var(--bs-secondary-inverse);
+}
+.btn.btn-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary-inverse);
+}
+.btn-check:checked + .btn.btn-secondary, .btn-check:active + .btn.btn-secondary, .btn.btn-secondary:focus:not(.btn-active), .btn.btn-secondary:hover:not(.btn-active), .btn.btn-secondary:active:not(.btn-active), .btn.btn-secondary.active, .btn.btn-secondary.show, .show > .btn.btn-secondary {
+ color: var(--bs-secondary-inverse);
+ border-color: var(--bs-secondary-active);
+ background-color: var(--bs-secondary-active) !important;
+}
+.btn-check:checked + .btn.btn-secondary i,
+.btn-check:checked + .btn.btn-secondary .svg-icon, .btn-check:active + .btn.btn-secondary i,
+.btn-check:active + .btn.btn-secondary .svg-icon, .btn.btn-secondary:focus:not(.btn-active) i,
+.btn.btn-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-secondary:hover:not(.btn-active) i,
+.btn.btn-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-secondary:active:not(.btn-active) i,
+.btn.btn-secondary:active:not(.btn-active) .svg-icon, .btn.btn-secondary.active i,
+.btn.btn-secondary.active .svg-icon, .btn.btn-secondary.show i,
+.btn.btn-secondary.show .svg-icon, .show > .btn.btn-secondary i,
+.show > .btn.btn-secondary .svg-icon {
+ color: var(--bs-secondary-inverse);
+}
+.btn-check:checked + .btn.btn-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-secondary.dropdown-toggle:after, .btn.btn-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-secondary.active.dropdown-toggle:after, .btn.btn-secondary.show.dropdown-toggle:after, .show > .btn.btn-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary-inverse);
+}
+
+.btn.btn-light-secondary {
+ color: var(--bs-secondary);
+ border-color: var(--bs-secondary-light);
+ background-color: var(--bs-secondary-light);
+}
+.btn.btn-light-secondary i,
+.btn.btn-light-secondary .svg-icon {
+ color: var(--bs-secondary);
+}
+.btn.btn-light-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary);
+}
+.btn-check:checked + .btn.btn-light-secondary, .btn-check:active + .btn.btn-light-secondary, .btn.btn-light-secondary:focus:not(.btn-active), .btn.btn-light-secondary:hover:not(.btn-active), .btn.btn-light-secondary:active:not(.btn-active), .btn.btn-light-secondary.active, .btn.btn-light-secondary.show, .show > .btn.btn-light-secondary {
+ color: var(--bs-secondary-inverse);
+ border-color: var(--bs-secondary);
+ background-color: var(--bs-secondary) !important;
+}
+.btn-check:checked + .btn.btn-light-secondary i,
+.btn-check:checked + .btn.btn-light-secondary .svg-icon, .btn-check:active + .btn.btn-light-secondary i,
+.btn-check:active + .btn.btn-light-secondary .svg-icon, .btn.btn-light-secondary:focus:not(.btn-active) i,
+.btn.btn-light-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-light-secondary:hover:not(.btn-active) i,
+.btn.btn-light-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-light-secondary:active:not(.btn-active) i,
+.btn.btn-light-secondary:active:not(.btn-active) .svg-icon, .btn.btn-light-secondary.active i,
+.btn.btn-light-secondary.active .svg-icon, .btn.btn-light-secondary.show i,
+.btn.btn-light-secondary.show .svg-icon, .show > .btn.btn-light-secondary i,
+.show > .btn.btn-light-secondary .svg-icon {
+ color: var(--bs-secondary-inverse);
+}
+.btn-check:checked + .btn.btn-light-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-light-secondary.dropdown-toggle:after, .btn.btn-light-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-secondary.active.dropdown-toggle:after, .btn.btn-light-secondary.show.dropdown-toggle:after, .show > .btn.btn-light-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary-inverse);
+}
+
+.btn.btn-bg-secondary {
+ border-color: var(--bs-secondary);
+ background-color: var(--bs-secondary);
+}
+.btn-check:checked + .btn.btn-active-secondary, .btn-check:active + .btn.btn-active-secondary, .btn.btn-active-secondary:focus:not(.btn-active), .btn.btn-active-secondary:hover:not(.btn-active), .btn.btn-active-secondary:active:not(.btn-active), .btn.btn-active-secondary.active, .btn.btn-active-secondary.show, .show > .btn.btn-active-secondary {
+ color: var(--bs-secondary-inverse);
+ border-color: var(--bs-secondary);
+ background-color: var(--bs-secondary) !important;
+}
+.btn-check:checked + .btn.btn-active-secondary i,
+.btn-check:checked + .btn.btn-active-secondary .svg-icon, .btn-check:active + .btn.btn-active-secondary i,
+.btn-check:active + .btn.btn-active-secondary .svg-icon, .btn.btn-active-secondary:focus:not(.btn-active) i,
+.btn.btn-active-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-active-secondary:hover:not(.btn-active) i,
+.btn.btn-active-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-active-secondary:active:not(.btn-active) i,
+.btn.btn-active-secondary:active:not(.btn-active) .svg-icon, .btn.btn-active-secondary.active i,
+.btn.btn-active-secondary.active .svg-icon, .btn.btn-active-secondary.show i,
+.btn.btn-active-secondary.show .svg-icon, .show > .btn.btn-active-secondary i,
+.show > .btn.btn-active-secondary .svg-icon {
+ color: var(--bs-secondary-inverse);
+}
+.btn-check:checked + .btn.btn-active-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-secondary.dropdown-toggle:after, .btn.btn-active-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-secondary.active.dropdown-toggle:after, .btn.btn-active-secondary.show.dropdown-toggle:after, .show > .btn.btn-active-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-secondary, .btn-check:active + .btn.btn-active-light-secondary, .btn.btn-active-light-secondary:focus:not(.btn-active), .btn.btn-active-light-secondary:hover:not(.btn-active), .btn.btn-active-light-secondary:active:not(.btn-active), .btn.btn-active-light-secondary.active, .btn.btn-active-light-secondary.show, .show > .btn.btn-active-light-secondary {
+ color: var(--bs-secondary);
+ border-color: var(--bs-secondary-light);
+ background-color: var(--bs-secondary-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-secondary i,
+.btn-check:checked + .btn.btn-active-light-secondary .svg-icon, .btn-check:active + .btn.btn-active-light-secondary i,
+.btn-check:active + .btn.btn-active-light-secondary .svg-icon, .btn.btn-active-light-secondary:focus:not(.btn-active) i,
+.btn.btn-active-light-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-secondary:hover:not(.btn-active) i,
+.btn.btn-active-light-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-secondary:active:not(.btn-active) i,
+.btn.btn-active-light-secondary:active:not(.btn-active) .svg-icon, .btn.btn-active-light-secondary.active i,
+.btn.btn-active-light-secondary.active .svg-icon, .btn.btn-active-light-secondary.show i,
+.btn.btn-active-light-secondary.show .svg-icon, .show > .btn.btn-active-light-secondary i,
+.show > .btn.btn-active-light-secondary .svg-icon {
+ color: var(--bs-secondary);
+}
+.btn-check:checked + .btn.btn-active-light-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-secondary.dropdown-toggle:after, .btn.btn-active-light-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-secondary.active.dropdown-toggle:after, .btn.btn-active-light-secondary.show.dropdown-toggle:after, .show > .btn.btn-active-light-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary);
+}
+
+.btn.btn-outline.btn-outline-secondary {
+ color: var(--bs-secondary);
+ border-color: var(--bs-secondary);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-secondary i,
+.btn.btn-outline.btn-outline-secondary .svg-icon {
+ color: var(--bs-secondary);
+}
+.btn.btn-outline.btn-outline-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-secondary, .btn-check:active + .btn.btn-outline.btn-outline-secondary, .btn.btn-outline.btn-outline-secondary:focus:not(.btn-active), .btn.btn-outline.btn-outline-secondary:hover:not(.btn-active), .btn.btn-outline.btn-outline-secondary:active:not(.btn-active), .btn.btn-outline.btn-outline-secondary.active, .btn.btn-outline.btn-outline-secondary.show, .show > .btn.btn-outline.btn-outline-secondary {
+ color: var(--bs-secondary-active);
+ border-color: var(--bs-secondary);
+ background-color: var(--bs-secondary-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-secondary i,
+.btn-check:checked + .btn.btn-outline.btn-outline-secondary .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-secondary i,
+.btn-check:active + .btn.btn-outline.btn-outline-secondary .svg-icon, .btn.btn-outline.btn-outline-secondary:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-secondary:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-secondary:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-secondary:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-secondary.active i,
+.btn.btn-outline.btn-outline-secondary.active .svg-icon, .btn.btn-outline.btn-outline-secondary.show i,
+.btn.btn-outline.btn-outline-secondary.show .svg-icon, .show > .btn.btn-outline.btn-outline-secondary i,
+.show > .btn.btn-outline.btn-outline-secondary .svg-icon {
+ color: var(--bs-secondary-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-secondary.dropdown-toggle:after, .btn.btn-outline.btn-outline-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-secondary.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-secondary.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-secondary.dropdown-toggle:after {
+ color: var(--bs-secondary-active);
+}
+
+.btn.btn-success {
+ color: var(--bs-success-inverse);
+ border-color: var(--bs-success);
+ background-color: var(--bs-success);
+}
+.btn.btn-success i,
+.btn.btn-success .svg-icon {
+ color: var(--bs-success-inverse);
+}
+.btn.btn-success.dropdown-toggle:after {
+ color: var(--bs-success-inverse);
+}
+.btn-check:checked + .btn.btn-success, .btn-check:active + .btn.btn-success, .btn.btn-success:focus:not(.btn-active), .btn.btn-success:hover:not(.btn-active), .btn.btn-success:active:not(.btn-active), .btn.btn-success.active, .btn.btn-success.show, .show > .btn.btn-success {
+ color: var(--bs-success-inverse);
+ border-color: var(--bs-success-active);
+ background-color: var(--bs-success-active) !important;
+}
+.btn-check:checked + .btn.btn-success i,
+.btn-check:checked + .btn.btn-success .svg-icon, .btn-check:active + .btn.btn-success i,
+.btn-check:active + .btn.btn-success .svg-icon, .btn.btn-success:focus:not(.btn-active) i,
+.btn.btn-success:focus:not(.btn-active) .svg-icon, .btn.btn-success:hover:not(.btn-active) i,
+.btn.btn-success:hover:not(.btn-active) .svg-icon, .btn.btn-success:active:not(.btn-active) i,
+.btn.btn-success:active:not(.btn-active) .svg-icon, .btn.btn-success.active i,
+.btn.btn-success.active .svg-icon, .btn.btn-success.show i,
+.btn.btn-success.show .svg-icon, .show > .btn.btn-success i,
+.show > .btn.btn-success .svg-icon {
+ color: var(--bs-success-inverse);
+}
+.btn-check:checked + .btn.btn-success.dropdown-toggle:after, .btn-check:active + .btn.btn-success.dropdown-toggle:after, .btn.btn-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-success.active.dropdown-toggle:after, .btn.btn-success.show.dropdown-toggle:after, .show > .btn.btn-success.dropdown-toggle:after {
+ color: var(--bs-success-inverse);
+}
+
+.btn.btn-light-success {
+ color: var(--bs-success);
+ border-color: var(--bs-success-light);
+ background-color: var(--bs-success-light);
+}
+.btn.btn-light-success i,
+.btn.btn-light-success .svg-icon {
+ color: var(--bs-success);
+}
+.btn.btn-light-success.dropdown-toggle:after {
+ color: var(--bs-success);
+}
+.btn-check:checked + .btn.btn-light-success, .btn-check:active + .btn.btn-light-success, .btn.btn-light-success:focus:not(.btn-active), .btn.btn-light-success:hover:not(.btn-active), .btn.btn-light-success:active:not(.btn-active), .btn.btn-light-success.active, .btn.btn-light-success.show, .show > .btn.btn-light-success {
+ color: var(--bs-success-inverse);
+ border-color: var(--bs-success);
+ background-color: var(--bs-success) !important;
+}
+.btn-check:checked + .btn.btn-light-success i,
+.btn-check:checked + .btn.btn-light-success .svg-icon, .btn-check:active + .btn.btn-light-success i,
+.btn-check:active + .btn.btn-light-success .svg-icon, .btn.btn-light-success:focus:not(.btn-active) i,
+.btn.btn-light-success:focus:not(.btn-active) .svg-icon, .btn.btn-light-success:hover:not(.btn-active) i,
+.btn.btn-light-success:hover:not(.btn-active) .svg-icon, .btn.btn-light-success:active:not(.btn-active) i,
+.btn.btn-light-success:active:not(.btn-active) .svg-icon, .btn.btn-light-success.active i,
+.btn.btn-light-success.active .svg-icon, .btn.btn-light-success.show i,
+.btn.btn-light-success.show .svg-icon, .show > .btn.btn-light-success i,
+.show > .btn.btn-light-success .svg-icon {
+ color: var(--bs-success-inverse);
+}
+.btn-check:checked + .btn.btn-light-success.dropdown-toggle:after, .btn-check:active + .btn.btn-light-success.dropdown-toggle:after, .btn.btn-light-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-success.active.dropdown-toggle:after, .btn.btn-light-success.show.dropdown-toggle:after, .show > .btn.btn-light-success.dropdown-toggle:after {
+ color: var(--bs-success-inverse);
+}
+
+.btn.btn-bg-success {
+ border-color: var(--bs-success);
+ background-color: var(--bs-success);
+}
+.btn-check:checked + .btn.btn-active-success, .btn-check:active + .btn.btn-active-success, .btn.btn-active-success:focus:not(.btn-active), .btn.btn-active-success:hover:not(.btn-active), .btn.btn-active-success:active:not(.btn-active), .btn.btn-active-success.active, .btn.btn-active-success.show, .show > .btn.btn-active-success {
+ color: var(--bs-success-inverse);
+ border-color: var(--bs-success);
+ background-color: var(--bs-success) !important;
+}
+.btn-check:checked + .btn.btn-active-success i,
+.btn-check:checked + .btn.btn-active-success .svg-icon, .btn-check:active + .btn.btn-active-success i,
+.btn-check:active + .btn.btn-active-success .svg-icon, .btn.btn-active-success:focus:not(.btn-active) i,
+.btn.btn-active-success:focus:not(.btn-active) .svg-icon, .btn.btn-active-success:hover:not(.btn-active) i,
+.btn.btn-active-success:hover:not(.btn-active) .svg-icon, .btn.btn-active-success:active:not(.btn-active) i,
+.btn.btn-active-success:active:not(.btn-active) .svg-icon, .btn.btn-active-success.active i,
+.btn.btn-active-success.active .svg-icon, .btn.btn-active-success.show i,
+.btn.btn-active-success.show .svg-icon, .show > .btn.btn-active-success i,
+.show > .btn.btn-active-success .svg-icon {
+ color: var(--bs-success-inverse);
+}
+.btn-check:checked + .btn.btn-active-success.dropdown-toggle:after, .btn-check:active + .btn.btn-active-success.dropdown-toggle:after, .btn.btn-active-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-success.active.dropdown-toggle:after, .btn.btn-active-success.show.dropdown-toggle:after, .show > .btn.btn-active-success.dropdown-toggle:after {
+ color: var(--bs-success-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-success, .btn-check:active + .btn.btn-active-light-success, .btn.btn-active-light-success:focus:not(.btn-active), .btn.btn-active-light-success:hover:not(.btn-active), .btn.btn-active-light-success:active:not(.btn-active), .btn.btn-active-light-success.active, .btn.btn-active-light-success.show, .show > .btn.btn-active-light-success {
+ color: var(--bs-success);
+ border-color: var(--bs-success-light);
+ background-color: var(--bs-success-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-success i,
+.btn-check:checked + .btn.btn-active-light-success .svg-icon, .btn-check:active + .btn.btn-active-light-success i,
+.btn-check:active + .btn.btn-active-light-success .svg-icon, .btn.btn-active-light-success:focus:not(.btn-active) i,
+.btn.btn-active-light-success:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-success:hover:not(.btn-active) i,
+.btn.btn-active-light-success:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-success:active:not(.btn-active) i,
+.btn.btn-active-light-success:active:not(.btn-active) .svg-icon, .btn.btn-active-light-success.active i,
+.btn.btn-active-light-success.active .svg-icon, .btn.btn-active-light-success.show i,
+.btn.btn-active-light-success.show .svg-icon, .show > .btn.btn-active-light-success i,
+.show > .btn.btn-active-light-success .svg-icon {
+ color: var(--bs-success);
+}
+.btn-check:checked + .btn.btn-active-light-success.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-success.dropdown-toggle:after, .btn.btn-active-light-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-success.active.dropdown-toggle:after, .btn.btn-active-light-success.show.dropdown-toggle:after, .show > .btn.btn-active-light-success.dropdown-toggle:after {
+ color: var(--bs-success);
+}
+
+.btn.btn-outline.btn-outline-success {
+ color: var(--bs-success);
+ border-color: var(--bs-success);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-success i,
+.btn.btn-outline.btn-outline-success .svg-icon {
+ color: var(--bs-success);
+}
+.btn.btn-outline.btn-outline-success.dropdown-toggle:after {
+ color: var(--bs-success);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-success, .btn-check:active + .btn.btn-outline.btn-outline-success, .btn.btn-outline.btn-outline-success:focus:not(.btn-active), .btn.btn-outline.btn-outline-success:hover:not(.btn-active), .btn.btn-outline.btn-outline-success:active:not(.btn-active), .btn.btn-outline.btn-outline-success.active, .btn.btn-outline.btn-outline-success.show, .show > .btn.btn-outline.btn-outline-success {
+ color: var(--bs-success-active);
+ border-color: var(--bs-success);
+ background-color: var(--bs-success-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-success i,
+.btn-check:checked + .btn.btn-outline.btn-outline-success .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-success i,
+.btn-check:active + .btn.btn-outline.btn-outline-success .svg-icon, .btn.btn-outline.btn-outline-success:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-success:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-success:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-success:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-success:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-success:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-success.active i,
+.btn.btn-outline.btn-outline-success.active .svg-icon, .btn.btn-outline.btn-outline-success.show i,
+.btn.btn-outline.btn-outline-success.show .svg-icon, .show > .btn.btn-outline.btn-outline-success i,
+.show > .btn.btn-outline.btn-outline-success .svg-icon {
+ color: var(--bs-success-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-success.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-success.dropdown-toggle:after, .btn.btn-outline.btn-outline-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-success.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-success.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-success.dropdown-toggle:after {
+ color: var(--bs-success-active);
+}
+
+.btn.btn-info {
+ color: var(--bs-info-inverse);
+ border-color: var(--bs-info);
+ background-color: var(--bs-info);
+}
+.btn.btn-info i,
+.btn.btn-info .svg-icon {
+ color: var(--bs-info-inverse);
+}
+.btn.btn-info.dropdown-toggle:after {
+ color: var(--bs-info-inverse);
+}
+.btn-check:checked + .btn.btn-info, .btn-check:active + .btn.btn-info, .btn.btn-info:focus:not(.btn-active), .btn.btn-info:hover:not(.btn-active), .btn.btn-info:active:not(.btn-active), .btn.btn-info.active, .btn.btn-info.show, .show > .btn.btn-info {
+ color: var(--bs-info-inverse);
+ border-color: var(--bs-info-active);
+ background-color: var(--bs-info-active) !important;
+}
+.btn-check:checked + .btn.btn-info i,
+.btn-check:checked + .btn.btn-info .svg-icon, .btn-check:active + .btn.btn-info i,
+.btn-check:active + .btn.btn-info .svg-icon, .btn.btn-info:focus:not(.btn-active) i,
+.btn.btn-info:focus:not(.btn-active) .svg-icon, .btn.btn-info:hover:not(.btn-active) i,
+.btn.btn-info:hover:not(.btn-active) .svg-icon, .btn.btn-info:active:not(.btn-active) i,
+.btn.btn-info:active:not(.btn-active) .svg-icon, .btn.btn-info.active i,
+.btn.btn-info.active .svg-icon, .btn.btn-info.show i,
+.btn.btn-info.show .svg-icon, .show > .btn.btn-info i,
+.show > .btn.btn-info .svg-icon {
+ color: var(--bs-info-inverse);
+}
+.btn-check:checked + .btn.btn-info.dropdown-toggle:after, .btn-check:active + .btn.btn-info.dropdown-toggle:after, .btn.btn-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-info.active.dropdown-toggle:after, .btn.btn-info.show.dropdown-toggle:after, .show > .btn.btn-info.dropdown-toggle:after {
+ color: var(--bs-info-inverse);
+}
+
+.btn.btn-light-info {
+ color: var(--bs-info);
+ border-color: var(--bs-info-light);
+ background-color: var(--bs-info-light);
+}
+.btn.btn-light-info i,
+.btn.btn-light-info .svg-icon {
+ color: var(--bs-info);
+}
+.btn.btn-light-info.dropdown-toggle:after {
+ color: var(--bs-info);
+}
+.btn-check:checked + .btn.btn-light-info, .btn-check:active + .btn.btn-light-info, .btn.btn-light-info:focus:not(.btn-active), .btn.btn-light-info:hover:not(.btn-active), .btn.btn-light-info:active:not(.btn-active), .btn.btn-light-info.active, .btn.btn-light-info.show, .show > .btn.btn-light-info {
+ color: var(--bs-info-inverse);
+ border-color: var(--bs-info);
+ background-color: var(--bs-info) !important;
+}
+.btn-check:checked + .btn.btn-light-info i,
+.btn-check:checked + .btn.btn-light-info .svg-icon, .btn-check:active + .btn.btn-light-info i,
+.btn-check:active + .btn.btn-light-info .svg-icon, .btn.btn-light-info:focus:not(.btn-active) i,
+.btn.btn-light-info:focus:not(.btn-active) .svg-icon, .btn.btn-light-info:hover:not(.btn-active) i,
+.btn.btn-light-info:hover:not(.btn-active) .svg-icon, .btn.btn-light-info:active:not(.btn-active) i,
+.btn.btn-light-info:active:not(.btn-active) .svg-icon, .btn.btn-light-info.active i,
+.btn.btn-light-info.active .svg-icon, .btn.btn-light-info.show i,
+.btn.btn-light-info.show .svg-icon, .show > .btn.btn-light-info i,
+.show > .btn.btn-light-info .svg-icon {
+ color: var(--bs-info-inverse);
+}
+.btn-check:checked + .btn.btn-light-info.dropdown-toggle:after, .btn-check:active + .btn.btn-light-info.dropdown-toggle:after, .btn.btn-light-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-info.active.dropdown-toggle:after, .btn.btn-light-info.show.dropdown-toggle:after, .show > .btn.btn-light-info.dropdown-toggle:after {
+ color: var(--bs-info-inverse);
+}
+
+.btn.btn-bg-info {
+ border-color: var(--bs-info);
+ background-color: var(--bs-info);
+}
+.btn-check:checked + .btn.btn-active-info, .btn-check:active + .btn.btn-active-info, .btn.btn-active-info:focus:not(.btn-active), .btn.btn-active-info:hover:not(.btn-active), .btn.btn-active-info:active:not(.btn-active), .btn.btn-active-info.active, .btn.btn-active-info.show, .show > .btn.btn-active-info {
+ color: var(--bs-info-inverse);
+ border-color: var(--bs-info);
+ background-color: var(--bs-info) !important;
+}
+.btn-check:checked + .btn.btn-active-info i,
+.btn-check:checked + .btn.btn-active-info .svg-icon, .btn-check:active + .btn.btn-active-info i,
+.btn-check:active + .btn.btn-active-info .svg-icon, .btn.btn-active-info:focus:not(.btn-active) i,
+.btn.btn-active-info:focus:not(.btn-active) .svg-icon, .btn.btn-active-info:hover:not(.btn-active) i,
+.btn.btn-active-info:hover:not(.btn-active) .svg-icon, .btn.btn-active-info:active:not(.btn-active) i,
+.btn.btn-active-info:active:not(.btn-active) .svg-icon, .btn.btn-active-info.active i,
+.btn.btn-active-info.active .svg-icon, .btn.btn-active-info.show i,
+.btn.btn-active-info.show .svg-icon, .show > .btn.btn-active-info i,
+.show > .btn.btn-active-info .svg-icon {
+ color: var(--bs-info-inverse);
+}
+.btn-check:checked + .btn.btn-active-info.dropdown-toggle:after, .btn-check:active + .btn.btn-active-info.dropdown-toggle:after, .btn.btn-active-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-info.active.dropdown-toggle:after, .btn.btn-active-info.show.dropdown-toggle:after, .show > .btn.btn-active-info.dropdown-toggle:after {
+ color: var(--bs-info-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-info, .btn-check:active + .btn.btn-active-light-info, .btn.btn-active-light-info:focus:not(.btn-active), .btn.btn-active-light-info:hover:not(.btn-active), .btn.btn-active-light-info:active:not(.btn-active), .btn.btn-active-light-info.active, .btn.btn-active-light-info.show, .show > .btn.btn-active-light-info {
+ color: var(--bs-info);
+ border-color: var(--bs-info-light);
+ background-color: var(--bs-info-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-info i,
+.btn-check:checked + .btn.btn-active-light-info .svg-icon, .btn-check:active + .btn.btn-active-light-info i,
+.btn-check:active + .btn.btn-active-light-info .svg-icon, .btn.btn-active-light-info:focus:not(.btn-active) i,
+.btn.btn-active-light-info:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-info:hover:not(.btn-active) i,
+.btn.btn-active-light-info:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-info:active:not(.btn-active) i,
+.btn.btn-active-light-info:active:not(.btn-active) .svg-icon, .btn.btn-active-light-info.active i,
+.btn.btn-active-light-info.active .svg-icon, .btn.btn-active-light-info.show i,
+.btn.btn-active-light-info.show .svg-icon, .show > .btn.btn-active-light-info i,
+.show > .btn.btn-active-light-info .svg-icon {
+ color: var(--bs-info);
+}
+.btn-check:checked + .btn.btn-active-light-info.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-info.dropdown-toggle:after, .btn.btn-active-light-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-info.active.dropdown-toggle:after, .btn.btn-active-light-info.show.dropdown-toggle:after, .show > .btn.btn-active-light-info.dropdown-toggle:after {
+ color: var(--bs-info);
+}
+
+.btn.btn-outline.btn-outline-info {
+ color: var(--bs-info);
+ border-color: var(--bs-info);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-info i,
+.btn.btn-outline.btn-outline-info .svg-icon {
+ color: var(--bs-info);
+}
+.btn.btn-outline.btn-outline-info.dropdown-toggle:after {
+ color: var(--bs-info);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-info, .btn-check:active + .btn.btn-outline.btn-outline-info, .btn.btn-outline.btn-outline-info:focus:not(.btn-active), .btn.btn-outline.btn-outline-info:hover:not(.btn-active), .btn.btn-outline.btn-outline-info:active:not(.btn-active), .btn.btn-outline.btn-outline-info.active, .btn.btn-outline.btn-outline-info.show, .show > .btn.btn-outline.btn-outline-info {
+ color: var(--bs-info-active);
+ border-color: var(--bs-info);
+ background-color: var(--bs-info-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-info i,
+.btn-check:checked + .btn.btn-outline.btn-outline-info .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-info i,
+.btn-check:active + .btn.btn-outline.btn-outline-info .svg-icon, .btn.btn-outline.btn-outline-info:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-info:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-info:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-info:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-info:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-info:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-info.active i,
+.btn.btn-outline.btn-outline-info.active .svg-icon, .btn.btn-outline.btn-outline-info.show i,
+.btn.btn-outline.btn-outline-info.show .svg-icon, .show > .btn.btn-outline.btn-outline-info i,
+.show > .btn.btn-outline.btn-outline-info .svg-icon {
+ color: var(--bs-info-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-info.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-info.dropdown-toggle:after, .btn.btn-outline.btn-outline-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-info.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-info.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-info.dropdown-toggle:after {
+ color: var(--bs-info-active);
+}
+
+.btn.btn-warning {
+ color: var(--bs-warning-inverse);
+ border-color: var(--bs-warning);
+ background-color: var(--bs-warning);
+}
+.btn.btn-warning i,
+.btn.btn-warning .svg-icon {
+ color: var(--bs-warning-inverse);
+}
+.btn.btn-warning.dropdown-toggle:after {
+ color: var(--bs-warning-inverse);
+}
+.btn-check:checked + .btn.btn-warning, .btn-check:active + .btn.btn-warning, .btn.btn-warning:focus:not(.btn-active), .btn.btn-warning:hover:not(.btn-active), .btn.btn-warning:active:not(.btn-active), .btn.btn-warning.active, .btn.btn-warning.show, .show > .btn.btn-warning {
+ color: var(--bs-warning-inverse);
+ border-color: var(--bs-warning-active);
+ background-color: var(--bs-warning-active) !important;
+}
+.btn-check:checked + .btn.btn-warning i,
+.btn-check:checked + .btn.btn-warning .svg-icon, .btn-check:active + .btn.btn-warning i,
+.btn-check:active + .btn.btn-warning .svg-icon, .btn.btn-warning:focus:not(.btn-active) i,
+.btn.btn-warning:focus:not(.btn-active) .svg-icon, .btn.btn-warning:hover:not(.btn-active) i,
+.btn.btn-warning:hover:not(.btn-active) .svg-icon, .btn.btn-warning:active:not(.btn-active) i,
+.btn.btn-warning:active:not(.btn-active) .svg-icon, .btn.btn-warning.active i,
+.btn.btn-warning.active .svg-icon, .btn.btn-warning.show i,
+.btn.btn-warning.show .svg-icon, .show > .btn.btn-warning i,
+.show > .btn.btn-warning .svg-icon {
+ color: var(--bs-warning-inverse);
+}
+.btn-check:checked + .btn.btn-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-warning.dropdown-toggle:after, .btn.btn-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-warning.active.dropdown-toggle:after, .btn.btn-warning.show.dropdown-toggle:after, .show > .btn.btn-warning.dropdown-toggle:after {
+ color: var(--bs-warning-inverse);
+}
+
+.btn.btn-light-warning {
+ color: var(--bs-warning);
+ border-color: var(--bs-warning-light);
+ background-color: var(--bs-warning-light);
+}
+.btn.btn-light-warning i,
+.btn.btn-light-warning .svg-icon {
+ color: var(--bs-warning);
+}
+.btn.btn-light-warning.dropdown-toggle:after {
+ color: var(--bs-warning);
+}
+.btn-check:checked + .btn.btn-light-warning, .btn-check:active + .btn.btn-light-warning, .btn.btn-light-warning:focus:not(.btn-active), .btn.btn-light-warning:hover:not(.btn-active), .btn.btn-light-warning:active:not(.btn-active), .btn.btn-light-warning.active, .btn.btn-light-warning.show, .show > .btn.btn-light-warning {
+ color: var(--bs-warning-inverse);
+ border-color: var(--bs-warning);
+ background-color: var(--bs-warning) !important;
+}
+.btn-check:checked + .btn.btn-light-warning i,
+.btn-check:checked + .btn.btn-light-warning .svg-icon, .btn-check:active + .btn.btn-light-warning i,
+.btn-check:active + .btn.btn-light-warning .svg-icon, .btn.btn-light-warning:focus:not(.btn-active) i,
+.btn.btn-light-warning:focus:not(.btn-active) .svg-icon, .btn.btn-light-warning:hover:not(.btn-active) i,
+.btn.btn-light-warning:hover:not(.btn-active) .svg-icon, .btn.btn-light-warning:active:not(.btn-active) i,
+.btn.btn-light-warning:active:not(.btn-active) .svg-icon, .btn.btn-light-warning.active i,
+.btn.btn-light-warning.active .svg-icon, .btn.btn-light-warning.show i,
+.btn.btn-light-warning.show .svg-icon, .show > .btn.btn-light-warning i,
+.show > .btn.btn-light-warning .svg-icon {
+ color: var(--bs-warning-inverse);
+}
+.btn-check:checked + .btn.btn-light-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-light-warning.dropdown-toggle:after, .btn.btn-light-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-warning.active.dropdown-toggle:after, .btn.btn-light-warning.show.dropdown-toggle:after, .show > .btn.btn-light-warning.dropdown-toggle:after {
+ color: var(--bs-warning-inverse);
+}
+
+.btn.btn-bg-warning {
+ border-color: var(--bs-warning);
+ background-color: var(--bs-warning);
+}
+.btn-check:checked + .btn.btn-active-warning, .btn-check:active + .btn.btn-active-warning, .btn.btn-active-warning:focus:not(.btn-active), .btn.btn-active-warning:hover:not(.btn-active), .btn.btn-active-warning:active:not(.btn-active), .btn.btn-active-warning.active, .btn.btn-active-warning.show, .show > .btn.btn-active-warning {
+ color: var(--bs-warning-inverse);
+ border-color: var(--bs-warning);
+ background-color: var(--bs-warning) !important;
+}
+.btn-check:checked + .btn.btn-active-warning i,
+.btn-check:checked + .btn.btn-active-warning .svg-icon, .btn-check:active + .btn.btn-active-warning i,
+.btn-check:active + .btn.btn-active-warning .svg-icon, .btn.btn-active-warning:focus:not(.btn-active) i,
+.btn.btn-active-warning:focus:not(.btn-active) .svg-icon, .btn.btn-active-warning:hover:not(.btn-active) i,
+.btn.btn-active-warning:hover:not(.btn-active) .svg-icon, .btn.btn-active-warning:active:not(.btn-active) i,
+.btn.btn-active-warning:active:not(.btn-active) .svg-icon, .btn.btn-active-warning.active i,
+.btn.btn-active-warning.active .svg-icon, .btn.btn-active-warning.show i,
+.btn.btn-active-warning.show .svg-icon, .show > .btn.btn-active-warning i,
+.show > .btn.btn-active-warning .svg-icon {
+ color: var(--bs-warning-inverse);
+}
+.btn-check:checked + .btn.btn-active-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-active-warning.dropdown-toggle:after, .btn.btn-active-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-warning.active.dropdown-toggle:after, .btn.btn-active-warning.show.dropdown-toggle:after, .show > .btn.btn-active-warning.dropdown-toggle:after {
+ color: var(--bs-warning-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-warning, .btn-check:active + .btn.btn-active-light-warning, .btn.btn-active-light-warning:focus:not(.btn-active), .btn.btn-active-light-warning:hover:not(.btn-active), .btn.btn-active-light-warning:active:not(.btn-active), .btn.btn-active-light-warning.active, .btn.btn-active-light-warning.show, .show > .btn.btn-active-light-warning {
+ color: var(--bs-warning);
+ border-color: var(--bs-warning-light);
+ background-color: var(--bs-warning-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-warning i,
+.btn-check:checked + .btn.btn-active-light-warning .svg-icon, .btn-check:active + .btn.btn-active-light-warning i,
+.btn-check:active + .btn.btn-active-light-warning .svg-icon, .btn.btn-active-light-warning:focus:not(.btn-active) i,
+.btn.btn-active-light-warning:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-warning:hover:not(.btn-active) i,
+.btn.btn-active-light-warning:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-warning:active:not(.btn-active) i,
+.btn.btn-active-light-warning:active:not(.btn-active) .svg-icon, .btn.btn-active-light-warning.active i,
+.btn.btn-active-light-warning.active .svg-icon, .btn.btn-active-light-warning.show i,
+.btn.btn-active-light-warning.show .svg-icon, .show > .btn.btn-active-light-warning i,
+.show > .btn.btn-active-light-warning .svg-icon {
+ color: var(--bs-warning);
+}
+.btn-check:checked + .btn.btn-active-light-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-warning.dropdown-toggle:after, .btn.btn-active-light-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-warning.active.dropdown-toggle:after, .btn.btn-active-light-warning.show.dropdown-toggle:after, .show > .btn.btn-active-light-warning.dropdown-toggle:after {
+ color: var(--bs-warning);
+}
+
+.btn.btn-outline.btn-outline-warning {
+ color: var(--bs-warning);
+ border-color: var(--bs-warning);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-warning i,
+.btn.btn-outline.btn-outline-warning .svg-icon {
+ color: var(--bs-warning);
+}
+.btn.btn-outline.btn-outline-warning.dropdown-toggle:after {
+ color: var(--bs-warning);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-warning, .btn-check:active + .btn.btn-outline.btn-outline-warning, .btn.btn-outline.btn-outline-warning:focus:not(.btn-active), .btn.btn-outline.btn-outline-warning:hover:not(.btn-active), .btn.btn-outline.btn-outline-warning:active:not(.btn-active), .btn.btn-outline.btn-outline-warning.active, .btn.btn-outline.btn-outline-warning.show, .show > .btn.btn-outline.btn-outline-warning {
+ color: var(--bs-warning-active);
+ border-color: var(--bs-warning);
+ background-color: var(--bs-warning-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-warning i,
+.btn-check:checked + .btn.btn-outline.btn-outline-warning .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-warning i,
+.btn-check:active + .btn.btn-outline.btn-outline-warning .svg-icon, .btn.btn-outline.btn-outline-warning:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-warning:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-warning:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-warning:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-warning:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-warning:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-warning.active i,
+.btn.btn-outline.btn-outline-warning.active .svg-icon, .btn.btn-outline.btn-outline-warning.show i,
+.btn.btn-outline.btn-outline-warning.show .svg-icon, .show > .btn.btn-outline.btn-outline-warning i,
+.show > .btn.btn-outline.btn-outline-warning .svg-icon {
+ color: var(--bs-warning-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-warning.dropdown-toggle:after, .btn.btn-outline.btn-outline-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-warning.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-warning.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-warning.dropdown-toggle:after {
+ color: var(--bs-warning-active);
+}
+
+.btn.btn-danger {
+ color: var(--bs-danger-inverse);
+ border-color: var(--bs-danger);
+ background-color: var(--bs-danger);
+}
+.btn.btn-danger i,
+.btn.btn-danger .svg-icon {
+ color: var(--bs-danger-inverse);
+}
+.btn.btn-danger.dropdown-toggle:after {
+ color: var(--bs-danger-inverse);
+}
+.btn-check:checked + .btn.btn-danger, .btn-check:active + .btn.btn-danger, .btn.btn-danger:focus:not(.btn-active), .btn.btn-danger:hover:not(.btn-active), .btn.btn-danger:active:not(.btn-active), .btn.btn-danger.active, .btn.btn-danger.show, .show > .btn.btn-danger {
+ color: var(--bs-danger-inverse);
+ border-color: var(--bs-danger-active);
+ background-color: var(--bs-danger-active) !important;
+}
+.btn-check:checked + .btn.btn-danger i,
+.btn-check:checked + .btn.btn-danger .svg-icon, .btn-check:active + .btn.btn-danger i,
+.btn-check:active + .btn.btn-danger .svg-icon, .btn.btn-danger:focus:not(.btn-active) i,
+.btn.btn-danger:focus:not(.btn-active) .svg-icon, .btn.btn-danger:hover:not(.btn-active) i,
+.btn.btn-danger:hover:not(.btn-active) .svg-icon, .btn.btn-danger:active:not(.btn-active) i,
+.btn.btn-danger:active:not(.btn-active) .svg-icon, .btn.btn-danger.active i,
+.btn.btn-danger.active .svg-icon, .btn.btn-danger.show i,
+.btn.btn-danger.show .svg-icon, .show > .btn.btn-danger i,
+.show > .btn.btn-danger .svg-icon {
+ color: var(--bs-danger-inverse);
+}
+.btn-check:checked + .btn.btn-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-danger.dropdown-toggle:after, .btn.btn-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-danger.active.dropdown-toggle:after, .btn.btn-danger.show.dropdown-toggle:after, .show > .btn.btn-danger.dropdown-toggle:after {
+ color: var(--bs-danger-inverse);
+}
+
+.btn.btn-light-danger {
+ color: var(--bs-danger);
+ border-color: var(--bs-danger-light);
+ background-color: var(--bs-danger-light);
+}
+.btn.btn-light-danger i,
+.btn.btn-light-danger .svg-icon {
+ color: var(--bs-danger);
+}
+.btn.btn-light-danger.dropdown-toggle:after {
+ color: var(--bs-danger);
+}
+.btn-check:checked + .btn.btn-light-danger, .btn-check:active + .btn.btn-light-danger, .btn.btn-light-danger:focus:not(.btn-active), .btn.btn-light-danger:hover:not(.btn-active), .btn.btn-light-danger:active:not(.btn-active), .btn.btn-light-danger.active, .btn.btn-light-danger.show, .show > .btn.btn-light-danger {
+ color: var(--bs-danger-inverse);
+ border-color: var(--bs-danger);
+ background-color: var(--bs-danger) !important;
+}
+.btn-check:checked + .btn.btn-light-danger i,
+.btn-check:checked + .btn.btn-light-danger .svg-icon, .btn-check:active + .btn.btn-light-danger i,
+.btn-check:active + .btn.btn-light-danger .svg-icon, .btn.btn-light-danger:focus:not(.btn-active) i,
+.btn.btn-light-danger:focus:not(.btn-active) .svg-icon, .btn.btn-light-danger:hover:not(.btn-active) i,
+.btn.btn-light-danger:hover:not(.btn-active) .svg-icon, .btn.btn-light-danger:active:not(.btn-active) i,
+.btn.btn-light-danger:active:not(.btn-active) .svg-icon, .btn.btn-light-danger.active i,
+.btn.btn-light-danger.active .svg-icon, .btn.btn-light-danger.show i,
+.btn.btn-light-danger.show .svg-icon, .show > .btn.btn-light-danger i,
+.show > .btn.btn-light-danger .svg-icon {
+ color: var(--bs-danger-inverse);
+}
+.btn-check:checked + .btn.btn-light-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-light-danger.dropdown-toggle:after, .btn.btn-light-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-danger.active.dropdown-toggle:after, .btn.btn-light-danger.show.dropdown-toggle:after, .show > .btn.btn-light-danger.dropdown-toggle:after {
+ color: var(--bs-danger-inverse);
+}
+
+.btn.btn-bg-danger {
+ border-color: var(--bs-danger);
+ background-color: var(--bs-danger);
+}
+.btn-check:checked + .btn.btn-active-danger, .btn-check:active + .btn.btn-active-danger, .btn.btn-active-danger:focus:not(.btn-active), .btn.btn-active-danger:hover:not(.btn-active), .btn.btn-active-danger:active:not(.btn-active), .btn.btn-active-danger.active, .btn.btn-active-danger.show, .show > .btn.btn-active-danger {
+ color: var(--bs-danger-inverse);
+ border-color: var(--bs-danger);
+ background-color: var(--bs-danger) !important;
+}
+.btn-check:checked + .btn.btn-active-danger i,
+.btn-check:checked + .btn.btn-active-danger .svg-icon, .btn-check:active + .btn.btn-active-danger i,
+.btn-check:active + .btn.btn-active-danger .svg-icon, .btn.btn-active-danger:focus:not(.btn-active) i,
+.btn.btn-active-danger:focus:not(.btn-active) .svg-icon, .btn.btn-active-danger:hover:not(.btn-active) i,
+.btn.btn-active-danger:hover:not(.btn-active) .svg-icon, .btn.btn-active-danger:active:not(.btn-active) i,
+.btn.btn-active-danger:active:not(.btn-active) .svg-icon, .btn.btn-active-danger.active i,
+.btn.btn-active-danger.active .svg-icon, .btn.btn-active-danger.show i,
+.btn.btn-active-danger.show .svg-icon, .show > .btn.btn-active-danger i,
+.show > .btn.btn-active-danger .svg-icon {
+ color: var(--bs-danger-inverse);
+}
+.btn-check:checked + .btn.btn-active-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-active-danger.dropdown-toggle:after, .btn.btn-active-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-danger.active.dropdown-toggle:after, .btn.btn-active-danger.show.dropdown-toggle:after, .show > .btn.btn-active-danger.dropdown-toggle:after {
+ color: var(--bs-danger-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-danger, .btn-check:active + .btn.btn-active-light-danger, .btn.btn-active-light-danger:focus:not(.btn-active), .btn.btn-active-light-danger:hover:not(.btn-active), .btn.btn-active-light-danger:active:not(.btn-active), .btn.btn-active-light-danger.active, .btn.btn-active-light-danger.show, .show > .btn.btn-active-light-danger {
+ color: var(--bs-danger);
+ border-color: var(--bs-danger-light);
+ background-color: var(--bs-danger-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-danger i,
+.btn-check:checked + .btn.btn-active-light-danger .svg-icon, .btn-check:active + .btn.btn-active-light-danger i,
+.btn-check:active + .btn.btn-active-light-danger .svg-icon, .btn.btn-active-light-danger:focus:not(.btn-active) i,
+.btn.btn-active-light-danger:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-danger:hover:not(.btn-active) i,
+.btn.btn-active-light-danger:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-danger:active:not(.btn-active) i,
+.btn.btn-active-light-danger:active:not(.btn-active) .svg-icon, .btn.btn-active-light-danger.active i,
+.btn.btn-active-light-danger.active .svg-icon, .btn.btn-active-light-danger.show i,
+.btn.btn-active-light-danger.show .svg-icon, .show > .btn.btn-active-light-danger i,
+.show > .btn.btn-active-light-danger .svg-icon {
+ color: var(--bs-danger);
+}
+.btn-check:checked + .btn.btn-active-light-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-danger.dropdown-toggle:after, .btn.btn-active-light-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-danger.active.dropdown-toggle:after, .btn.btn-active-light-danger.show.dropdown-toggle:after, .show > .btn.btn-active-light-danger.dropdown-toggle:after {
+ color: var(--bs-danger);
+}
+
+.btn.btn-outline.btn-outline-danger {
+ color: var(--bs-danger);
+ border-color: var(--bs-danger);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-danger i,
+.btn.btn-outline.btn-outline-danger .svg-icon {
+ color: var(--bs-danger);
+}
+.btn.btn-outline.btn-outline-danger.dropdown-toggle:after {
+ color: var(--bs-danger);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-danger, .btn-check:active + .btn.btn-outline.btn-outline-danger, .btn.btn-outline.btn-outline-danger:focus:not(.btn-active), .btn.btn-outline.btn-outline-danger:hover:not(.btn-active), .btn.btn-outline.btn-outline-danger:active:not(.btn-active), .btn.btn-outline.btn-outline-danger.active, .btn.btn-outline.btn-outline-danger.show, .show > .btn.btn-outline.btn-outline-danger {
+ color: var(--bs-danger-active);
+ border-color: var(--bs-danger);
+ background-color: var(--bs-danger-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-danger i,
+.btn-check:checked + .btn.btn-outline.btn-outline-danger .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-danger i,
+.btn-check:active + .btn.btn-outline.btn-outline-danger .svg-icon, .btn.btn-outline.btn-outline-danger:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-danger:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-danger:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-danger:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-danger:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-danger:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-danger.active i,
+.btn.btn-outline.btn-outline-danger.active .svg-icon, .btn.btn-outline.btn-outline-danger.show i,
+.btn.btn-outline.btn-outline-danger.show .svg-icon, .show > .btn.btn-outline.btn-outline-danger i,
+.show > .btn.btn-outline.btn-outline-danger .svg-icon {
+ color: var(--bs-danger-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-danger.dropdown-toggle:after, .btn.btn-outline.btn-outline-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-danger.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-danger.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-danger.dropdown-toggle:after {
+ color: var(--bs-danger-active);
+}
+
+.btn.btn-dark {
+ color: var(--bs-dark-inverse);
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark);
+}
+.btn.btn-dark i,
+.btn.btn-dark .svg-icon {
+ color: var(--bs-dark-inverse);
+}
+.btn.btn-dark.dropdown-toggle:after {
+ color: var(--bs-dark-inverse);
+}
+.btn-check:checked + .btn.btn-dark, .btn-check:active + .btn.btn-dark, .btn.btn-dark:focus:not(.btn-active), .btn.btn-dark:hover:not(.btn-active), .btn.btn-dark:active:not(.btn-active), .btn.btn-dark.active, .btn.btn-dark.show, .show > .btn.btn-dark {
+ color: var(--bs-dark-inverse);
+ border-color: var(--bs-dark-active);
+ background-color: var(--bs-dark-active) !important;
+}
+.btn-check:checked + .btn.btn-dark i,
+.btn-check:checked + .btn.btn-dark .svg-icon, .btn-check:active + .btn.btn-dark i,
+.btn-check:active + .btn.btn-dark .svg-icon, .btn.btn-dark:focus:not(.btn-active) i,
+.btn.btn-dark:focus:not(.btn-active) .svg-icon, .btn.btn-dark:hover:not(.btn-active) i,
+.btn.btn-dark:hover:not(.btn-active) .svg-icon, .btn.btn-dark:active:not(.btn-active) i,
+.btn.btn-dark:active:not(.btn-active) .svg-icon, .btn.btn-dark.active i,
+.btn.btn-dark.active .svg-icon, .btn.btn-dark.show i,
+.btn.btn-dark.show .svg-icon, .show > .btn.btn-dark i,
+.show > .btn.btn-dark .svg-icon {
+ color: var(--bs-dark-inverse);
+}
+.btn-check:checked + .btn.btn-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-dark.dropdown-toggle:after, .btn.btn-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-dark.active.dropdown-toggle:after, .btn.btn-dark.show.dropdown-toggle:after, .show > .btn.btn-dark.dropdown-toggle:after {
+ color: var(--bs-dark-inverse);
+}
+
+.btn.btn-light-dark {
+ color: var(--bs-dark);
+ border-color: var(--bs-dark-light);
+ background-color: var(--bs-dark-light);
+}
+.btn.btn-light-dark i,
+.btn.btn-light-dark .svg-icon {
+ color: var(--bs-dark);
+}
+.btn.btn-light-dark.dropdown-toggle:after {
+ color: var(--bs-dark);
+}
+.btn-check:checked + .btn.btn-light-dark, .btn-check:active + .btn.btn-light-dark, .btn.btn-light-dark:focus:not(.btn-active), .btn.btn-light-dark:hover:not(.btn-active), .btn.btn-light-dark:active:not(.btn-active), .btn.btn-light-dark.active, .btn.btn-light-dark.show, .show > .btn.btn-light-dark {
+ color: var(--bs-dark-inverse);
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark) !important;
+}
+.btn-check:checked + .btn.btn-light-dark i,
+.btn-check:checked + .btn.btn-light-dark .svg-icon, .btn-check:active + .btn.btn-light-dark i,
+.btn-check:active + .btn.btn-light-dark .svg-icon, .btn.btn-light-dark:focus:not(.btn-active) i,
+.btn.btn-light-dark:focus:not(.btn-active) .svg-icon, .btn.btn-light-dark:hover:not(.btn-active) i,
+.btn.btn-light-dark:hover:not(.btn-active) .svg-icon, .btn.btn-light-dark:active:not(.btn-active) i,
+.btn.btn-light-dark:active:not(.btn-active) .svg-icon, .btn.btn-light-dark.active i,
+.btn.btn-light-dark.active .svg-icon, .btn.btn-light-dark.show i,
+.btn.btn-light-dark.show .svg-icon, .show > .btn.btn-light-dark i,
+.show > .btn.btn-light-dark .svg-icon {
+ color: var(--bs-dark-inverse);
+}
+.btn-check:checked + .btn.btn-light-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-light-dark.dropdown-toggle:after, .btn.btn-light-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-dark.active.dropdown-toggle:after, .btn.btn-light-dark.show.dropdown-toggle:after, .show > .btn.btn-light-dark.dropdown-toggle:after {
+ color: var(--bs-dark-inverse);
+}
+
+.btn.btn-bg-dark {
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark);
+}
+.btn-check:checked + .btn.btn-active-dark, .btn-check:active + .btn.btn-active-dark, .btn.btn-active-dark:focus:not(.btn-active), .btn.btn-active-dark:hover:not(.btn-active), .btn.btn-active-dark:active:not(.btn-active), .btn.btn-active-dark.active, .btn.btn-active-dark.show, .show > .btn.btn-active-dark {
+ color: var(--bs-dark-inverse);
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark) !important;
+}
+.btn-check:checked + .btn.btn-active-dark i,
+.btn-check:checked + .btn.btn-active-dark .svg-icon, .btn-check:active + .btn.btn-active-dark i,
+.btn-check:active + .btn.btn-active-dark .svg-icon, .btn.btn-active-dark:focus:not(.btn-active) i,
+.btn.btn-active-dark:focus:not(.btn-active) .svg-icon, .btn.btn-active-dark:hover:not(.btn-active) i,
+.btn.btn-active-dark:hover:not(.btn-active) .svg-icon, .btn.btn-active-dark:active:not(.btn-active) i,
+.btn.btn-active-dark:active:not(.btn-active) .svg-icon, .btn.btn-active-dark.active i,
+.btn.btn-active-dark.active .svg-icon, .btn.btn-active-dark.show i,
+.btn.btn-active-dark.show .svg-icon, .show > .btn.btn-active-dark i,
+.show > .btn.btn-active-dark .svg-icon {
+ color: var(--bs-dark-inverse);
+}
+.btn-check:checked + .btn.btn-active-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-active-dark.dropdown-toggle:after, .btn.btn-active-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-dark.active.dropdown-toggle:after, .btn.btn-active-dark.show.dropdown-toggle:after, .show > .btn.btn-active-dark.dropdown-toggle:after {
+ color: var(--bs-dark-inverse);
+}
+
+.btn-check:checked + .btn.btn-active-light-dark, .btn-check:active + .btn.btn-active-light-dark, .btn.btn-active-light-dark:focus:not(.btn-active), .btn.btn-active-light-dark:hover:not(.btn-active), .btn.btn-active-light-dark:active:not(.btn-active), .btn.btn-active-light-dark.active, .btn.btn-active-light-dark.show, .show > .btn.btn-active-light-dark {
+ color: var(--bs-dark);
+ border-color: var(--bs-dark-light);
+ background-color: var(--bs-dark-light) !important;
+}
+.btn-check:checked + .btn.btn-active-light-dark i,
+.btn-check:checked + .btn.btn-active-light-dark .svg-icon, .btn-check:active + .btn.btn-active-light-dark i,
+.btn-check:active + .btn.btn-active-light-dark .svg-icon, .btn.btn-active-light-dark:focus:not(.btn-active) i,
+.btn.btn-active-light-dark:focus:not(.btn-active) .svg-icon, .btn.btn-active-light-dark:hover:not(.btn-active) i,
+.btn.btn-active-light-dark:hover:not(.btn-active) .svg-icon, .btn.btn-active-light-dark:active:not(.btn-active) i,
+.btn.btn-active-light-dark:active:not(.btn-active) .svg-icon, .btn.btn-active-light-dark.active i,
+.btn.btn-active-light-dark.active .svg-icon, .btn.btn-active-light-dark.show i,
+.btn.btn-active-light-dark.show .svg-icon, .show > .btn.btn-active-light-dark i,
+.show > .btn.btn-active-light-dark .svg-icon {
+ color: var(--bs-dark);
+}
+.btn-check:checked + .btn.btn-active-light-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-active-light-dark.dropdown-toggle:after, .btn.btn-active-light-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-light-dark.active.dropdown-toggle:after, .btn.btn-active-light-dark.show.dropdown-toggle:after, .show > .btn.btn-active-light-dark.dropdown-toggle:after {
+ color: var(--bs-dark);
+}
+
+.btn.btn-outline.btn-outline-dark {
+ color: var(--bs-dark);
+ border-color: var(--bs-dark);
+ background-color: transparent;
+}
+.btn.btn-outline.btn-outline-dark i,
+.btn.btn-outline.btn-outline-dark .svg-icon {
+ color: var(--bs-dark);
+}
+.btn.btn-outline.btn-outline-dark.dropdown-toggle:after {
+ color: var(--bs-dark);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-dark, .btn-check:active + .btn.btn-outline.btn-outline-dark, .btn.btn-outline.btn-outline-dark:focus:not(.btn-active), .btn.btn-outline.btn-outline-dark:hover:not(.btn-active), .btn.btn-outline.btn-outline-dark:active:not(.btn-active), .btn.btn-outline.btn-outline-dark.active, .btn.btn-outline.btn-outline-dark.show, .show > .btn.btn-outline.btn-outline-dark {
+ color: var(--bs-dark-active);
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark-light) !important;
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-dark i,
+.btn-check:checked + .btn.btn-outline.btn-outline-dark .svg-icon, .btn-check:active + .btn.btn-outline.btn-outline-dark i,
+.btn-check:active + .btn.btn-outline.btn-outline-dark .svg-icon, .btn.btn-outline.btn-outline-dark:focus:not(.btn-active) i,
+.btn.btn-outline.btn-outline-dark:focus:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-dark:hover:not(.btn-active) i,
+.btn.btn-outline.btn-outline-dark:hover:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-dark:active:not(.btn-active) i,
+.btn.btn-outline.btn-outline-dark:active:not(.btn-active) .svg-icon, .btn.btn-outline.btn-outline-dark.active i,
+.btn.btn-outline.btn-outline-dark.active .svg-icon, .btn.btn-outline.btn-outline-dark.show i,
+.btn.btn-outline.btn-outline-dark.show .svg-icon, .show > .btn.btn-outline.btn-outline-dark i,
+.show > .btn.btn-outline.btn-outline-dark .svg-icon {
+ color: var(--bs-dark-active);
+}
+.btn-check:checked + .btn.btn-outline.btn-outline-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-outline.btn-outline-dark.dropdown-toggle:after, .btn.btn-outline.btn-outline-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-outline.btn-outline-dark.active.dropdown-toggle:after, .btn.btn-outline.btn-outline-dark.show.dropdown-toggle:after, .show > .btn.btn-outline.btn-outline-dark.dropdown-toggle:after {
+ color: var(--bs-dark-active);
+}
+
+.btn.btn-color-white {
+ color: var(--bs-text-white);
+}
+.btn.btn-color-white i,
+.btn.btn-color-white .svg-icon {
+ color: var(--bs-text-white);
+}
+.btn.btn-color-white.dropdown-toggle:after {
+ color: var(--bs-text-white);
+}
+.btn-check:checked + .btn.btn-active-color-white, .btn-check:active + .btn.btn-active-color-white, .btn.btn-active-color-white:focus:not(.btn-active), .btn.btn-active-color-white:hover:not(.btn-active), .btn.btn-active-color-white:active:not(.btn-active), .btn.btn-active-color-white.active, .btn.btn-active-color-white.show, .show > .btn.btn-active-color-white {
+ color: var(--bs-text-white);
+}
+.btn-check:checked + .btn.btn-active-color-white i,
+.btn-check:checked + .btn.btn-active-color-white .svg-icon, .btn-check:active + .btn.btn-active-color-white i,
+.btn-check:active + .btn.btn-active-color-white .svg-icon, .btn.btn-active-color-white:focus:not(.btn-active) i,
+.btn.btn-active-color-white:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-white:hover:not(.btn-active) i,
+.btn.btn-active-color-white:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-white:active:not(.btn-active) i,
+.btn.btn-active-color-white:active:not(.btn-active) .svg-icon, .btn.btn-active-color-white.active i,
+.btn.btn-active-color-white.active .svg-icon, .btn.btn-active-color-white.show i,
+.btn.btn-active-color-white.show .svg-icon, .show > .btn.btn-active-color-white i,
+.show > .btn.btn-active-color-white .svg-icon {
+ color: var(--bs-text-white);
+}
+.btn-check:checked + .btn.btn-active-color-white.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-white.dropdown-toggle:after, .btn.btn-active-color-white:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-white:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-white:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-white.active.dropdown-toggle:after, .btn.btn-active-color-white.show.dropdown-toggle:after, .show > .btn.btn-active-color-white.dropdown-toggle:after {
+ color: var(--bs-text-white);
+}
+
+.btn.btn-icon-white i,
+.btn.btn-icon-white .svg-icon {
+ color: var(--bs-text-white);
+}
+.btn.btn-icon-white.dropdown-toggle:after {
+ color: var(--bs-text-white);
+}
+.btn-check:checked + .btn.btn-active-icon-white i,
+.btn-check:checked + .btn.btn-active-icon-white .svg-icon, .btn-check:active + .btn.btn-active-icon-white i,
+.btn-check:active + .btn.btn-active-icon-white .svg-icon, .btn.btn-active-icon-white:focus:not(.btn-active) i,
+.btn.btn-active-icon-white:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-white:hover:not(.btn-active) i,
+.btn.btn-active-icon-white:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-white:active:not(.btn-active) i,
+.btn.btn-active-icon-white:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-white.active i,
+.btn.btn-active-icon-white.active .svg-icon, .btn.btn-active-icon-white.show i,
+.btn.btn-active-icon-white.show .svg-icon, .show > .btn.btn-active-icon-white i,
+.show > .btn.btn-active-icon-white .svg-icon {
+ color: var(--bs-text-white);
+}
+.btn-check:checked + .btn.btn-active-icon-white.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-white.dropdown-toggle:after, .btn.btn-active-icon-white:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-white:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-white:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-white.active.dropdown-toggle:after, .btn.btn-active-icon-white.show.dropdown-toggle:after, .show > .btn.btn-active-icon-white.dropdown-toggle:after {
+ color: var(--bs-text-white);
+}
+
+.btn.btn-text-white {
+ color: var(--bs-text-white);
+}
+.btn-check:checked + .btn.btn-active-text-white, .btn-check:active + .btn.btn-active-text-white, .btn.btn-active-text-white:focus:not(.btn-active), .btn.btn-active-text-white:hover:not(.btn-active), .btn.btn-active-text-white:active:not(.btn-active), .btn.btn-active-text-white.active, .btn.btn-active-text-white.show, .show > .btn.btn-active-text-white {
+ color: var(--bs-text-white);
+}
+
+.btn.btn-color-primary {
+ color: var(--bs-text-primary);
+}
+.btn.btn-color-primary i,
+.btn.btn-color-primary .svg-icon {
+ color: var(--bs-text-primary);
+}
+.btn.btn-color-primary.dropdown-toggle:after {
+ color: var(--bs-text-primary);
+}
+.btn-check:checked + .btn.btn-active-color-primary, .btn-check:active + .btn.btn-active-color-primary, .btn.btn-active-color-primary:focus:not(.btn-active), .btn.btn-active-color-primary:hover:not(.btn-active), .btn.btn-active-color-primary:active:not(.btn-active), .btn.btn-active-color-primary.active, .btn.btn-active-color-primary.show, .show > .btn.btn-active-color-primary {
+ color: var(--bs-text-primary);
+}
+.btn-check:checked + .btn.btn-active-color-primary i,
+.btn-check:checked + .btn.btn-active-color-primary .svg-icon, .btn-check:active + .btn.btn-active-color-primary i,
+.btn-check:active + .btn.btn-active-color-primary .svg-icon, .btn.btn-active-color-primary:focus:not(.btn-active) i,
+.btn.btn-active-color-primary:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-primary:hover:not(.btn-active) i,
+.btn.btn-active-color-primary:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-primary:active:not(.btn-active) i,
+.btn.btn-active-color-primary:active:not(.btn-active) .svg-icon, .btn.btn-active-color-primary.active i,
+.btn.btn-active-color-primary.active .svg-icon, .btn.btn-active-color-primary.show i,
+.btn.btn-active-color-primary.show .svg-icon, .show > .btn.btn-active-color-primary i,
+.show > .btn.btn-active-color-primary .svg-icon {
+ color: var(--bs-text-primary);
+}
+.btn-check:checked + .btn.btn-active-color-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-primary.dropdown-toggle:after, .btn.btn-active-color-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-primary.active.dropdown-toggle:after, .btn.btn-active-color-primary.show.dropdown-toggle:after, .show > .btn.btn-active-color-primary.dropdown-toggle:after {
+ color: var(--bs-text-primary);
+}
+
+.btn.btn-icon-primary i,
+.btn.btn-icon-primary .svg-icon {
+ color: var(--bs-text-primary);
+}
+.btn.btn-icon-primary.dropdown-toggle:after {
+ color: var(--bs-text-primary);
+}
+.btn-check:checked + .btn.btn-active-icon-primary i,
+.btn-check:checked + .btn.btn-active-icon-primary .svg-icon, .btn-check:active + .btn.btn-active-icon-primary i,
+.btn-check:active + .btn.btn-active-icon-primary .svg-icon, .btn.btn-active-icon-primary:focus:not(.btn-active) i,
+.btn.btn-active-icon-primary:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-primary:hover:not(.btn-active) i,
+.btn.btn-active-icon-primary:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-primary:active:not(.btn-active) i,
+.btn.btn-active-icon-primary:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-primary.active i,
+.btn.btn-active-icon-primary.active .svg-icon, .btn.btn-active-icon-primary.show i,
+.btn.btn-active-icon-primary.show .svg-icon, .show > .btn.btn-active-icon-primary i,
+.show > .btn.btn-active-icon-primary .svg-icon {
+ color: var(--bs-text-primary);
+}
+.btn-check:checked + .btn.btn-active-icon-primary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-primary.dropdown-toggle:after, .btn.btn-active-icon-primary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-primary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-primary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-primary.active.dropdown-toggle:after, .btn.btn-active-icon-primary.show.dropdown-toggle:after, .show > .btn.btn-active-icon-primary.dropdown-toggle:after {
+ color: var(--bs-text-primary);
+}
+
+.btn.btn-text-primary {
+ color: var(--bs-text-primary);
+}
+.btn-check:checked + .btn.btn-active-text-primary, .btn-check:active + .btn.btn-active-text-primary, .btn.btn-active-text-primary:focus:not(.btn-active), .btn.btn-active-text-primary:hover:not(.btn-active), .btn.btn-active-text-primary:active:not(.btn-active), .btn.btn-active-text-primary.active, .btn.btn-active-text-primary.show, .show > .btn.btn-active-text-primary {
+ color: var(--bs-text-primary);
+}
+
+.btn.btn-color-secondary {
+ color: var(--bs-text-secondary);
+}
+.btn.btn-color-secondary i,
+.btn.btn-color-secondary .svg-icon {
+ color: var(--bs-text-secondary);
+}
+.btn.btn-color-secondary.dropdown-toggle:after {
+ color: var(--bs-text-secondary);
+}
+.btn-check:checked + .btn.btn-active-color-secondary, .btn-check:active + .btn.btn-active-color-secondary, .btn.btn-active-color-secondary:focus:not(.btn-active), .btn.btn-active-color-secondary:hover:not(.btn-active), .btn.btn-active-color-secondary:active:not(.btn-active), .btn.btn-active-color-secondary.active, .btn.btn-active-color-secondary.show, .show > .btn.btn-active-color-secondary {
+ color: var(--bs-text-secondary);
+}
+.btn-check:checked + .btn.btn-active-color-secondary i,
+.btn-check:checked + .btn.btn-active-color-secondary .svg-icon, .btn-check:active + .btn.btn-active-color-secondary i,
+.btn-check:active + .btn.btn-active-color-secondary .svg-icon, .btn.btn-active-color-secondary:focus:not(.btn-active) i,
+.btn.btn-active-color-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-secondary:hover:not(.btn-active) i,
+.btn.btn-active-color-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-secondary:active:not(.btn-active) i,
+.btn.btn-active-color-secondary:active:not(.btn-active) .svg-icon, .btn.btn-active-color-secondary.active i,
+.btn.btn-active-color-secondary.active .svg-icon, .btn.btn-active-color-secondary.show i,
+.btn.btn-active-color-secondary.show .svg-icon, .show > .btn.btn-active-color-secondary i,
+.show > .btn.btn-active-color-secondary .svg-icon {
+ color: var(--bs-text-secondary);
+}
+.btn-check:checked + .btn.btn-active-color-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-secondary.dropdown-toggle:after, .btn.btn-active-color-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-secondary.active.dropdown-toggle:after, .btn.btn-active-color-secondary.show.dropdown-toggle:after, .show > .btn.btn-active-color-secondary.dropdown-toggle:after {
+ color: var(--bs-text-secondary);
+}
+
+.btn.btn-icon-secondary i,
+.btn.btn-icon-secondary .svg-icon {
+ color: var(--bs-text-secondary);
+}
+.btn.btn-icon-secondary.dropdown-toggle:after {
+ color: var(--bs-text-secondary);
+}
+.btn-check:checked + .btn.btn-active-icon-secondary i,
+.btn-check:checked + .btn.btn-active-icon-secondary .svg-icon, .btn-check:active + .btn.btn-active-icon-secondary i,
+.btn-check:active + .btn.btn-active-icon-secondary .svg-icon, .btn.btn-active-icon-secondary:focus:not(.btn-active) i,
+.btn.btn-active-icon-secondary:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-secondary:hover:not(.btn-active) i,
+.btn.btn-active-icon-secondary:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-secondary:active:not(.btn-active) i,
+.btn.btn-active-icon-secondary:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-secondary.active i,
+.btn.btn-active-icon-secondary.active .svg-icon, .btn.btn-active-icon-secondary.show i,
+.btn.btn-active-icon-secondary.show .svg-icon, .show > .btn.btn-active-icon-secondary i,
+.show > .btn.btn-active-icon-secondary .svg-icon {
+ color: var(--bs-text-secondary);
+}
+.btn-check:checked + .btn.btn-active-icon-secondary.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-secondary.dropdown-toggle:after, .btn.btn-active-icon-secondary:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-secondary:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-secondary:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-secondary.active.dropdown-toggle:after, .btn.btn-active-icon-secondary.show.dropdown-toggle:after, .show > .btn.btn-active-icon-secondary.dropdown-toggle:after {
+ color: var(--bs-text-secondary);
+}
+
+.btn.btn-text-secondary {
+ color: var(--bs-text-secondary);
+}
+.btn-check:checked + .btn.btn-active-text-secondary, .btn-check:active + .btn.btn-active-text-secondary, .btn.btn-active-text-secondary:focus:not(.btn-active), .btn.btn-active-text-secondary:hover:not(.btn-active), .btn.btn-active-text-secondary:active:not(.btn-active), .btn.btn-active-text-secondary.active, .btn.btn-active-text-secondary.show, .show > .btn.btn-active-text-secondary {
+ color: var(--bs-text-secondary);
+}
+
+.btn.btn-color-light {
+ color: var(--bs-text-light);
+}
+.btn.btn-color-light i,
+.btn.btn-color-light .svg-icon {
+ color: var(--bs-text-light);
+}
+.btn.btn-color-light.dropdown-toggle:after {
+ color: var(--bs-text-light);
+}
+.btn-check:checked + .btn.btn-active-color-light, .btn-check:active + .btn.btn-active-color-light, .btn.btn-active-color-light:focus:not(.btn-active), .btn.btn-active-color-light:hover:not(.btn-active), .btn.btn-active-color-light:active:not(.btn-active), .btn.btn-active-color-light.active, .btn.btn-active-color-light.show, .show > .btn.btn-active-color-light {
+ color: var(--bs-text-light);
+}
+.btn-check:checked + .btn.btn-active-color-light i,
+.btn-check:checked + .btn.btn-active-color-light .svg-icon, .btn-check:active + .btn.btn-active-color-light i,
+.btn-check:active + .btn.btn-active-color-light .svg-icon, .btn.btn-active-color-light:focus:not(.btn-active) i,
+.btn.btn-active-color-light:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-light:hover:not(.btn-active) i,
+.btn.btn-active-color-light:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-light:active:not(.btn-active) i,
+.btn.btn-active-color-light:active:not(.btn-active) .svg-icon, .btn.btn-active-color-light.active i,
+.btn.btn-active-color-light.active .svg-icon, .btn.btn-active-color-light.show i,
+.btn.btn-active-color-light.show .svg-icon, .show > .btn.btn-active-color-light i,
+.show > .btn.btn-active-color-light .svg-icon {
+ color: var(--bs-text-light);
+}
+.btn-check:checked + .btn.btn-active-color-light.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-light.dropdown-toggle:after, .btn.btn-active-color-light:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-light:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-light:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-light.active.dropdown-toggle:after, .btn.btn-active-color-light.show.dropdown-toggle:after, .show > .btn.btn-active-color-light.dropdown-toggle:after {
+ color: var(--bs-text-light);
+}
+
+.btn.btn-icon-light i,
+.btn.btn-icon-light .svg-icon {
+ color: var(--bs-text-light);
+}
+.btn.btn-icon-light.dropdown-toggle:after {
+ color: var(--bs-text-light);
+}
+.btn-check:checked + .btn.btn-active-icon-light i,
+.btn-check:checked + .btn.btn-active-icon-light .svg-icon, .btn-check:active + .btn.btn-active-icon-light i,
+.btn-check:active + .btn.btn-active-icon-light .svg-icon, .btn.btn-active-icon-light:focus:not(.btn-active) i,
+.btn.btn-active-icon-light:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-light:hover:not(.btn-active) i,
+.btn.btn-active-icon-light:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-light:active:not(.btn-active) i,
+.btn.btn-active-icon-light:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-light.active i,
+.btn.btn-active-icon-light.active .svg-icon, .btn.btn-active-icon-light.show i,
+.btn.btn-active-icon-light.show .svg-icon, .show > .btn.btn-active-icon-light i,
+.show > .btn.btn-active-icon-light .svg-icon {
+ color: var(--bs-text-light);
+}
+.btn-check:checked + .btn.btn-active-icon-light.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-light.dropdown-toggle:after, .btn.btn-active-icon-light:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-light:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-light:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-light.active.dropdown-toggle:after, .btn.btn-active-icon-light.show.dropdown-toggle:after, .show > .btn.btn-active-icon-light.dropdown-toggle:after {
+ color: var(--bs-text-light);
+}
+
+.btn.btn-text-light {
+ color: var(--bs-text-light);
+}
+.btn-check:checked + .btn.btn-active-text-light, .btn-check:active + .btn.btn-active-text-light, .btn.btn-active-text-light:focus:not(.btn-active), .btn.btn-active-text-light:hover:not(.btn-active), .btn.btn-active-text-light:active:not(.btn-active), .btn.btn-active-text-light.active, .btn.btn-active-text-light.show, .show > .btn.btn-active-text-light {
+ color: var(--bs-text-light);
+}
+
+.btn.btn-color-success {
+ color: var(--bs-text-success);
+}
+.btn.btn-color-success i,
+.btn.btn-color-success .svg-icon {
+ color: var(--bs-text-success);
+}
+.btn.btn-color-success.dropdown-toggle:after {
+ color: var(--bs-text-success);
+}
+.btn-check:checked + .btn.btn-active-color-success, .btn-check:active + .btn.btn-active-color-success, .btn.btn-active-color-success:focus:not(.btn-active), .btn.btn-active-color-success:hover:not(.btn-active), .btn.btn-active-color-success:active:not(.btn-active), .btn.btn-active-color-success.active, .btn.btn-active-color-success.show, .show > .btn.btn-active-color-success {
+ color: var(--bs-text-success);
+}
+.btn-check:checked + .btn.btn-active-color-success i,
+.btn-check:checked + .btn.btn-active-color-success .svg-icon, .btn-check:active + .btn.btn-active-color-success i,
+.btn-check:active + .btn.btn-active-color-success .svg-icon, .btn.btn-active-color-success:focus:not(.btn-active) i,
+.btn.btn-active-color-success:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-success:hover:not(.btn-active) i,
+.btn.btn-active-color-success:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-success:active:not(.btn-active) i,
+.btn.btn-active-color-success:active:not(.btn-active) .svg-icon, .btn.btn-active-color-success.active i,
+.btn.btn-active-color-success.active .svg-icon, .btn.btn-active-color-success.show i,
+.btn.btn-active-color-success.show .svg-icon, .show > .btn.btn-active-color-success i,
+.show > .btn.btn-active-color-success .svg-icon {
+ color: var(--bs-text-success);
+}
+.btn-check:checked + .btn.btn-active-color-success.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-success.dropdown-toggle:after, .btn.btn-active-color-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-success.active.dropdown-toggle:after, .btn.btn-active-color-success.show.dropdown-toggle:after, .show > .btn.btn-active-color-success.dropdown-toggle:after {
+ color: var(--bs-text-success);
+}
+
+.btn.btn-icon-success i,
+.btn.btn-icon-success .svg-icon {
+ color: var(--bs-text-success);
+}
+.btn.btn-icon-success.dropdown-toggle:after {
+ color: var(--bs-text-success);
+}
+.btn-check:checked + .btn.btn-active-icon-success i,
+.btn-check:checked + .btn.btn-active-icon-success .svg-icon, .btn-check:active + .btn.btn-active-icon-success i,
+.btn-check:active + .btn.btn-active-icon-success .svg-icon, .btn.btn-active-icon-success:focus:not(.btn-active) i,
+.btn.btn-active-icon-success:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-success:hover:not(.btn-active) i,
+.btn.btn-active-icon-success:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-success:active:not(.btn-active) i,
+.btn.btn-active-icon-success:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-success.active i,
+.btn.btn-active-icon-success.active .svg-icon, .btn.btn-active-icon-success.show i,
+.btn.btn-active-icon-success.show .svg-icon, .show > .btn.btn-active-icon-success i,
+.show > .btn.btn-active-icon-success .svg-icon {
+ color: var(--bs-text-success);
+}
+.btn-check:checked + .btn.btn-active-icon-success.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-success.dropdown-toggle:after, .btn.btn-active-icon-success:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-success:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-success:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-success.active.dropdown-toggle:after, .btn.btn-active-icon-success.show.dropdown-toggle:after, .show > .btn.btn-active-icon-success.dropdown-toggle:after {
+ color: var(--bs-text-success);
+}
+
+.btn.btn-text-success {
+ color: var(--bs-text-success);
+}
+.btn-check:checked + .btn.btn-active-text-success, .btn-check:active + .btn.btn-active-text-success, .btn.btn-active-text-success:focus:not(.btn-active), .btn.btn-active-text-success:hover:not(.btn-active), .btn.btn-active-text-success:active:not(.btn-active), .btn.btn-active-text-success.active, .btn.btn-active-text-success.show, .show > .btn.btn-active-text-success {
+ color: var(--bs-text-success);
+}
+
+.btn.btn-color-info {
+ color: var(--bs-text-info);
+}
+.btn.btn-color-info i,
+.btn.btn-color-info .svg-icon {
+ color: var(--bs-text-info);
+}
+.btn.btn-color-info.dropdown-toggle:after {
+ color: var(--bs-text-info);
+}
+.btn-check:checked + .btn.btn-active-color-info, .btn-check:active + .btn.btn-active-color-info, .btn.btn-active-color-info:focus:not(.btn-active), .btn.btn-active-color-info:hover:not(.btn-active), .btn.btn-active-color-info:active:not(.btn-active), .btn.btn-active-color-info.active, .btn.btn-active-color-info.show, .show > .btn.btn-active-color-info {
+ color: var(--bs-text-info);
+}
+.btn-check:checked + .btn.btn-active-color-info i,
+.btn-check:checked + .btn.btn-active-color-info .svg-icon, .btn-check:active + .btn.btn-active-color-info i,
+.btn-check:active + .btn.btn-active-color-info .svg-icon, .btn.btn-active-color-info:focus:not(.btn-active) i,
+.btn.btn-active-color-info:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-info:hover:not(.btn-active) i,
+.btn.btn-active-color-info:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-info:active:not(.btn-active) i,
+.btn.btn-active-color-info:active:not(.btn-active) .svg-icon, .btn.btn-active-color-info.active i,
+.btn.btn-active-color-info.active .svg-icon, .btn.btn-active-color-info.show i,
+.btn.btn-active-color-info.show .svg-icon, .show > .btn.btn-active-color-info i,
+.show > .btn.btn-active-color-info .svg-icon {
+ color: var(--bs-text-info);
+}
+.btn-check:checked + .btn.btn-active-color-info.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-info.dropdown-toggle:after, .btn.btn-active-color-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-info.active.dropdown-toggle:after, .btn.btn-active-color-info.show.dropdown-toggle:after, .show > .btn.btn-active-color-info.dropdown-toggle:after {
+ color: var(--bs-text-info);
+}
+
+.btn.btn-icon-info i,
+.btn.btn-icon-info .svg-icon {
+ color: var(--bs-text-info);
+}
+.btn.btn-icon-info.dropdown-toggle:after {
+ color: var(--bs-text-info);
+}
+.btn-check:checked + .btn.btn-active-icon-info i,
+.btn-check:checked + .btn.btn-active-icon-info .svg-icon, .btn-check:active + .btn.btn-active-icon-info i,
+.btn-check:active + .btn.btn-active-icon-info .svg-icon, .btn.btn-active-icon-info:focus:not(.btn-active) i,
+.btn.btn-active-icon-info:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-info:hover:not(.btn-active) i,
+.btn.btn-active-icon-info:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-info:active:not(.btn-active) i,
+.btn.btn-active-icon-info:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-info.active i,
+.btn.btn-active-icon-info.active .svg-icon, .btn.btn-active-icon-info.show i,
+.btn.btn-active-icon-info.show .svg-icon, .show > .btn.btn-active-icon-info i,
+.show > .btn.btn-active-icon-info .svg-icon {
+ color: var(--bs-text-info);
+}
+.btn-check:checked + .btn.btn-active-icon-info.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-info.dropdown-toggle:after, .btn.btn-active-icon-info:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-info:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-info:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-info.active.dropdown-toggle:after, .btn.btn-active-icon-info.show.dropdown-toggle:after, .show > .btn.btn-active-icon-info.dropdown-toggle:after {
+ color: var(--bs-text-info);
+}
+
+.btn.btn-text-info {
+ color: var(--bs-text-info);
+}
+.btn-check:checked + .btn.btn-active-text-info, .btn-check:active + .btn.btn-active-text-info, .btn.btn-active-text-info:focus:not(.btn-active), .btn.btn-active-text-info:hover:not(.btn-active), .btn.btn-active-text-info:active:not(.btn-active), .btn.btn-active-text-info.active, .btn.btn-active-text-info.show, .show > .btn.btn-active-text-info {
+ color: var(--bs-text-info);
+}
+
+.btn.btn-color-warning {
+ color: var(--bs-text-warning);
+}
+.btn.btn-color-warning i,
+.btn.btn-color-warning .svg-icon {
+ color: var(--bs-text-warning);
+}
+.btn.btn-color-warning.dropdown-toggle:after {
+ color: var(--bs-text-warning);
+}
+.btn-check:checked + .btn.btn-active-color-warning, .btn-check:active + .btn.btn-active-color-warning, .btn.btn-active-color-warning:focus:not(.btn-active), .btn.btn-active-color-warning:hover:not(.btn-active), .btn.btn-active-color-warning:active:not(.btn-active), .btn.btn-active-color-warning.active, .btn.btn-active-color-warning.show, .show > .btn.btn-active-color-warning {
+ color: var(--bs-text-warning);
+}
+.btn-check:checked + .btn.btn-active-color-warning i,
+.btn-check:checked + .btn.btn-active-color-warning .svg-icon, .btn-check:active + .btn.btn-active-color-warning i,
+.btn-check:active + .btn.btn-active-color-warning .svg-icon, .btn.btn-active-color-warning:focus:not(.btn-active) i,
+.btn.btn-active-color-warning:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-warning:hover:not(.btn-active) i,
+.btn.btn-active-color-warning:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-warning:active:not(.btn-active) i,
+.btn.btn-active-color-warning:active:not(.btn-active) .svg-icon, .btn.btn-active-color-warning.active i,
+.btn.btn-active-color-warning.active .svg-icon, .btn.btn-active-color-warning.show i,
+.btn.btn-active-color-warning.show .svg-icon, .show > .btn.btn-active-color-warning i,
+.show > .btn.btn-active-color-warning .svg-icon {
+ color: var(--bs-text-warning);
+}
+.btn-check:checked + .btn.btn-active-color-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-warning.dropdown-toggle:after, .btn.btn-active-color-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-warning.active.dropdown-toggle:after, .btn.btn-active-color-warning.show.dropdown-toggle:after, .show > .btn.btn-active-color-warning.dropdown-toggle:after {
+ color: var(--bs-text-warning);
+}
+
+.btn.btn-icon-warning i,
+.btn.btn-icon-warning .svg-icon {
+ color: var(--bs-text-warning);
+}
+.btn.btn-icon-warning.dropdown-toggle:after {
+ color: var(--bs-text-warning);
+}
+.btn-check:checked + .btn.btn-active-icon-warning i,
+.btn-check:checked + .btn.btn-active-icon-warning .svg-icon, .btn-check:active + .btn.btn-active-icon-warning i,
+.btn-check:active + .btn.btn-active-icon-warning .svg-icon, .btn.btn-active-icon-warning:focus:not(.btn-active) i,
+.btn.btn-active-icon-warning:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-warning:hover:not(.btn-active) i,
+.btn.btn-active-icon-warning:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-warning:active:not(.btn-active) i,
+.btn.btn-active-icon-warning:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-warning.active i,
+.btn.btn-active-icon-warning.active .svg-icon, .btn.btn-active-icon-warning.show i,
+.btn.btn-active-icon-warning.show .svg-icon, .show > .btn.btn-active-icon-warning i,
+.show > .btn.btn-active-icon-warning .svg-icon {
+ color: var(--bs-text-warning);
+}
+.btn-check:checked + .btn.btn-active-icon-warning.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-warning.dropdown-toggle:after, .btn.btn-active-icon-warning:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-warning:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-warning:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-warning.active.dropdown-toggle:after, .btn.btn-active-icon-warning.show.dropdown-toggle:after, .show > .btn.btn-active-icon-warning.dropdown-toggle:after {
+ color: var(--bs-text-warning);
+}
+
+.btn.btn-text-warning {
+ color: var(--bs-text-warning);
+}
+.btn-check:checked + .btn.btn-active-text-warning, .btn-check:active + .btn.btn-active-text-warning, .btn.btn-active-text-warning:focus:not(.btn-active), .btn.btn-active-text-warning:hover:not(.btn-active), .btn.btn-active-text-warning:active:not(.btn-active), .btn.btn-active-text-warning.active, .btn.btn-active-text-warning.show, .show > .btn.btn-active-text-warning {
+ color: var(--bs-text-warning);
+}
+
+.btn.btn-color-danger {
+ color: var(--bs-text-danger);
+}
+.btn.btn-color-danger i,
+.btn.btn-color-danger .svg-icon {
+ color: var(--bs-text-danger);
+}
+.btn.btn-color-danger.dropdown-toggle:after {
+ color: var(--bs-text-danger);
+}
+.btn-check:checked + .btn.btn-active-color-danger, .btn-check:active + .btn.btn-active-color-danger, .btn.btn-active-color-danger:focus:not(.btn-active), .btn.btn-active-color-danger:hover:not(.btn-active), .btn.btn-active-color-danger:active:not(.btn-active), .btn.btn-active-color-danger.active, .btn.btn-active-color-danger.show, .show > .btn.btn-active-color-danger {
+ color: var(--bs-text-danger);
+}
+.btn-check:checked + .btn.btn-active-color-danger i,
+.btn-check:checked + .btn.btn-active-color-danger .svg-icon, .btn-check:active + .btn.btn-active-color-danger i,
+.btn-check:active + .btn.btn-active-color-danger .svg-icon, .btn.btn-active-color-danger:focus:not(.btn-active) i,
+.btn.btn-active-color-danger:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-danger:hover:not(.btn-active) i,
+.btn.btn-active-color-danger:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-danger:active:not(.btn-active) i,
+.btn.btn-active-color-danger:active:not(.btn-active) .svg-icon, .btn.btn-active-color-danger.active i,
+.btn.btn-active-color-danger.active .svg-icon, .btn.btn-active-color-danger.show i,
+.btn.btn-active-color-danger.show .svg-icon, .show > .btn.btn-active-color-danger i,
+.show > .btn.btn-active-color-danger .svg-icon {
+ color: var(--bs-text-danger);
+}
+.btn-check:checked + .btn.btn-active-color-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-danger.dropdown-toggle:after, .btn.btn-active-color-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-danger.active.dropdown-toggle:after, .btn.btn-active-color-danger.show.dropdown-toggle:after, .show > .btn.btn-active-color-danger.dropdown-toggle:after {
+ color: var(--bs-text-danger);
+}
+
+.btn.btn-icon-danger i,
+.btn.btn-icon-danger .svg-icon {
+ color: var(--bs-text-danger);
+}
+.btn.btn-icon-danger.dropdown-toggle:after {
+ color: var(--bs-text-danger);
+}
+.btn-check:checked + .btn.btn-active-icon-danger i,
+.btn-check:checked + .btn.btn-active-icon-danger .svg-icon, .btn-check:active + .btn.btn-active-icon-danger i,
+.btn-check:active + .btn.btn-active-icon-danger .svg-icon, .btn.btn-active-icon-danger:focus:not(.btn-active) i,
+.btn.btn-active-icon-danger:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-danger:hover:not(.btn-active) i,
+.btn.btn-active-icon-danger:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-danger:active:not(.btn-active) i,
+.btn.btn-active-icon-danger:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-danger.active i,
+.btn.btn-active-icon-danger.active .svg-icon, .btn.btn-active-icon-danger.show i,
+.btn.btn-active-icon-danger.show .svg-icon, .show > .btn.btn-active-icon-danger i,
+.show > .btn.btn-active-icon-danger .svg-icon {
+ color: var(--bs-text-danger);
+}
+.btn-check:checked + .btn.btn-active-icon-danger.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-danger.dropdown-toggle:after, .btn.btn-active-icon-danger:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-danger:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-danger:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-danger.active.dropdown-toggle:after, .btn.btn-active-icon-danger.show.dropdown-toggle:after, .show > .btn.btn-active-icon-danger.dropdown-toggle:after {
+ color: var(--bs-text-danger);
+}
+
+.btn.btn-text-danger {
+ color: var(--bs-text-danger);
+}
+.btn-check:checked + .btn.btn-active-text-danger, .btn-check:active + .btn.btn-active-text-danger, .btn.btn-active-text-danger:focus:not(.btn-active), .btn.btn-active-text-danger:hover:not(.btn-active), .btn.btn-active-text-danger:active:not(.btn-active), .btn.btn-active-text-danger.active, .btn.btn-active-text-danger.show, .show > .btn.btn-active-text-danger {
+ color: var(--bs-text-danger);
+}
+
+.btn.btn-color-dark {
+ color: var(--bs-text-dark);
+}
+.btn.btn-color-dark i,
+.btn.btn-color-dark .svg-icon {
+ color: var(--bs-text-dark);
+}
+.btn.btn-color-dark.dropdown-toggle:after {
+ color: var(--bs-text-dark);
+}
+.btn-check:checked + .btn.btn-active-color-dark, .btn-check:active + .btn.btn-active-color-dark, .btn.btn-active-color-dark:focus:not(.btn-active), .btn.btn-active-color-dark:hover:not(.btn-active), .btn.btn-active-color-dark:active:not(.btn-active), .btn.btn-active-color-dark.active, .btn.btn-active-color-dark.show, .show > .btn.btn-active-color-dark {
+ color: var(--bs-text-dark);
+}
+.btn-check:checked + .btn.btn-active-color-dark i,
+.btn-check:checked + .btn.btn-active-color-dark .svg-icon, .btn-check:active + .btn.btn-active-color-dark i,
+.btn-check:active + .btn.btn-active-color-dark .svg-icon, .btn.btn-active-color-dark:focus:not(.btn-active) i,
+.btn.btn-active-color-dark:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-dark:hover:not(.btn-active) i,
+.btn.btn-active-color-dark:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-dark:active:not(.btn-active) i,
+.btn.btn-active-color-dark:active:not(.btn-active) .svg-icon, .btn.btn-active-color-dark.active i,
+.btn.btn-active-color-dark.active .svg-icon, .btn.btn-active-color-dark.show i,
+.btn.btn-active-color-dark.show .svg-icon, .show > .btn.btn-active-color-dark i,
+.show > .btn.btn-active-color-dark .svg-icon {
+ color: var(--bs-text-dark);
+}
+.btn-check:checked + .btn.btn-active-color-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-dark.dropdown-toggle:after, .btn.btn-active-color-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-dark.active.dropdown-toggle:after, .btn.btn-active-color-dark.show.dropdown-toggle:after, .show > .btn.btn-active-color-dark.dropdown-toggle:after {
+ color: var(--bs-text-dark);
+}
+
+.btn.btn-icon-dark i,
+.btn.btn-icon-dark .svg-icon {
+ color: var(--bs-text-dark);
+}
+.btn.btn-icon-dark.dropdown-toggle:after {
+ color: var(--bs-text-dark);
+}
+.btn-check:checked + .btn.btn-active-icon-dark i,
+.btn-check:checked + .btn.btn-active-icon-dark .svg-icon, .btn-check:active + .btn.btn-active-icon-dark i,
+.btn-check:active + .btn.btn-active-icon-dark .svg-icon, .btn.btn-active-icon-dark:focus:not(.btn-active) i,
+.btn.btn-active-icon-dark:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-dark:hover:not(.btn-active) i,
+.btn.btn-active-icon-dark:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-dark:active:not(.btn-active) i,
+.btn.btn-active-icon-dark:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-dark.active i,
+.btn.btn-active-icon-dark.active .svg-icon, .btn.btn-active-icon-dark.show i,
+.btn.btn-active-icon-dark.show .svg-icon, .show > .btn.btn-active-icon-dark i,
+.show > .btn.btn-active-icon-dark .svg-icon {
+ color: var(--bs-text-dark);
+}
+.btn-check:checked + .btn.btn-active-icon-dark.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-dark.dropdown-toggle:after, .btn.btn-active-icon-dark:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-dark:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-dark:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-dark.active.dropdown-toggle:after, .btn.btn-active-icon-dark.show.dropdown-toggle:after, .show > .btn.btn-active-icon-dark.dropdown-toggle:after {
+ color: var(--bs-text-dark);
+}
+
+.btn.btn-text-dark {
+ color: var(--bs-text-dark);
+}
+.btn-check:checked + .btn.btn-active-text-dark, .btn-check:active + .btn.btn-active-text-dark, .btn.btn-active-text-dark:focus:not(.btn-active), .btn.btn-active-text-dark:hover:not(.btn-active), .btn.btn-active-text-dark:active:not(.btn-active), .btn.btn-active-text-dark.active, .btn.btn-active-text-dark.show, .show > .btn.btn-active-text-dark {
+ color: var(--bs-text-dark);
+}
+
+.btn.btn-color-muted {
+ color: var(--bs-text-muted);
+}
+.btn.btn-color-muted i,
+.btn.btn-color-muted .svg-icon {
+ color: var(--bs-text-muted);
+}
+.btn.btn-color-muted.dropdown-toggle:after {
+ color: var(--bs-text-muted);
+}
+.btn-check:checked + .btn.btn-active-color-muted, .btn-check:active + .btn.btn-active-color-muted, .btn.btn-active-color-muted:focus:not(.btn-active), .btn.btn-active-color-muted:hover:not(.btn-active), .btn.btn-active-color-muted:active:not(.btn-active), .btn.btn-active-color-muted.active, .btn.btn-active-color-muted.show, .show > .btn.btn-active-color-muted {
+ color: var(--bs-text-muted);
+}
+.btn-check:checked + .btn.btn-active-color-muted i,
+.btn-check:checked + .btn.btn-active-color-muted .svg-icon, .btn-check:active + .btn.btn-active-color-muted i,
+.btn-check:active + .btn.btn-active-color-muted .svg-icon, .btn.btn-active-color-muted:focus:not(.btn-active) i,
+.btn.btn-active-color-muted:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-muted:hover:not(.btn-active) i,
+.btn.btn-active-color-muted:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-muted:active:not(.btn-active) i,
+.btn.btn-active-color-muted:active:not(.btn-active) .svg-icon, .btn.btn-active-color-muted.active i,
+.btn.btn-active-color-muted.active .svg-icon, .btn.btn-active-color-muted.show i,
+.btn.btn-active-color-muted.show .svg-icon, .show > .btn.btn-active-color-muted i,
+.show > .btn.btn-active-color-muted .svg-icon {
+ color: var(--bs-text-muted);
+}
+.btn-check:checked + .btn.btn-active-color-muted.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-muted.dropdown-toggle:after, .btn.btn-active-color-muted:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-muted:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-muted:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-muted.active.dropdown-toggle:after, .btn.btn-active-color-muted.show.dropdown-toggle:after, .show > .btn.btn-active-color-muted.dropdown-toggle:after {
+ color: var(--bs-text-muted);
+}
+
+.btn.btn-icon-muted i,
+.btn.btn-icon-muted .svg-icon {
+ color: var(--bs-text-muted);
+}
+.btn.btn-icon-muted.dropdown-toggle:after {
+ color: var(--bs-text-muted);
+}
+.btn-check:checked + .btn.btn-active-icon-muted i,
+.btn-check:checked + .btn.btn-active-icon-muted .svg-icon, .btn-check:active + .btn.btn-active-icon-muted i,
+.btn-check:active + .btn.btn-active-icon-muted .svg-icon, .btn.btn-active-icon-muted:focus:not(.btn-active) i,
+.btn.btn-active-icon-muted:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-muted:hover:not(.btn-active) i,
+.btn.btn-active-icon-muted:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-muted:active:not(.btn-active) i,
+.btn.btn-active-icon-muted:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-muted.active i,
+.btn.btn-active-icon-muted.active .svg-icon, .btn.btn-active-icon-muted.show i,
+.btn.btn-active-icon-muted.show .svg-icon, .show > .btn.btn-active-icon-muted i,
+.show > .btn.btn-active-icon-muted .svg-icon {
+ color: var(--bs-text-muted);
+}
+.btn-check:checked + .btn.btn-active-icon-muted.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-muted.dropdown-toggle:after, .btn.btn-active-icon-muted:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-muted:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-muted:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-muted.active.dropdown-toggle:after, .btn.btn-active-icon-muted.show.dropdown-toggle:after, .show > .btn.btn-active-icon-muted.dropdown-toggle:after {
+ color: var(--bs-text-muted);
+}
+
+.btn.btn-text-muted {
+ color: var(--bs-text-muted);
+}
+.btn-check:checked + .btn.btn-active-text-muted, .btn-check:active + .btn.btn-active-text-muted, .btn.btn-active-text-muted:focus:not(.btn-active), .btn.btn-active-text-muted:hover:not(.btn-active), .btn.btn-active-text-muted:active:not(.btn-active), .btn.btn-active-text-muted.active, .btn.btn-active-text-muted.show, .show > .btn.btn-active-text-muted {
+ color: var(--bs-text-muted);
+}
+
+.btn.btn-color-gray-100 {
+ color: var(--bs-text-gray-100);
+}
+.btn.btn-color-gray-100 i,
+.btn.btn-color-gray-100 .svg-icon {
+ color: var(--bs-text-gray-100);
+}
+.btn.btn-color-gray-100.dropdown-toggle:after {
+ color: var(--bs-text-gray-100);
+}
+.btn-check:checked + .btn.btn-active-color-gray-100, .btn-check:active + .btn.btn-active-color-gray-100, .btn.btn-active-color-gray-100:focus:not(.btn-active), .btn.btn-active-color-gray-100:hover:not(.btn-active), .btn.btn-active-color-gray-100:active:not(.btn-active), .btn.btn-active-color-gray-100.active, .btn.btn-active-color-gray-100.show, .show > .btn.btn-active-color-gray-100 {
+ color: var(--bs-text-gray-100);
+}
+.btn-check:checked + .btn.btn-active-color-gray-100 i,
+.btn-check:checked + .btn.btn-active-color-gray-100 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-100 i,
+.btn-check:active + .btn.btn-active-color-gray-100 .svg-icon, .btn.btn-active-color-gray-100:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-100:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-100:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-100:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-100:active:not(.btn-active) i,
+.btn.btn-active-color-gray-100:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-100.active i,
+.btn.btn-active-color-gray-100.active .svg-icon, .btn.btn-active-color-gray-100.show i,
+.btn.btn-active-color-gray-100.show .svg-icon, .show > .btn.btn-active-color-gray-100 i,
+.show > .btn.btn-active-color-gray-100 .svg-icon {
+ color: var(--bs-text-gray-100);
+}
+.btn-check:checked + .btn.btn-active-color-gray-100.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-100.dropdown-toggle:after, .btn.btn-active-color-gray-100:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-100:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-100:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-100.active.dropdown-toggle:after, .btn.btn-active-color-gray-100.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-100.dropdown-toggle:after {
+ color: var(--bs-text-gray-100);
+}
+
+.btn.btn-icon-gray-100 i,
+.btn.btn-icon-gray-100 .svg-icon {
+ color: var(--bs-text-gray-100);
+}
+.btn.btn-icon-gray-100.dropdown-toggle:after {
+ color: var(--bs-text-gray-100);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-100 i,
+.btn-check:checked + .btn.btn-active-icon-gray-100 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-100 i,
+.btn-check:active + .btn.btn-active-icon-gray-100 .svg-icon, .btn.btn-active-icon-gray-100:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-100:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-100:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-100:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-100:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-100:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-100.active i,
+.btn.btn-active-icon-gray-100.active .svg-icon, .btn.btn-active-icon-gray-100.show i,
+.btn.btn-active-icon-gray-100.show .svg-icon, .show > .btn.btn-active-icon-gray-100 i,
+.show > .btn.btn-active-icon-gray-100 .svg-icon {
+ color: var(--bs-text-gray-100);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-100.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-100.dropdown-toggle:after, .btn.btn-active-icon-gray-100:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-100:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-100:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-100.active.dropdown-toggle:after, .btn.btn-active-icon-gray-100.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-100.dropdown-toggle:after {
+ color: var(--bs-text-gray-100);
+}
+
+.btn.btn-text-gray-100 {
+ color: var(--bs-text-gray-100);
+}
+.btn-check:checked + .btn.btn-active-text-gray-100, .btn-check:active + .btn.btn-active-text-gray-100, .btn.btn-active-text-gray-100:focus:not(.btn-active), .btn.btn-active-text-gray-100:hover:not(.btn-active), .btn.btn-active-text-gray-100:active:not(.btn-active), .btn.btn-active-text-gray-100.active, .btn.btn-active-text-gray-100.show, .show > .btn.btn-active-text-gray-100 {
+ color: var(--bs-text-gray-100);
+}
+
+.btn.btn-color-gray-200 {
+ color: var(--bs-text-gray-200);
+}
+.btn.btn-color-gray-200 i,
+.btn.btn-color-gray-200 .svg-icon {
+ color: var(--bs-text-gray-200);
+}
+.btn.btn-color-gray-200.dropdown-toggle:after {
+ color: var(--bs-text-gray-200);
+}
+.btn-check:checked + .btn.btn-active-color-gray-200, .btn-check:active + .btn.btn-active-color-gray-200, .btn.btn-active-color-gray-200:focus:not(.btn-active), .btn.btn-active-color-gray-200:hover:not(.btn-active), .btn.btn-active-color-gray-200:active:not(.btn-active), .btn.btn-active-color-gray-200.active, .btn.btn-active-color-gray-200.show, .show > .btn.btn-active-color-gray-200 {
+ color: var(--bs-text-gray-200);
+}
+.btn-check:checked + .btn.btn-active-color-gray-200 i,
+.btn-check:checked + .btn.btn-active-color-gray-200 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-200 i,
+.btn-check:active + .btn.btn-active-color-gray-200 .svg-icon, .btn.btn-active-color-gray-200:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-200:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-200:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-200:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-200:active:not(.btn-active) i,
+.btn.btn-active-color-gray-200:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-200.active i,
+.btn.btn-active-color-gray-200.active .svg-icon, .btn.btn-active-color-gray-200.show i,
+.btn.btn-active-color-gray-200.show .svg-icon, .show > .btn.btn-active-color-gray-200 i,
+.show > .btn.btn-active-color-gray-200 .svg-icon {
+ color: var(--bs-text-gray-200);
+}
+.btn-check:checked + .btn.btn-active-color-gray-200.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-200.dropdown-toggle:after, .btn.btn-active-color-gray-200:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-200:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-200:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-200.active.dropdown-toggle:after, .btn.btn-active-color-gray-200.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-200.dropdown-toggle:after {
+ color: var(--bs-text-gray-200);
+}
+
+.btn.btn-icon-gray-200 i,
+.btn.btn-icon-gray-200 .svg-icon {
+ color: var(--bs-text-gray-200);
+}
+.btn.btn-icon-gray-200.dropdown-toggle:after {
+ color: var(--bs-text-gray-200);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-200 i,
+.btn-check:checked + .btn.btn-active-icon-gray-200 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-200 i,
+.btn-check:active + .btn.btn-active-icon-gray-200 .svg-icon, .btn.btn-active-icon-gray-200:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-200:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-200:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-200:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-200:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-200:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-200.active i,
+.btn.btn-active-icon-gray-200.active .svg-icon, .btn.btn-active-icon-gray-200.show i,
+.btn.btn-active-icon-gray-200.show .svg-icon, .show > .btn.btn-active-icon-gray-200 i,
+.show > .btn.btn-active-icon-gray-200 .svg-icon {
+ color: var(--bs-text-gray-200);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-200.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-200.dropdown-toggle:after, .btn.btn-active-icon-gray-200:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-200:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-200:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-200.active.dropdown-toggle:after, .btn.btn-active-icon-gray-200.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-200.dropdown-toggle:after {
+ color: var(--bs-text-gray-200);
+}
+
+.btn.btn-text-gray-200 {
+ color: var(--bs-text-gray-200);
+}
+.btn-check:checked + .btn.btn-active-text-gray-200, .btn-check:active + .btn.btn-active-text-gray-200, .btn.btn-active-text-gray-200:focus:not(.btn-active), .btn.btn-active-text-gray-200:hover:not(.btn-active), .btn.btn-active-text-gray-200:active:not(.btn-active), .btn.btn-active-text-gray-200.active, .btn.btn-active-text-gray-200.show, .show > .btn.btn-active-text-gray-200 {
+ color: var(--bs-text-gray-200);
+}
+
+.btn.btn-color-gray-300 {
+ color: var(--bs-text-gray-300);
+}
+.btn.btn-color-gray-300 i,
+.btn.btn-color-gray-300 .svg-icon {
+ color: var(--bs-text-gray-300);
+}
+.btn.btn-color-gray-300.dropdown-toggle:after {
+ color: var(--bs-text-gray-300);
+}
+.btn-check:checked + .btn.btn-active-color-gray-300, .btn-check:active + .btn.btn-active-color-gray-300, .btn.btn-active-color-gray-300:focus:not(.btn-active), .btn.btn-active-color-gray-300:hover:not(.btn-active), .btn.btn-active-color-gray-300:active:not(.btn-active), .btn.btn-active-color-gray-300.active, .btn.btn-active-color-gray-300.show, .show > .btn.btn-active-color-gray-300 {
+ color: var(--bs-text-gray-300);
+}
+.btn-check:checked + .btn.btn-active-color-gray-300 i,
+.btn-check:checked + .btn.btn-active-color-gray-300 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-300 i,
+.btn-check:active + .btn.btn-active-color-gray-300 .svg-icon, .btn.btn-active-color-gray-300:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-300:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-300:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-300:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-300:active:not(.btn-active) i,
+.btn.btn-active-color-gray-300:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-300.active i,
+.btn.btn-active-color-gray-300.active .svg-icon, .btn.btn-active-color-gray-300.show i,
+.btn.btn-active-color-gray-300.show .svg-icon, .show > .btn.btn-active-color-gray-300 i,
+.show > .btn.btn-active-color-gray-300 .svg-icon {
+ color: var(--bs-text-gray-300);
+}
+.btn-check:checked + .btn.btn-active-color-gray-300.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-300.dropdown-toggle:after, .btn.btn-active-color-gray-300:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-300:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-300:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-300.active.dropdown-toggle:after, .btn.btn-active-color-gray-300.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-300.dropdown-toggle:after {
+ color: var(--bs-text-gray-300);
+}
+
+.btn.btn-icon-gray-300 i,
+.btn.btn-icon-gray-300 .svg-icon {
+ color: var(--bs-text-gray-300);
+}
+.btn.btn-icon-gray-300.dropdown-toggle:after {
+ color: var(--bs-text-gray-300);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-300 i,
+.btn-check:checked + .btn.btn-active-icon-gray-300 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-300 i,
+.btn-check:active + .btn.btn-active-icon-gray-300 .svg-icon, .btn.btn-active-icon-gray-300:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-300:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-300:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-300:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-300:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-300:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-300.active i,
+.btn.btn-active-icon-gray-300.active .svg-icon, .btn.btn-active-icon-gray-300.show i,
+.btn.btn-active-icon-gray-300.show .svg-icon, .show > .btn.btn-active-icon-gray-300 i,
+.show > .btn.btn-active-icon-gray-300 .svg-icon {
+ color: var(--bs-text-gray-300);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-300.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-300.dropdown-toggle:after, .btn.btn-active-icon-gray-300:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-300:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-300:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-300.active.dropdown-toggle:after, .btn.btn-active-icon-gray-300.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-300.dropdown-toggle:after {
+ color: var(--bs-text-gray-300);
+}
+
+.btn.btn-text-gray-300 {
+ color: var(--bs-text-gray-300);
+}
+.btn-check:checked + .btn.btn-active-text-gray-300, .btn-check:active + .btn.btn-active-text-gray-300, .btn.btn-active-text-gray-300:focus:not(.btn-active), .btn.btn-active-text-gray-300:hover:not(.btn-active), .btn.btn-active-text-gray-300:active:not(.btn-active), .btn.btn-active-text-gray-300.active, .btn.btn-active-text-gray-300.show, .show > .btn.btn-active-text-gray-300 {
+ color: var(--bs-text-gray-300);
+}
+
+.btn.btn-color-gray-400 {
+ color: var(--bs-text-gray-400);
+}
+.btn.btn-color-gray-400 i,
+.btn.btn-color-gray-400 .svg-icon {
+ color: var(--bs-text-gray-400);
+}
+.btn.btn-color-gray-400.dropdown-toggle:after {
+ color: var(--bs-text-gray-400);
+}
+.btn-check:checked + .btn.btn-active-color-gray-400, .btn-check:active + .btn.btn-active-color-gray-400, .btn.btn-active-color-gray-400:focus:not(.btn-active), .btn.btn-active-color-gray-400:hover:not(.btn-active), .btn.btn-active-color-gray-400:active:not(.btn-active), .btn.btn-active-color-gray-400.active, .btn.btn-active-color-gray-400.show, .show > .btn.btn-active-color-gray-400 {
+ color: var(--bs-text-gray-400);
+}
+.btn-check:checked + .btn.btn-active-color-gray-400 i,
+.btn-check:checked + .btn.btn-active-color-gray-400 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-400 i,
+.btn-check:active + .btn.btn-active-color-gray-400 .svg-icon, .btn.btn-active-color-gray-400:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-400:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-400:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-400:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-400:active:not(.btn-active) i,
+.btn.btn-active-color-gray-400:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-400.active i,
+.btn.btn-active-color-gray-400.active .svg-icon, .btn.btn-active-color-gray-400.show i,
+.btn.btn-active-color-gray-400.show .svg-icon, .show > .btn.btn-active-color-gray-400 i,
+.show > .btn.btn-active-color-gray-400 .svg-icon {
+ color: var(--bs-text-gray-400);
+}
+.btn-check:checked + .btn.btn-active-color-gray-400.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-400.dropdown-toggle:after, .btn.btn-active-color-gray-400:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-400:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-400:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-400.active.dropdown-toggle:after, .btn.btn-active-color-gray-400.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-400.dropdown-toggle:after {
+ color: var(--bs-text-gray-400);
+}
+
+.btn.btn-icon-gray-400 i,
+.btn.btn-icon-gray-400 .svg-icon {
+ color: var(--bs-text-gray-400);
+}
+.btn.btn-icon-gray-400.dropdown-toggle:after {
+ color: var(--bs-text-gray-400);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-400 i,
+.btn-check:checked + .btn.btn-active-icon-gray-400 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-400 i,
+.btn-check:active + .btn.btn-active-icon-gray-400 .svg-icon, .btn.btn-active-icon-gray-400:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-400:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-400:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-400:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-400:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-400:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-400.active i,
+.btn.btn-active-icon-gray-400.active .svg-icon, .btn.btn-active-icon-gray-400.show i,
+.btn.btn-active-icon-gray-400.show .svg-icon, .show > .btn.btn-active-icon-gray-400 i,
+.show > .btn.btn-active-icon-gray-400 .svg-icon {
+ color: var(--bs-text-gray-400);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-400.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-400.dropdown-toggle:after, .btn.btn-active-icon-gray-400:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-400:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-400:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-400.active.dropdown-toggle:after, .btn.btn-active-icon-gray-400.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-400.dropdown-toggle:after {
+ color: var(--bs-text-gray-400);
+}
+
+.btn.btn-text-gray-400 {
+ color: var(--bs-text-gray-400);
+}
+.btn-check:checked + .btn.btn-active-text-gray-400, .btn-check:active + .btn.btn-active-text-gray-400, .btn.btn-active-text-gray-400:focus:not(.btn-active), .btn.btn-active-text-gray-400:hover:not(.btn-active), .btn.btn-active-text-gray-400:active:not(.btn-active), .btn.btn-active-text-gray-400.active, .btn.btn-active-text-gray-400.show, .show > .btn.btn-active-text-gray-400 {
+ color: var(--bs-text-gray-400);
+}
+
+.btn.btn-color-gray-500 {
+ color: var(--bs-text-gray-500);
+}
+.btn.btn-color-gray-500 i,
+.btn.btn-color-gray-500 .svg-icon {
+ color: var(--bs-text-gray-500);
+}
+.btn.btn-color-gray-500.dropdown-toggle:after {
+ color: var(--bs-text-gray-500);
+}
+.btn-check:checked + .btn.btn-active-color-gray-500, .btn-check:active + .btn.btn-active-color-gray-500, .btn.btn-active-color-gray-500:focus:not(.btn-active), .btn.btn-active-color-gray-500:hover:not(.btn-active), .btn.btn-active-color-gray-500:active:not(.btn-active), .btn.btn-active-color-gray-500.active, .btn.btn-active-color-gray-500.show, .show > .btn.btn-active-color-gray-500 {
+ color: var(--bs-text-gray-500);
+}
+.btn-check:checked + .btn.btn-active-color-gray-500 i,
+.btn-check:checked + .btn.btn-active-color-gray-500 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-500 i,
+.btn-check:active + .btn.btn-active-color-gray-500 .svg-icon, .btn.btn-active-color-gray-500:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-500:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-500:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-500:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-500:active:not(.btn-active) i,
+.btn.btn-active-color-gray-500:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-500.active i,
+.btn.btn-active-color-gray-500.active .svg-icon, .btn.btn-active-color-gray-500.show i,
+.btn.btn-active-color-gray-500.show .svg-icon, .show > .btn.btn-active-color-gray-500 i,
+.show > .btn.btn-active-color-gray-500 .svg-icon {
+ color: var(--bs-text-gray-500);
+}
+.btn-check:checked + .btn.btn-active-color-gray-500.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-500.dropdown-toggle:after, .btn.btn-active-color-gray-500:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-500:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-500:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-500.active.dropdown-toggle:after, .btn.btn-active-color-gray-500.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-500.dropdown-toggle:after {
+ color: var(--bs-text-gray-500);
+}
+
+.btn.btn-icon-gray-500 i,
+.btn.btn-icon-gray-500 .svg-icon {
+ color: var(--bs-text-gray-500);
+}
+.btn.btn-icon-gray-500.dropdown-toggle:after {
+ color: var(--bs-text-gray-500);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-500 i,
+.btn-check:checked + .btn.btn-active-icon-gray-500 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-500 i,
+.btn-check:active + .btn.btn-active-icon-gray-500 .svg-icon, .btn.btn-active-icon-gray-500:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-500:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-500:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-500:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-500:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-500:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-500.active i,
+.btn.btn-active-icon-gray-500.active .svg-icon, .btn.btn-active-icon-gray-500.show i,
+.btn.btn-active-icon-gray-500.show .svg-icon, .show > .btn.btn-active-icon-gray-500 i,
+.show > .btn.btn-active-icon-gray-500 .svg-icon {
+ color: var(--bs-text-gray-500);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-500.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-500.dropdown-toggle:after, .btn.btn-active-icon-gray-500:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-500:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-500:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-500.active.dropdown-toggle:after, .btn.btn-active-icon-gray-500.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-500.dropdown-toggle:after {
+ color: var(--bs-text-gray-500);
+}
+
+.btn.btn-text-gray-500 {
+ color: var(--bs-text-gray-500);
+}
+.btn-check:checked + .btn.btn-active-text-gray-500, .btn-check:active + .btn.btn-active-text-gray-500, .btn.btn-active-text-gray-500:focus:not(.btn-active), .btn.btn-active-text-gray-500:hover:not(.btn-active), .btn.btn-active-text-gray-500:active:not(.btn-active), .btn.btn-active-text-gray-500.active, .btn.btn-active-text-gray-500.show, .show > .btn.btn-active-text-gray-500 {
+ color: var(--bs-text-gray-500);
+}
+
+.btn.btn-color-gray-600 {
+ color: var(--bs-text-gray-600);
+}
+.btn.btn-color-gray-600 i,
+.btn.btn-color-gray-600 .svg-icon {
+ color: var(--bs-text-gray-600);
+}
+.btn.btn-color-gray-600.dropdown-toggle:after {
+ color: var(--bs-text-gray-600);
+}
+.btn-check:checked + .btn.btn-active-color-gray-600, .btn-check:active + .btn.btn-active-color-gray-600, .btn.btn-active-color-gray-600:focus:not(.btn-active), .btn.btn-active-color-gray-600:hover:not(.btn-active), .btn.btn-active-color-gray-600:active:not(.btn-active), .btn.btn-active-color-gray-600.active, .btn.btn-active-color-gray-600.show, .show > .btn.btn-active-color-gray-600 {
+ color: var(--bs-text-gray-600);
+}
+.btn-check:checked + .btn.btn-active-color-gray-600 i,
+.btn-check:checked + .btn.btn-active-color-gray-600 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-600 i,
+.btn-check:active + .btn.btn-active-color-gray-600 .svg-icon, .btn.btn-active-color-gray-600:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-600:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-600:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-600:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-600:active:not(.btn-active) i,
+.btn.btn-active-color-gray-600:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-600.active i,
+.btn.btn-active-color-gray-600.active .svg-icon, .btn.btn-active-color-gray-600.show i,
+.btn.btn-active-color-gray-600.show .svg-icon, .show > .btn.btn-active-color-gray-600 i,
+.show > .btn.btn-active-color-gray-600 .svg-icon {
+ color: var(--bs-text-gray-600);
+}
+.btn-check:checked + .btn.btn-active-color-gray-600.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-600.dropdown-toggle:after, .btn.btn-active-color-gray-600:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-600:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-600:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-600.active.dropdown-toggle:after, .btn.btn-active-color-gray-600.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-600.dropdown-toggle:after {
+ color: var(--bs-text-gray-600);
+}
+
+.btn.btn-icon-gray-600 i,
+.btn.btn-icon-gray-600 .svg-icon {
+ color: var(--bs-text-gray-600);
+}
+.btn.btn-icon-gray-600.dropdown-toggle:after {
+ color: var(--bs-text-gray-600);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-600 i,
+.btn-check:checked + .btn.btn-active-icon-gray-600 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-600 i,
+.btn-check:active + .btn.btn-active-icon-gray-600 .svg-icon, .btn.btn-active-icon-gray-600:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-600:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-600:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-600:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-600:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-600:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-600.active i,
+.btn.btn-active-icon-gray-600.active .svg-icon, .btn.btn-active-icon-gray-600.show i,
+.btn.btn-active-icon-gray-600.show .svg-icon, .show > .btn.btn-active-icon-gray-600 i,
+.show > .btn.btn-active-icon-gray-600 .svg-icon {
+ color: var(--bs-text-gray-600);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-600.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-600.dropdown-toggle:after, .btn.btn-active-icon-gray-600:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-600:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-600:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-600.active.dropdown-toggle:after, .btn.btn-active-icon-gray-600.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-600.dropdown-toggle:after {
+ color: var(--bs-text-gray-600);
+}
+
+.btn.btn-text-gray-600 {
+ color: var(--bs-text-gray-600);
+}
+.btn-check:checked + .btn.btn-active-text-gray-600, .btn-check:active + .btn.btn-active-text-gray-600, .btn.btn-active-text-gray-600:focus:not(.btn-active), .btn.btn-active-text-gray-600:hover:not(.btn-active), .btn.btn-active-text-gray-600:active:not(.btn-active), .btn.btn-active-text-gray-600.active, .btn.btn-active-text-gray-600.show, .show > .btn.btn-active-text-gray-600 {
+ color: var(--bs-text-gray-600);
+}
+
+.btn.btn-color-gray-700 {
+ color: var(--bs-text-gray-700);
+}
+.btn.btn-color-gray-700 i,
+.btn.btn-color-gray-700 .svg-icon {
+ color: var(--bs-text-gray-700);
+}
+.btn.btn-color-gray-700.dropdown-toggle:after {
+ color: var(--bs-text-gray-700);
+}
+.btn-check:checked + .btn.btn-active-color-gray-700, .btn-check:active + .btn.btn-active-color-gray-700, .btn.btn-active-color-gray-700:focus:not(.btn-active), .btn.btn-active-color-gray-700:hover:not(.btn-active), .btn.btn-active-color-gray-700:active:not(.btn-active), .btn.btn-active-color-gray-700.active, .btn.btn-active-color-gray-700.show, .show > .btn.btn-active-color-gray-700 {
+ color: var(--bs-text-gray-700);
+}
+.btn-check:checked + .btn.btn-active-color-gray-700 i,
+.btn-check:checked + .btn.btn-active-color-gray-700 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-700 i,
+.btn-check:active + .btn.btn-active-color-gray-700 .svg-icon, .btn.btn-active-color-gray-700:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-700:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-700:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-700:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-700:active:not(.btn-active) i,
+.btn.btn-active-color-gray-700:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-700.active i,
+.btn.btn-active-color-gray-700.active .svg-icon, .btn.btn-active-color-gray-700.show i,
+.btn.btn-active-color-gray-700.show .svg-icon, .show > .btn.btn-active-color-gray-700 i,
+.show > .btn.btn-active-color-gray-700 .svg-icon {
+ color: var(--bs-text-gray-700);
+}
+.btn-check:checked + .btn.btn-active-color-gray-700.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-700.dropdown-toggle:after, .btn.btn-active-color-gray-700:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-700:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-700:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-700.active.dropdown-toggle:after, .btn.btn-active-color-gray-700.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-700.dropdown-toggle:after {
+ color: var(--bs-text-gray-700);
+}
+
+.btn.btn-icon-gray-700 i,
+.btn.btn-icon-gray-700 .svg-icon {
+ color: var(--bs-text-gray-700);
+}
+.btn.btn-icon-gray-700.dropdown-toggle:after {
+ color: var(--bs-text-gray-700);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-700 i,
+.btn-check:checked + .btn.btn-active-icon-gray-700 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-700 i,
+.btn-check:active + .btn.btn-active-icon-gray-700 .svg-icon, .btn.btn-active-icon-gray-700:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-700:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-700:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-700:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-700:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-700:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-700.active i,
+.btn.btn-active-icon-gray-700.active .svg-icon, .btn.btn-active-icon-gray-700.show i,
+.btn.btn-active-icon-gray-700.show .svg-icon, .show > .btn.btn-active-icon-gray-700 i,
+.show > .btn.btn-active-icon-gray-700 .svg-icon {
+ color: var(--bs-text-gray-700);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-700.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-700.dropdown-toggle:after, .btn.btn-active-icon-gray-700:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-700:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-700:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-700.active.dropdown-toggle:after, .btn.btn-active-icon-gray-700.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-700.dropdown-toggle:after {
+ color: var(--bs-text-gray-700);
+}
+
+.btn.btn-text-gray-700 {
+ color: var(--bs-text-gray-700);
+}
+.btn-check:checked + .btn.btn-active-text-gray-700, .btn-check:active + .btn.btn-active-text-gray-700, .btn.btn-active-text-gray-700:focus:not(.btn-active), .btn.btn-active-text-gray-700:hover:not(.btn-active), .btn.btn-active-text-gray-700:active:not(.btn-active), .btn.btn-active-text-gray-700.active, .btn.btn-active-text-gray-700.show, .show > .btn.btn-active-text-gray-700 {
+ color: var(--bs-text-gray-700);
+}
+
+.btn.btn-color-gray-800 {
+ color: var(--bs-text-gray-800);
+}
+.btn.btn-color-gray-800 i,
+.btn.btn-color-gray-800 .svg-icon {
+ color: var(--bs-text-gray-800);
+}
+.btn.btn-color-gray-800.dropdown-toggle:after {
+ color: var(--bs-text-gray-800);
+}
+.btn-check:checked + .btn.btn-active-color-gray-800, .btn-check:active + .btn.btn-active-color-gray-800, .btn.btn-active-color-gray-800:focus:not(.btn-active), .btn.btn-active-color-gray-800:hover:not(.btn-active), .btn.btn-active-color-gray-800:active:not(.btn-active), .btn.btn-active-color-gray-800.active, .btn.btn-active-color-gray-800.show, .show > .btn.btn-active-color-gray-800 {
+ color: var(--bs-text-gray-800);
+}
+.btn-check:checked + .btn.btn-active-color-gray-800 i,
+.btn-check:checked + .btn.btn-active-color-gray-800 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-800 i,
+.btn-check:active + .btn.btn-active-color-gray-800 .svg-icon, .btn.btn-active-color-gray-800:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-800:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-800:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-800:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-800:active:not(.btn-active) i,
+.btn.btn-active-color-gray-800:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-800.active i,
+.btn.btn-active-color-gray-800.active .svg-icon, .btn.btn-active-color-gray-800.show i,
+.btn.btn-active-color-gray-800.show .svg-icon, .show > .btn.btn-active-color-gray-800 i,
+.show > .btn.btn-active-color-gray-800 .svg-icon {
+ color: var(--bs-text-gray-800);
+}
+.btn-check:checked + .btn.btn-active-color-gray-800.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-800.dropdown-toggle:after, .btn.btn-active-color-gray-800:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-800:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-800:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-800.active.dropdown-toggle:after, .btn.btn-active-color-gray-800.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-800.dropdown-toggle:after {
+ color: var(--bs-text-gray-800);
+}
+
+.btn.btn-icon-gray-800 i,
+.btn.btn-icon-gray-800 .svg-icon {
+ color: var(--bs-text-gray-800);
+}
+.btn.btn-icon-gray-800.dropdown-toggle:after {
+ color: var(--bs-text-gray-800);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-800 i,
+.btn-check:checked + .btn.btn-active-icon-gray-800 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-800 i,
+.btn-check:active + .btn.btn-active-icon-gray-800 .svg-icon, .btn.btn-active-icon-gray-800:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-800:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-800:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-800:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-800:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-800:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-800.active i,
+.btn.btn-active-icon-gray-800.active .svg-icon, .btn.btn-active-icon-gray-800.show i,
+.btn.btn-active-icon-gray-800.show .svg-icon, .show > .btn.btn-active-icon-gray-800 i,
+.show > .btn.btn-active-icon-gray-800 .svg-icon {
+ color: var(--bs-text-gray-800);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-800.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-800.dropdown-toggle:after, .btn.btn-active-icon-gray-800:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-800:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-800:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-800.active.dropdown-toggle:after, .btn.btn-active-icon-gray-800.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-800.dropdown-toggle:after {
+ color: var(--bs-text-gray-800);
+}
+
+.btn.btn-text-gray-800 {
+ color: var(--bs-text-gray-800);
+}
+.btn-check:checked + .btn.btn-active-text-gray-800, .btn-check:active + .btn.btn-active-text-gray-800, .btn.btn-active-text-gray-800:focus:not(.btn-active), .btn.btn-active-text-gray-800:hover:not(.btn-active), .btn.btn-active-text-gray-800:active:not(.btn-active), .btn.btn-active-text-gray-800.active, .btn.btn-active-text-gray-800.show, .show > .btn.btn-active-text-gray-800 {
+ color: var(--bs-text-gray-800);
+}
+
+.btn.btn-color-gray-900 {
+ color: var(--bs-text-gray-900);
+}
+.btn.btn-color-gray-900 i,
+.btn.btn-color-gray-900 .svg-icon {
+ color: var(--bs-text-gray-900);
+}
+.btn.btn-color-gray-900.dropdown-toggle:after {
+ color: var(--bs-text-gray-900);
+}
+.btn-check:checked + .btn.btn-active-color-gray-900, .btn-check:active + .btn.btn-active-color-gray-900, .btn.btn-active-color-gray-900:focus:not(.btn-active), .btn.btn-active-color-gray-900:hover:not(.btn-active), .btn.btn-active-color-gray-900:active:not(.btn-active), .btn.btn-active-color-gray-900.active, .btn.btn-active-color-gray-900.show, .show > .btn.btn-active-color-gray-900 {
+ color: var(--bs-text-gray-900);
+}
+.btn-check:checked + .btn.btn-active-color-gray-900 i,
+.btn-check:checked + .btn.btn-active-color-gray-900 .svg-icon, .btn-check:active + .btn.btn-active-color-gray-900 i,
+.btn-check:active + .btn.btn-active-color-gray-900 .svg-icon, .btn.btn-active-color-gray-900:focus:not(.btn-active) i,
+.btn.btn-active-color-gray-900:focus:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-900:hover:not(.btn-active) i,
+.btn.btn-active-color-gray-900:hover:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-900:active:not(.btn-active) i,
+.btn.btn-active-color-gray-900:active:not(.btn-active) .svg-icon, .btn.btn-active-color-gray-900.active i,
+.btn.btn-active-color-gray-900.active .svg-icon, .btn.btn-active-color-gray-900.show i,
+.btn.btn-active-color-gray-900.show .svg-icon, .show > .btn.btn-active-color-gray-900 i,
+.show > .btn.btn-active-color-gray-900 .svg-icon {
+ color: var(--bs-text-gray-900);
+}
+.btn-check:checked + .btn.btn-active-color-gray-900.dropdown-toggle:after, .btn-check:active + .btn.btn-active-color-gray-900.dropdown-toggle:after, .btn.btn-active-color-gray-900:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-900:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-900:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-color-gray-900.active.dropdown-toggle:after, .btn.btn-active-color-gray-900.show.dropdown-toggle:after, .show > .btn.btn-active-color-gray-900.dropdown-toggle:after {
+ color: var(--bs-text-gray-900);
+}
+
+.btn.btn-icon-gray-900 i,
+.btn.btn-icon-gray-900 .svg-icon {
+ color: var(--bs-text-gray-900);
+}
+.btn.btn-icon-gray-900.dropdown-toggle:after {
+ color: var(--bs-text-gray-900);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-900 i,
+.btn-check:checked + .btn.btn-active-icon-gray-900 .svg-icon, .btn-check:active + .btn.btn-active-icon-gray-900 i,
+.btn-check:active + .btn.btn-active-icon-gray-900 .svg-icon, .btn.btn-active-icon-gray-900:focus:not(.btn-active) i,
+.btn.btn-active-icon-gray-900:focus:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-900:hover:not(.btn-active) i,
+.btn.btn-active-icon-gray-900:hover:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-900:active:not(.btn-active) i,
+.btn.btn-active-icon-gray-900:active:not(.btn-active) .svg-icon, .btn.btn-active-icon-gray-900.active i,
+.btn.btn-active-icon-gray-900.active .svg-icon, .btn.btn-active-icon-gray-900.show i,
+.btn.btn-active-icon-gray-900.show .svg-icon, .show > .btn.btn-active-icon-gray-900 i,
+.show > .btn.btn-active-icon-gray-900 .svg-icon {
+ color: var(--bs-text-gray-900);
+}
+.btn-check:checked + .btn.btn-active-icon-gray-900.dropdown-toggle:after, .btn-check:active + .btn.btn-active-icon-gray-900.dropdown-toggle:after, .btn.btn-active-icon-gray-900:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-900:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-900:active:not(.btn-active).dropdown-toggle:after, .btn.btn-active-icon-gray-900.active.dropdown-toggle:after, .btn.btn-active-icon-gray-900.show.dropdown-toggle:after, .show > .btn.btn-active-icon-gray-900.dropdown-toggle:after {
+ color: var(--bs-text-gray-900);
+}
+
+.btn.btn-text-gray-900 {
+ color: var(--bs-text-gray-900);
+}
+.btn-check:checked + .btn.btn-active-text-gray-900, .btn-check:active + .btn.btn-active-text-gray-900, .btn.btn-active-text-gray-900:focus:not(.btn-active), .btn.btn-active-text-gray-900:hover:not(.btn-active), .btn.btn-active-text-gray-900:active:not(.btn-active), .btn.btn-active-text-gray-900.active, .btn.btn-active-text-gray-900.show, .show > .btn.btn-active-text-gray-900 {
+ color: var(--bs-text-gray-900);
+}
+
+.btn.btn-facebook {
+ color: #ffffff;
+ border-color: #3b5998;
+ background-color: #3b5998;
+}
+.btn.btn-facebook i,
+.btn.btn-facebook .svg-icon {
+ color: #ffffff;
+}
+.btn.btn-facebook.dropdown-toggle:after {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-facebook, .btn-check:active + .btn.btn-facebook, .btn.btn-facebook:focus:not(.btn-active), .btn.btn-facebook:hover:not(.btn-active), .btn.btn-facebook:active:not(.btn-active), .btn.btn-facebook.active, .btn.btn-facebook.show, .show > .btn.btn-facebook {
+ border-color: #30497c;
+ background-color: #30497c !important;
+}
+
+.btn.btn-light-facebook {
+ color: #3b5998;
+ border-color: rgba(59, 89, 152, 0.1);
+ background-color: rgba(59, 89, 152, 0.1);
+}
+.btn.btn-light-facebook i,
+.btn.btn-light-facebook .svg-icon {
+ color: #3b5998;
+}
+.btn.btn-light-facebook.dropdown-toggle:after {
+ color: #3b5998;
+}
+.btn-check:checked + .btn.btn-light-facebook, .btn-check:active + .btn.btn-light-facebook, .btn.btn-light-facebook:focus:not(.btn-active), .btn.btn-light-facebook:hover:not(.btn-active), .btn.btn-light-facebook:active:not(.btn-active), .btn.btn-light-facebook.active, .btn.btn-light-facebook.show, .show > .btn.btn-light-facebook {
+ color: #ffffff;
+ border-color: #3b5998;
+ background-color: #3b5998 !important;
+}
+.btn-check:checked + .btn.btn-light-facebook i,
+.btn-check:checked + .btn.btn-light-facebook .svg-icon, .btn-check:active + .btn.btn-light-facebook i,
+.btn-check:active + .btn.btn-light-facebook .svg-icon, .btn.btn-light-facebook:focus:not(.btn-active) i,
+.btn.btn-light-facebook:focus:not(.btn-active) .svg-icon, .btn.btn-light-facebook:hover:not(.btn-active) i,
+.btn.btn-light-facebook:hover:not(.btn-active) .svg-icon, .btn.btn-light-facebook:active:not(.btn-active) i,
+.btn.btn-light-facebook:active:not(.btn-active) .svg-icon, .btn.btn-light-facebook.active i,
+.btn.btn-light-facebook.active .svg-icon, .btn.btn-light-facebook.show i,
+.btn.btn-light-facebook.show .svg-icon, .show > .btn.btn-light-facebook i,
+.show > .btn.btn-light-facebook .svg-icon {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-light-facebook.dropdown-toggle:after, .btn-check:active + .btn.btn-light-facebook.dropdown-toggle:after, .btn.btn-light-facebook:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-facebook:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-facebook:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-facebook.active.dropdown-toggle:after, .btn.btn-light-facebook.show.dropdown-toggle:after, .show > .btn.btn-light-facebook.dropdown-toggle:after {
+ color: #ffffff;
+}
+
+.btn.btn-google {
+ color: #ffffff;
+ border-color: #dd4b39;
+ background-color: #dd4b39;
+}
+.btn.btn-google i,
+.btn.btn-google .svg-icon {
+ color: #ffffff;
+}
+.btn.btn-google.dropdown-toggle:after {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-google, .btn-check:active + .btn.btn-google, .btn.btn-google:focus:not(.btn-active), .btn.btn-google:hover:not(.btn-active), .btn.btn-google:active:not(.btn-active), .btn.btn-google.active, .btn.btn-google.show, .show > .btn.btn-google {
+ border-color: #cd3623;
+ background-color: #cd3623 !important;
+}
+
+.btn.btn-light-google {
+ color: #dd4b39;
+ border-color: rgba(221, 75, 57, 0.1);
+ background-color: rgba(221, 75, 57, 0.1);
+}
+.btn.btn-light-google i,
+.btn.btn-light-google .svg-icon {
+ color: #dd4b39;
+}
+.btn.btn-light-google.dropdown-toggle:after {
+ color: #dd4b39;
+}
+.btn-check:checked + .btn.btn-light-google, .btn-check:active + .btn.btn-light-google, .btn.btn-light-google:focus:not(.btn-active), .btn.btn-light-google:hover:not(.btn-active), .btn.btn-light-google:active:not(.btn-active), .btn.btn-light-google.active, .btn.btn-light-google.show, .show > .btn.btn-light-google {
+ color: #ffffff;
+ border-color: #dd4b39;
+ background-color: #dd4b39 !important;
+}
+.btn-check:checked + .btn.btn-light-google i,
+.btn-check:checked + .btn.btn-light-google .svg-icon, .btn-check:active + .btn.btn-light-google i,
+.btn-check:active + .btn.btn-light-google .svg-icon, .btn.btn-light-google:focus:not(.btn-active) i,
+.btn.btn-light-google:focus:not(.btn-active) .svg-icon, .btn.btn-light-google:hover:not(.btn-active) i,
+.btn.btn-light-google:hover:not(.btn-active) .svg-icon, .btn.btn-light-google:active:not(.btn-active) i,
+.btn.btn-light-google:active:not(.btn-active) .svg-icon, .btn.btn-light-google.active i,
+.btn.btn-light-google.active .svg-icon, .btn.btn-light-google.show i,
+.btn.btn-light-google.show .svg-icon, .show > .btn.btn-light-google i,
+.show > .btn.btn-light-google .svg-icon {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-light-google.dropdown-toggle:after, .btn-check:active + .btn.btn-light-google.dropdown-toggle:after, .btn.btn-light-google:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-google:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-google:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-google.active.dropdown-toggle:after, .btn.btn-light-google.show.dropdown-toggle:after, .show > .btn.btn-light-google.dropdown-toggle:after {
+ color: #ffffff;
+}
+
+.btn.btn-twitter {
+ color: #ffffff;
+ border-color: #1da1f2;
+ background-color: #1da1f2;
+}
+.btn.btn-twitter i,
+.btn.btn-twitter .svg-icon {
+ color: #ffffff;
+}
+.btn.btn-twitter.dropdown-toggle:after {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-twitter, .btn-check:active + .btn.btn-twitter, .btn.btn-twitter:focus:not(.btn-active), .btn.btn-twitter:hover:not(.btn-active), .btn.btn-twitter:active:not(.btn-active), .btn.btn-twitter.active, .btn.btn-twitter.show, .show > .btn.btn-twitter {
+ border-color: #0d8ddc;
+ background-color: #0d8ddc !important;
+}
+
+.btn.btn-light-twitter {
+ color: #1da1f2;
+ border-color: rgba(29, 161, 242, 0.1);
+ background-color: rgba(29, 161, 242, 0.1);
+}
+.btn.btn-light-twitter i,
+.btn.btn-light-twitter .svg-icon {
+ color: #1da1f2;
+}
+.btn.btn-light-twitter.dropdown-toggle:after {
+ color: #1da1f2;
+}
+.btn-check:checked + .btn.btn-light-twitter, .btn-check:active + .btn.btn-light-twitter, .btn.btn-light-twitter:focus:not(.btn-active), .btn.btn-light-twitter:hover:not(.btn-active), .btn.btn-light-twitter:active:not(.btn-active), .btn.btn-light-twitter.active, .btn.btn-light-twitter.show, .show > .btn.btn-light-twitter {
+ color: #ffffff;
+ border-color: #1da1f2;
+ background-color: #1da1f2 !important;
+}
+.btn-check:checked + .btn.btn-light-twitter i,
+.btn-check:checked + .btn.btn-light-twitter .svg-icon, .btn-check:active + .btn.btn-light-twitter i,
+.btn-check:active + .btn.btn-light-twitter .svg-icon, .btn.btn-light-twitter:focus:not(.btn-active) i,
+.btn.btn-light-twitter:focus:not(.btn-active) .svg-icon, .btn.btn-light-twitter:hover:not(.btn-active) i,
+.btn.btn-light-twitter:hover:not(.btn-active) .svg-icon, .btn.btn-light-twitter:active:not(.btn-active) i,
+.btn.btn-light-twitter:active:not(.btn-active) .svg-icon, .btn.btn-light-twitter.active i,
+.btn.btn-light-twitter.active .svg-icon, .btn.btn-light-twitter.show i,
+.btn.btn-light-twitter.show .svg-icon, .show > .btn.btn-light-twitter i,
+.show > .btn.btn-light-twitter .svg-icon {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-light-twitter.dropdown-toggle:after, .btn-check:active + .btn.btn-light-twitter.dropdown-toggle:after, .btn.btn-light-twitter:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-twitter:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-twitter:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-twitter.active.dropdown-toggle:after, .btn.btn-light-twitter.show.dropdown-toggle:after, .show > .btn.btn-light-twitter.dropdown-toggle:after {
+ color: #ffffff;
+}
+
+.btn.btn-instagram {
+ color: #ffffff;
+ border-color: #e1306c;
+ background-color: #e1306c;
+}
+.btn.btn-instagram i,
+.btn.btn-instagram .svg-icon {
+ color: #ffffff;
+}
+.btn.btn-instagram.dropdown-toggle:after {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-instagram, .btn-check:active + .btn.btn-instagram, .btn.btn-instagram:focus:not(.btn-active), .btn.btn-instagram:hover:not(.btn-active), .btn.btn-instagram:active:not(.btn-active), .btn.btn-instagram.active, .btn.btn-instagram.show, .show > .btn.btn-instagram {
+ border-color: #cd1e59;
+ background-color: #cd1e59 !important;
+}
+
+.btn.btn-light-instagram {
+ color: #e1306c;
+ border-color: rgba(225, 48, 108, 0.1);
+ background-color: rgba(225, 48, 108, 0.1);
+}
+.btn.btn-light-instagram i,
+.btn.btn-light-instagram .svg-icon {
+ color: #e1306c;
+}
+.btn.btn-light-instagram.dropdown-toggle:after {
+ color: #e1306c;
+}
+.btn-check:checked + .btn.btn-light-instagram, .btn-check:active + .btn.btn-light-instagram, .btn.btn-light-instagram:focus:not(.btn-active), .btn.btn-light-instagram:hover:not(.btn-active), .btn.btn-light-instagram:active:not(.btn-active), .btn.btn-light-instagram.active, .btn.btn-light-instagram.show, .show > .btn.btn-light-instagram {
+ color: #ffffff;
+ border-color: #e1306c;
+ background-color: #e1306c !important;
+}
+.btn-check:checked + .btn.btn-light-instagram i,
+.btn-check:checked + .btn.btn-light-instagram .svg-icon, .btn-check:active + .btn.btn-light-instagram i,
+.btn-check:active + .btn.btn-light-instagram .svg-icon, .btn.btn-light-instagram:focus:not(.btn-active) i,
+.btn.btn-light-instagram:focus:not(.btn-active) .svg-icon, .btn.btn-light-instagram:hover:not(.btn-active) i,
+.btn.btn-light-instagram:hover:not(.btn-active) .svg-icon, .btn.btn-light-instagram:active:not(.btn-active) i,
+.btn.btn-light-instagram:active:not(.btn-active) .svg-icon, .btn.btn-light-instagram.active i,
+.btn.btn-light-instagram.active .svg-icon, .btn.btn-light-instagram.show i,
+.btn.btn-light-instagram.show .svg-icon, .show > .btn.btn-light-instagram i,
+.show > .btn.btn-light-instagram .svg-icon {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-light-instagram.dropdown-toggle:after, .btn-check:active + .btn.btn-light-instagram.dropdown-toggle:after, .btn.btn-light-instagram:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-instagram:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-instagram:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-instagram.active.dropdown-toggle:after, .btn.btn-light-instagram.show.dropdown-toggle:after, .show > .btn.btn-light-instagram.dropdown-toggle:after {
+ color: #ffffff;
+}
+
+.btn.btn-youtube {
+ color: #ffffff;
+ border-color: #ff0000;
+ background-color: #ff0000;
+}
+.btn.btn-youtube i,
+.btn.btn-youtube .svg-icon {
+ color: #ffffff;
+}
+.btn.btn-youtube.dropdown-toggle:after {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-youtube, .btn-check:active + .btn.btn-youtube, .btn.btn-youtube:focus:not(.btn-active), .btn.btn-youtube:hover:not(.btn-active), .btn.btn-youtube:active:not(.btn-active), .btn.btn-youtube.active, .btn.btn-youtube.show, .show > .btn.btn-youtube {
+ border-color: #d90000;
+ background-color: #d90000 !important;
+}
+
+.btn.btn-light-youtube {
+ color: #ff0000;
+ border-color: rgba(255, 0, 0, 0.1);
+ background-color: rgba(255, 0, 0, 0.1);
+}
+.btn.btn-light-youtube i,
+.btn.btn-light-youtube .svg-icon {
+ color: #ff0000;
+}
+.btn.btn-light-youtube.dropdown-toggle:after {
+ color: #ff0000;
+}
+.btn-check:checked + .btn.btn-light-youtube, .btn-check:active + .btn.btn-light-youtube, .btn.btn-light-youtube:focus:not(.btn-active), .btn.btn-light-youtube:hover:not(.btn-active), .btn.btn-light-youtube:active:not(.btn-active), .btn.btn-light-youtube.active, .btn.btn-light-youtube.show, .show > .btn.btn-light-youtube {
+ color: #ffffff;
+ border-color: #ff0000;
+ background-color: #ff0000 !important;
+}
+.btn-check:checked + .btn.btn-light-youtube i,
+.btn-check:checked + .btn.btn-light-youtube .svg-icon, .btn-check:active + .btn.btn-light-youtube i,
+.btn-check:active + .btn.btn-light-youtube .svg-icon, .btn.btn-light-youtube:focus:not(.btn-active) i,
+.btn.btn-light-youtube:focus:not(.btn-active) .svg-icon, .btn.btn-light-youtube:hover:not(.btn-active) i,
+.btn.btn-light-youtube:hover:not(.btn-active) .svg-icon, .btn.btn-light-youtube:active:not(.btn-active) i,
+.btn.btn-light-youtube:active:not(.btn-active) .svg-icon, .btn.btn-light-youtube.active i,
+.btn.btn-light-youtube.active .svg-icon, .btn.btn-light-youtube.show i,
+.btn.btn-light-youtube.show .svg-icon, .show > .btn.btn-light-youtube i,
+.show > .btn.btn-light-youtube .svg-icon {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-light-youtube.dropdown-toggle:after, .btn-check:active + .btn.btn-light-youtube.dropdown-toggle:after, .btn.btn-light-youtube:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-youtube:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-youtube:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-youtube.active.dropdown-toggle:after, .btn.btn-light-youtube.show.dropdown-toggle:after, .show > .btn.btn-light-youtube.dropdown-toggle:after {
+ color: #ffffff;
+}
+
+.btn.btn-linkedin {
+ color: #ffffff;
+ border-color: #0077b5;
+ background-color: #0077b5;
+}
+.btn.btn-linkedin i,
+.btn.btn-linkedin .svg-icon {
+ color: #ffffff;
+}
+.btn.btn-linkedin.dropdown-toggle:after {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-linkedin, .btn-check:active + .btn.btn-linkedin, .btn.btn-linkedin:focus:not(.btn-active), .btn.btn-linkedin:hover:not(.btn-active), .btn.btn-linkedin:active:not(.btn-active), .btn.btn-linkedin.active, .btn.btn-linkedin.show, .show > .btn.btn-linkedin {
+ border-color: #005e8f;
+ background-color: #005e8f !important;
+}
+
+.btn.btn-light-linkedin {
+ color: #0077b5;
+ border-color: rgba(0, 119, 181, 0.1);
+ background-color: rgba(0, 119, 181, 0.1);
+}
+.btn.btn-light-linkedin i,
+.btn.btn-light-linkedin .svg-icon {
+ color: #0077b5;
+}
+.btn.btn-light-linkedin.dropdown-toggle:after {
+ color: #0077b5;
+}
+.btn-check:checked + .btn.btn-light-linkedin, .btn-check:active + .btn.btn-light-linkedin, .btn.btn-light-linkedin:focus:not(.btn-active), .btn.btn-light-linkedin:hover:not(.btn-active), .btn.btn-light-linkedin:active:not(.btn-active), .btn.btn-light-linkedin.active, .btn.btn-light-linkedin.show, .show > .btn.btn-light-linkedin {
+ color: #ffffff;
+ border-color: #0077b5;
+ background-color: #0077b5 !important;
+}
+.btn-check:checked + .btn.btn-light-linkedin i,
+.btn-check:checked + .btn.btn-light-linkedin .svg-icon, .btn-check:active + .btn.btn-light-linkedin i,
+.btn-check:active + .btn.btn-light-linkedin .svg-icon, .btn.btn-light-linkedin:focus:not(.btn-active) i,
+.btn.btn-light-linkedin:focus:not(.btn-active) .svg-icon, .btn.btn-light-linkedin:hover:not(.btn-active) i,
+.btn.btn-light-linkedin:hover:not(.btn-active) .svg-icon, .btn.btn-light-linkedin:active:not(.btn-active) i,
+.btn.btn-light-linkedin:active:not(.btn-active) .svg-icon, .btn.btn-light-linkedin.active i,
+.btn.btn-light-linkedin.active .svg-icon, .btn.btn-light-linkedin.show i,
+.btn.btn-light-linkedin.show .svg-icon, .show > .btn.btn-light-linkedin i,
+.show > .btn.btn-light-linkedin .svg-icon {
+ color: #ffffff;
+}
+.btn-check:checked + .btn.btn-light-linkedin.dropdown-toggle:after, .btn-check:active + .btn.btn-light-linkedin.dropdown-toggle:after, .btn.btn-light-linkedin:focus:not(.btn-active).dropdown-toggle:after, .btn.btn-light-linkedin:hover:not(.btn-active).dropdown-toggle:after, .btn.btn-light-linkedin:active:not(.btn-active).dropdown-toggle:after, .btn.btn-light-linkedin.active.dropdown-toggle:after, .btn.btn-light-linkedin.show.dropdown-toggle:after, .show > .btn.btn-light-linkedin.dropdown-toggle:after {
+ color: #ffffff;
+}
+
+code:not([class*=language-]) {
+ font-weight: 400;
+ color: var(--bs-code-color);
+ line-height: inherit;
+ font-size: inherit;
+ background-color: var(--bs-code-bg);
+ padding: 0.1rem 0.4rem;
+ margin: 0 0.5rem;
+ box-shadow: var(--bs-code-box-shadow);
+ border-radius: 0.3rem;
+}
+
+.form-control.form-control-transparent {
+ background-color: transparent;
+ border-color: transparent;
+}
+.dropdown.show > .form-control.form-control-transparent, .form-control.form-control-transparent:active, .form-control.form-control-transparent.active, .form-control.form-control-transparent:focus, .form-control.form-control-transparent.focus {
+ background-color: transparent;
+ border-color: transparent;
+}
+.form-control.form-control-flush {
+ border: 0;
+ background-color: transparent;
+ outline: none !important;
+ box-shadow: none;
+ border-radius: 0;
+}
+
+.form-control.form-control-solid {
+ background-color: var(--bs-gray-100);
+ border-color: var(--bs-gray-100);
+ color: var(--bs-gray-700);
+ transition: color 0.2s ease;
+}
+.form-control.form-control-solid::placeholder {
+ color: var(--bs-gray-500);
+}
+.form-control.form-control-solid::-moz-placeholder {
+ color: var(--bs-gray-500);
+ opacity: 1;
+}
+.dropdown.show > .form-control.form-control-solid, .form-control.form-control-solid:active, .form-control.form-control-solid.active, .form-control.form-control-solid:focus, .form-control.form-control-solid.focus {
+ background-color: var(--bs-gray-200);
+ border-color: var(--bs-gray-200);
+ color: var(--bs-gray-700);
+ transition: color 0.2s ease;
+}
+
+.form-control-solid-bg {
+ background-color: var(--bs-gray-100);
+}
+
+.form-control-plaintext {
+ color: var(--bs-gray-700);
+}
+
+.placeholder-gray-500::placeholder {
+ color: var(--bs-gray-500);
+}
+.placeholder-gray-500::-moz-placeholder {
+ color: var(--bs-gray-500);
+ opacity: 1;
+}
+
+.placeholder-white::placeholder {
+ color: #ffffff;
+}
+.placeholder-white::-moz-placeholder {
+ color: #ffffff;
+ opacity: 1;
+}
+
+.resize-none {
+ resize: none;
+}
+
+.form-floating .form-control.form-control-solid::placeholder {
+ color: transparent;
+}
+
+.form-select {
+ appearance: none;
+}
+.form-select:focus {
+ border-color: var(--bs-form-select-focus-border-color);
+ box-shadow: var(--bs-form-select-box-shadow), var(--bs-form-select-focus-box-shadow);
+}
+.form-select:disabled {
+ color: var(--bs-form-select-disabled-color);
+ background-color: var(--bs-form-select-disabled-bg);
+ border-color: var(--bs-form-select-disabled-border-color);
+}
+.form-select:-moz-focusring {
+ text-shadow: 0 0 0 var(--bs-form-select-color);
+}
+.form-select.form-select-solid {
+ background-color: var(--bs-gray-100);
+ border-color: var(--bs-gray-100);
+ color: var(--bs-gray-700);
+ transition: color 0.2s ease;
+}
+.form-select.form-select-solid::placeholder {
+ color: var(--bs-gray-500);
+}
+.form-select.form-select-solid::-moz-placeholder {
+ color: var(--bs-gray-500);
+ opacity: 1;
+}
+.dropdown.show > .form-select.form-select-solid, .form-select.form-select-solid:active, .form-select.form-select-solid.active, .form-select.form-select-solid:focus, .form-select.form-select-solid.focus {
+ background-color: var(--bs-gray-200);
+ border-color: var(--bs-gray-200) !important;
+ color: var(--bs-gray-700);
+ transition: color 0.2s ease;
+}
+.form-select.form-select-transparent {
+ background-color: transparent;
+ border-color: transparent;
+ color: var(--bs-gray-700);
+}
+.form-select.form-select-transparent::placeholder {
+ color: var(--bs-gray-500);
+}
+.form-select.form-select-transparent::-moz-placeholder {
+ color: var(--bs-gray-500);
+ opacity: 1;
+}
+.dropdown.show > .form-select.form-select-transparent, .form-select.form-select-transparent:active, .form-select.form-select-transparent.active, .form-select.form-select-transparent:focus, .form-select.form-select-transparent.focus {
+ background-color: transparent;
+ border-color: transparent !important;
+ color: var(--bs-gray-700);
+}
+
+.form-check:not(.form-switch) .form-check-input[type=checkbox] {
+ background-size: 60% 60%;
+}
+.form-check.form-check-sm .form-check-input {
+ height: 1.55rem;
+ width: 1.55rem;
+}
+.form-check.form-check-lg .form-check-input {
+ height: 2.25rem;
+ width: 2.25rem;
+}
+.form-check.form-check-inline {
+ display: inline-block;
+ margin-right: 1rem;
+}
+.form-check.form-check-solid .form-check-input {
+ border: 0;
+}
+.form-check.form-check-solid .form-check-input:not(:checked) {
+ background-color: var(--bs-gray-200);
+}
+.form-check.form-check-success .form-check-input:checked {
+ background-color: var(--bs-success);
+}
+.form-check.form-check-danger .form-check-input:checked {
+ background-color: var(--bs-danger);
+}
+.form-check.form-check-warning .form-check-input:checked {
+ background-color: var(--bs-warning);
+}
+
+.form-check-custom {
+ display: flex;
+ align-items: center;
+ padding-left: 0;
+ margin: 0;
+}
+.form-check-custom .form-check-input {
+ margin: 0;
+ float: none;
+ flex-shrink: 0;
+}
+.form-check-custom .form-check-label {
+ margin-left: 0.55rem;
+}
+
+.form-switch.form-check-custom .form-check-input {
+ height: 2.25rem;
+}
+.form-switch.form-check-custom.form-switch-sm .form-check-input {
+ height: 1.5rem;
+ width: 2.5rem;
+}
+.form-switch.form-check-custom.form-switch-lg .form-check-input {
+ height: 2.75rem;
+ width: 3.75rem;
+}
+.form-switch.form-check-solid .form-check-input {
+ --bs-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='%23ffffff'/%3e%3c/svg%3e");
+}
+.form-switch.form-check-solid .form-check-input:not(:checked) {
+ background-color: var(--bs-gray-200);
+}
+
+[data-bs-theme=dark] .form-switch .form-check-input:focus:not(:checked) {
+ --bs-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-check-image {
+ position: relative;
+ overflow: hidden;
+}
+.form-check-image img {
+ max-width: 100%;
+}
+.form-check-image .form-check-wrapper {
+ border-radius: 0.625rem;
+ border: 2px solid transparent;
+ transition: all 0.2s ease-in-out;
+ cursor: pointer;
+ overflow: hidden;
+ margin-bottom: 0.75rem;
+}
+.form-check-image .form-check-rounded {
+ border-radius: 0.625rem;
+}
+.form-check-image .form-check-label {
+ font-weight: 600;
+ margin-left: 0.5rem;
+}
+.form-check-image.active .form-check-wrapper {
+ border-color: var(--bs-primary);
+}
+.form-check-image.form-check-success.active .form-check-wrapper {
+ border-color: var(--bs-success);
+}
+.form-check-image.form-check-danger.active .form-check-wrapper {
+ border-color: var(--bs-danger);
+}
+.form-check-image.disabled {
+ opacity: 0.65;
+}
+
+.input-group.input-group-solid {
+ border-radius: 0.475rem;
+}
+.input-group.input-group-solid.input-group-sm {
+ border-radius: 0.425rem;
+}
+.input-group.input-group-solid.input-group-lg {
+ border-radius: 0.625rem;
+}
+.input-group.input-group-solid .input-group-text {
+ background-color: var(--bs-gray-100);
+ border-color: var(--bs-gray-100);
+}
+.input-group.input-group-solid .input-group-text + .form-control {
+ border-left-color: var(--bs-gray-300);
+}
+.input-group.input-group-solid .form-control {
+ background-color: var(--bs-gray-100);
+ border-color: var(--bs-gray-100);
+}
+.input-group.input-group-solid .form-control + .input-group-text {
+ border-left-color: var(--bs-gray-300);
+}
+
+.form-floating .form-control.form-control-solid::placeholder {
+ color: transparent;
+}
+
+.required:after {
+ content: "*";
+ position: relative;
+ font-size: inherit;
+ color: var(--bs-danger);
+ padding-left: 0.25rem;
+ font-weight: 600;
+}
+
+.progress-vertical {
+ display: flex;
+ align-items: stretch;
+ justify-content: space-between;
+}
+.progress-vertical .progress {
+ height: 100%;
+ border-radius: 0.475rem;
+ display: flex;
+ align-items: flex-end;
+ margin-right: 1rem;
+}
+.progress-vertical .progress:last-child {
+ margin-right: 0;
+}
+.progress-vertical .progress .progress-bar {
+ width: 8px;
+ border-radius: 0.475rem;
+}
+
+.table:not(.table-bordered) > :not(:first-child) {
+ border-color: transparent;
+ border-width: 0;
+ border-style: none;
+}
+.table:not(.table-bordered) > :not(:last-child) > :last-child > * {
+ border-bottom-color: inherit;
+}
+.table:not(.table-bordered) tr, .table:not(.table-bordered) th, .table:not(.table-bordered) td {
+ border-color: inherit;
+ border-width: inherit;
+ border-style: inherit;
+ text-transform: inherit;
+ font-weight: inherit;
+ font-size: inherit;
+ color: inherit;
+ height: inherit;
+ min-height: inherit;
+}
+.table:not(.table-bordered) tr:first-child, .table:not(.table-bordered) th:first-child, .table:not(.table-bordered) td:first-child {
+ padding-left: 0;
+}
+.table:not(.table-bordered) tr:last-child, .table:not(.table-bordered) th:last-child, .table:not(.table-bordered) td:last-child {
+ padding-right: 0;
+}
+.table:not(.table-bordered) tfoot tr:last-child,
+.table:not(.table-bordered) tbody tr:last-child {
+ border-bottom: 0 !important;
+}
+.table:not(.table-bordered) tfoot tr:last-child th, .table:not(.table-bordered) tfoot tr:last-child td,
+.table:not(.table-bordered) tbody tr:last-child th,
+.table:not(.table-bordered) tbody tr:last-child td {
+ border-bottom: 0 !important;
+}
+.table:not(.table-bordered) tfoot th, .table:not(.table-bordered) tfoot td {
+ border-top: inherit;
+}
+.table:not(.table-bordered).table-rounded {
+ border-radius: 0.475rem;
+ border-spacing: 0;
+ border-collapse: separate;
+}
+.table:not(.table-bordered).table-flush tr, .table:not(.table-bordered).table-flush th, .table:not(.table-bordered).table-flush td {
+ padding: inherit;
+}
+.table:not(.table-bordered).table-row-bordered tr {
+ border-bottom-width: 1px;
+ border-bottom-style: solid;
+ border-bottom-color: var(--bs-border-color);
+}
+.table:not(.table-bordered).table-row-bordered tfoot th, .table:not(.table-bordered).table-row-bordered tfoot td {
+ border-top-width: 1px !important;
+}
+.table:not(.table-bordered).table-row-dashed tr {
+ border-bottom-width: 1px;
+ border-bottom-style: dashed;
+ border-bottom-color: var(--bs-border-color);
+}
+.table:not(.table-bordered).table-row-dashed tfoot th, .table:not(.table-bordered).table-row-dashed tfoot td {
+ border-top-width: 1px !important;
+}
+.table:not(.table-bordered).table-row-gray-100 tr {
+ border-bottom-color: var(--bs-gray-100);
+}
+.table:not(.table-bordered).table-row-gray-200 tr {
+ border-bottom-color: var(--bs-gray-200);
+}
+.table:not(.table-bordered).table-row-gray-300 tr {
+ border-bottom-color: var(--bs-gray-300);
+}
+.table:not(.table-bordered).table-row-gray-400 tr {
+ border-bottom-color: var(--bs-gray-400);
+}
+.table:not(.table-bordered).table-row-gray-500 tr {
+ border-bottom-color: var(--bs-gray-500);
+}
+.table:not(.table-bordered).table-row-gray-600 tr {
+ border-bottom-color: var(--bs-gray-600);
+}
+.table:not(.table-bordered).table-row-gray-700 tr {
+ border-bottom-color: var(--bs-gray-700);
+}
+.table:not(.table-bordered).table-row-gray-800 tr {
+ border-bottom-color: var(--bs-gray-800);
+}
+.table:not(.table-bordered).table-row-gray-900 tr {
+ border-bottom-color: var(--bs-gray-900);
+}
+
+.table-layout-fixed {
+ table-layout: fixed;
+}
+
+.table-sort:after {
+ opacity: 0;
+}
+
+.table-sort,
+.table-sort-asc,
+.table-sort-desc {
+ vertical-align: middle;
+}
+.table-sort:after,
+.table-sort-asc:after,
+.table-sort-desc:after {
+ position: relative;
+ display: inline-block;
+ width: 0.75rem;
+ height: 0.75rem;
+ content: " ";
+ bottom: auto;
+ right: auto;
+ left: auto;
+ margin-left: 0.5rem;
+}
+
+.table-sort-asc:after {
+ opacity: 1;
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M3.23571 2.72011L4.97917 4.46358C5.15176 4.63618 5.43158 4.63617 5.60417 4.46358C5.77676 4.29099 5.77676 4.01118 5.60417 3.83861L3.29463 1.52904C3.13192 1.36629 2.86809 1.36629 2.70538 1.52904L0.395812 3.83861C0.22325 4.01117 0.22325 4.29099 0.395812 4.46358C0.568437 4.63617 0.84825 4.63617 1.02081 4.46358L2.76429 2.72011C2.89446 2.58994 3.10554 2.58994 3.23571 2.72011Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M3.23571 2.72011L4.97917 4.46358C5.15176 4.63618 5.43158 4.63617 5.60417 4.46358C5.77676 4.29099 5.77676 4.01118 5.60417 3.83861L3.29463 1.52904C3.13192 1.36629 2.86809 1.36629 2.70538 1.52904L0.395812 3.83861C0.22325 4.01117 0.22325 4.29099 0.395812 4.46358C0.568437 4.63617 0.84825 4.63617 1.02081 4.46358L2.76429 2.72011C2.89446 2.58994 3.10554 2.58994 3.23571 2.72011Z'/%3e%3c/svg%3e");
+}
+
+.table-sort-desc:after {
+ opacity: 1;
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-text-muted);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M2.76429 3.27989L1.02083 1.53642C0.848244 1.36382 0.568419 1.36383 0.395831 1.53642C0.223244 1.70901 0.223244 1.98882 0.395831 2.16139L2.70537 4.47096C2.86808 4.63371 3.13191 4.63371 3.29462 4.47096L5.60419 2.16139C5.77675 1.98883 5.77675 1.70901 5.60419 1.53642C5.43156 1.36383 5.15175 1.36383 4.97919 1.53642L3.23571 3.27989C3.10554 3.41006 2.89446 3.41006 2.76429 3.27989Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-text-muted%29'%3e%3cpath d='M2.76429 3.27989L1.02083 1.53642C0.848244 1.36382 0.568419 1.36383 0.395831 1.53642C0.223244 1.70901 0.223244 1.98882 0.395831 2.16139L2.70537 4.47096C2.86808 4.63371 3.13191 4.63371 3.29462 4.47096L5.60419 2.16139C5.77675 1.98883 5.77675 1.70901 5.60419 1.53642C5.43156 1.36383 5.15175 1.36383 4.97919 1.53642L3.23571 3.27989C3.10554 3.41006 2.89446 3.41006 2.76429 3.27989Z'/%3e%3c/svg%3e");
+}
+
+.table-loading-message {
+ display: none;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ border-radius: 0.475rem;
+ box-shadow: var(--bs-table-loading-message-box-shadow);
+ background-color: var(--bs-table-loading-message-bg);
+ color: var(--bs-table-loading-message-color);
+ font-weight: 600;
+ margin: 0 !important;
+ width: auto;
+ padding: 0.85rem 2rem !important;
+ transform: translateX(-50%) translateY(-50%);
+}
+
+.table-loading {
+ position: relative;
+}
+.table-loading .table-loading-message {
+ display: block;
+}
+
+.table.g-0 th, .table.g-0 td {
+ padding: 0rem;
+}
+.table.g-0 th.dtr-control, .table.g-0 td.dtr-control {
+ padding-left: 0rem !important;
+}
+
+.table.gy-0 th, .table.gy-0 td {
+ padding-top: 0rem;
+ padding-bottom: 0rem;
+}
+
+.table.gx-0 th, .table.gx-0 td {
+ padding-left: 0rem;
+ padding-right: 0rem;
+}
+.table.gx-0 th.dtr-control, .table.gx-0 td.dtr-control {
+ padding-left: 0rem !important;
+}
+
+.table.gs-0 th:first-child, .table.gs-0 td:first-child {
+ padding-left: 0rem;
+}
+.table.gs-0 th:last-child, .table.gs-0 td:last-child {
+ padding-right: 0rem;
+}
+.table.gs-0 th.dtr-control:first-child, .table.gs-0 td.dtr-control:first-child {
+ padding-left: 0rem !important;
+}
+
+.table.g-1 th, .table.g-1 td {
+ padding: 0.25rem;
+}
+.table.g-1 th.dtr-control, .table.g-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+}
+
+.table.gy-1 th, .table.gy-1 td {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+}
+
+.table.gx-1 th, .table.gx-1 td {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+}
+.table.gx-1 th.dtr-control, .table.gx-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+}
+
+.table.gs-1 th:first-child, .table.gs-1 td:first-child {
+ padding-left: 0.25rem;
+}
+.table.gs-1 th:last-child, .table.gs-1 td:last-child {
+ padding-right: 0.25rem;
+}
+.table.gs-1 th.dtr-control:first-child, .table.gs-1 td.dtr-control:first-child {
+ padding-left: 0.25rem !important;
+}
+
+.table.g-2 th, .table.g-2 td {
+ padding: 0.5rem;
+}
+.table.g-2 th.dtr-control, .table.g-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+}
+
+.table.gy-2 th, .table.gy-2 td {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+}
+
+.table.gx-2 th, .table.gx-2 td {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+}
+.table.gx-2 th.dtr-control, .table.gx-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+}
+
+.table.gs-2 th:first-child, .table.gs-2 td:first-child {
+ padding-left: 0.5rem;
+}
+.table.gs-2 th:last-child, .table.gs-2 td:last-child {
+ padding-right: 0.5rem;
+}
+.table.gs-2 th.dtr-control:first-child, .table.gs-2 td.dtr-control:first-child {
+ padding-left: 0.5rem !important;
+}
+
+.table.g-3 th, .table.g-3 td {
+ padding: 0.75rem;
+}
+.table.g-3 th.dtr-control, .table.g-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+}
+
+.table.gy-3 th, .table.gy-3 td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+}
+
+.table.gx-3 th, .table.gx-3 td {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+}
+.table.gx-3 th.dtr-control, .table.gx-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+}
+
+.table.gs-3 th:first-child, .table.gs-3 td:first-child {
+ padding-left: 0.75rem;
+}
+.table.gs-3 th:last-child, .table.gs-3 td:last-child {
+ padding-right: 0.75rem;
+}
+.table.gs-3 th.dtr-control:first-child, .table.gs-3 td.dtr-control:first-child {
+ padding-left: 0.75rem !important;
+}
+
+.table.g-4 th, .table.g-4 td {
+ padding: 1rem;
+}
+.table.g-4 th.dtr-control, .table.g-4 td.dtr-control {
+ padding-left: 1rem !important;
+}
+
+.table.gy-4 th, .table.gy-4 td {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
+.table.gx-4 th, .table.gx-4 td {
+ padding-left: 1rem;
+ padding-right: 1rem;
+}
+.table.gx-4 th.dtr-control, .table.gx-4 td.dtr-control {
+ padding-left: 1rem !important;
+}
+
+.table.gs-4 th:first-child, .table.gs-4 td:first-child {
+ padding-left: 1rem;
+}
+.table.gs-4 th:last-child, .table.gs-4 td:last-child {
+ padding-right: 1rem;
+}
+.table.gs-4 th.dtr-control:first-child, .table.gs-4 td.dtr-control:first-child {
+ padding-left: 1rem !important;
+}
+
+.table.g-5 th, .table.g-5 td {
+ padding: 1.25rem;
+}
+.table.g-5 th.dtr-control, .table.g-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+}
+
+.table.gy-5 th, .table.gy-5 td {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+}
+
+.table.gx-5 th, .table.gx-5 td {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+}
+.table.gx-5 th.dtr-control, .table.gx-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+}
+
+.table.gs-5 th:first-child, .table.gs-5 td:first-child {
+ padding-left: 1.25rem;
+}
+.table.gs-5 th:last-child, .table.gs-5 td:last-child {
+ padding-right: 1.25rem;
+}
+.table.gs-5 th.dtr-control:first-child, .table.gs-5 td.dtr-control:first-child {
+ padding-left: 1.25rem !important;
+}
+
+.table.g-6 th, .table.g-6 td {
+ padding: 1.5rem;
+}
+.table.g-6 th.dtr-control, .table.g-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+}
+
+.table.gy-6 th, .table.gy-6 td {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+}
+
+.table.gx-6 th, .table.gx-6 td {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+}
+.table.gx-6 th.dtr-control, .table.gx-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+}
+
+.table.gs-6 th:first-child, .table.gs-6 td:first-child {
+ padding-left: 1.5rem;
+}
+.table.gs-6 th:last-child, .table.gs-6 td:last-child {
+ padding-right: 1.5rem;
+}
+.table.gs-6 th.dtr-control:first-child, .table.gs-6 td.dtr-control:first-child {
+ padding-left: 1.5rem !important;
+}
+
+.table.g-7 th, .table.g-7 td {
+ padding: 1.75rem;
+}
+.table.g-7 th.dtr-control, .table.g-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+}
+
+.table.gy-7 th, .table.gy-7 td {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+}
+
+.table.gx-7 th, .table.gx-7 td {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+}
+.table.gx-7 th.dtr-control, .table.gx-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+}
+
+.table.gs-7 th:first-child, .table.gs-7 td:first-child {
+ padding-left: 1.75rem;
+}
+.table.gs-7 th:last-child, .table.gs-7 td:last-child {
+ padding-right: 1.75rem;
+}
+.table.gs-7 th.dtr-control:first-child, .table.gs-7 td.dtr-control:first-child {
+ padding-left: 1.75rem !important;
+}
+
+.table.g-8 th, .table.g-8 td {
+ padding: 2rem;
+}
+.table.g-8 th.dtr-control, .table.g-8 td.dtr-control {
+ padding-left: 2rem !important;
+}
+
+.table.gy-8 th, .table.gy-8 td {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+}
+
+.table.gx-8 th, .table.gx-8 td {
+ padding-left: 2rem;
+ padding-right: 2rem;
+}
+.table.gx-8 th.dtr-control, .table.gx-8 td.dtr-control {
+ padding-left: 2rem !important;
+}
+
+.table.gs-8 th:first-child, .table.gs-8 td:first-child {
+ padding-left: 2rem;
+}
+.table.gs-8 th:last-child, .table.gs-8 td:last-child {
+ padding-right: 2rem;
+}
+.table.gs-8 th.dtr-control:first-child, .table.gs-8 td.dtr-control:first-child {
+ padding-left: 2rem !important;
+}
+
+.table.g-9 th, .table.g-9 td {
+ padding: 2.25rem;
+}
+.table.g-9 th.dtr-control, .table.g-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+}
+
+.table.gy-9 th, .table.gy-9 td {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+}
+
+.table.gx-9 th, .table.gx-9 td {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+}
+.table.gx-9 th.dtr-control, .table.gx-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+}
+
+.table.gs-9 th:first-child, .table.gs-9 td:first-child {
+ padding-left: 2.25rem;
+}
+.table.gs-9 th:last-child, .table.gs-9 td:last-child {
+ padding-right: 2.25rem;
+}
+.table.gs-9 th.dtr-control:first-child, .table.gs-9 td.dtr-control:first-child {
+ padding-left: 2.25rem !important;
+}
+
+.table.g-10 th, .table.g-10 td {
+ padding: 2.5rem;
+}
+.table.g-10 th.dtr-control, .table.g-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+}
+
+.table.gy-10 th, .table.gy-10 td {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+}
+
+.table.gx-10 th, .table.gx-10 td {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+}
+.table.gx-10 th.dtr-control, .table.gx-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+}
+
+.table.gs-10 th:first-child, .table.gs-10 td:first-child {
+ padding-left: 2.5rem;
+}
+.table.gs-10 th:last-child, .table.gs-10 td:last-child {
+ padding-right: 2.5rem;
+}
+.table.gs-10 th.dtr-control:first-child, .table.gs-10 td.dtr-control:first-child {
+ padding-left: 2.5rem !important;
+}
+
+@media (min-width: 576px) {
+ .table.g-sm-0 th, .table.g-sm-0 td {
+ padding: 0rem;
+ }
+ .table.g-sm-0 th.dtr-control, .table.g-sm-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gy-sm-0 th, .table.gy-sm-0 td {
+ padding-top: 0rem;
+ padding-bottom: 0rem;
+ }
+ .table.gx-sm-0 th, .table.gx-sm-0 td {
+ padding-left: 0rem;
+ padding-right: 0rem;
+ }
+ .table.gx-sm-0 th.dtr-control, .table.gx-sm-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gs-sm-0 th:first-child, .table.gs-sm-0 td:first-child {
+ padding-left: 0rem;
+ }
+ .table.gs-sm-0 th:last-child, .table.gs-sm-0 td:last-child {
+ padding-right: 0rem;
+ }
+ .table.gs-sm-0 th.dtr-control:first-child, .table.gs-sm-0 td.dtr-control:first-child {
+ padding-left: 0rem !important;
+ }
+ .table.g-sm-1 th, .table.g-sm-1 td {
+ padding: 0.25rem;
+ }
+ .table.g-sm-1 th.dtr-control, .table.g-sm-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gy-sm-1 th, .table.gy-sm-1 td {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ }
+ .table.gx-sm-1 th, .table.gx-sm-1 td {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ }
+ .table.gx-sm-1 th.dtr-control, .table.gx-sm-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gs-sm-1 th:first-child, .table.gs-sm-1 td:first-child {
+ padding-left: 0.25rem;
+ }
+ .table.gs-sm-1 th:last-child, .table.gs-sm-1 td:last-child {
+ padding-right: 0.25rem;
+ }
+ .table.gs-sm-1 th.dtr-control:first-child, .table.gs-sm-1 td.dtr-control:first-child {
+ padding-left: 0.25rem !important;
+ }
+ .table.g-sm-2 th, .table.g-sm-2 td {
+ padding: 0.5rem;
+ }
+ .table.g-sm-2 th.dtr-control, .table.g-sm-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gy-sm-2 th, .table.gy-sm-2 td {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+ .table.gx-sm-2 th, .table.gx-sm-2 td {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ .table.gx-sm-2 th.dtr-control, .table.gx-sm-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gs-sm-2 th:first-child, .table.gs-sm-2 td:first-child {
+ padding-left: 0.5rem;
+ }
+ .table.gs-sm-2 th:last-child, .table.gs-sm-2 td:last-child {
+ padding-right: 0.5rem;
+ }
+ .table.gs-sm-2 th.dtr-control:first-child, .table.gs-sm-2 td.dtr-control:first-child {
+ padding-left: 0.5rem !important;
+ }
+ .table.g-sm-3 th, .table.g-sm-3 td {
+ padding: 0.75rem;
+ }
+ .table.g-sm-3 th.dtr-control, .table.g-sm-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gy-sm-3 th, .table.gy-sm-3 td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ }
+ .table.gx-sm-3 th, .table.gx-sm-3 td {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ }
+ .table.gx-sm-3 th.dtr-control, .table.gx-sm-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gs-sm-3 th:first-child, .table.gs-sm-3 td:first-child {
+ padding-left: 0.75rem;
+ }
+ .table.gs-sm-3 th:last-child, .table.gs-sm-3 td:last-child {
+ padding-right: 0.75rem;
+ }
+ .table.gs-sm-3 th.dtr-control:first-child, .table.gs-sm-3 td.dtr-control:first-child {
+ padding-left: 0.75rem !important;
+ }
+ .table.g-sm-4 th, .table.g-sm-4 td {
+ padding: 1rem;
+ }
+ .table.g-sm-4 th.dtr-control, .table.g-sm-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gy-sm-4 th, .table.gy-sm-4 td {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ }
+ .table.gx-sm-4 th, .table.gx-sm-4 td {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ }
+ .table.gx-sm-4 th.dtr-control, .table.gx-sm-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gs-sm-4 th:first-child, .table.gs-sm-4 td:first-child {
+ padding-left: 1rem;
+ }
+ .table.gs-sm-4 th:last-child, .table.gs-sm-4 td:last-child {
+ padding-right: 1rem;
+ }
+ .table.gs-sm-4 th.dtr-control:first-child, .table.gs-sm-4 td.dtr-control:first-child {
+ padding-left: 1rem !important;
+ }
+ .table.g-sm-5 th, .table.g-sm-5 td {
+ padding: 1.25rem;
+ }
+ .table.g-sm-5 th.dtr-control, .table.g-sm-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gy-sm-5 th, .table.gy-sm-5 td {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ }
+ .table.gx-sm-5 th, .table.gx-sm-5 td {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
+ .table.gx-sm-5 th.dtr-control, .table.gx-sm-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gs-sm-5 th:first-child, .table.gs-sm-5 td:first-child {
+ padding-left: 1.25rem;
+ }
+ .table.gs-sm-5 th:last-child, .table.gs-sm-5 td:last-child {
+ padding-right: 1.25rem;
+ }
+ .table.gs-sm-5 th.dtr-control:first-child, .table.gs-sm-5 td.dtr-control:first-child {
+ padding-left: 1.25rem !important;
+ }
+ .table.g-sm-6 th, .table.g-sm-6 td {
+ padding: 1.5rem;
+ }
+ .table.g-sm-6 th.dtr-control, .table.g-sm-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gy-sm-6 th, .table.gy-sm-6 td {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+ }
+ .table.gx-sm-6 th, .table.gx-sm-6 td {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+ .table.gx-sm-6 th.dtr-control, .table.gx-sm-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gs-sm-6 th:first-child, .table.gs-sm-6 td:first-child {
+ padding-left: 1.5rem;
+ }
+ .table.gs-sm-6 th:last-child, .table.gs-sm-6 td:last-child {
+ padding-right: 1.5rem;
+ }
+ .table.gs-sm-6 th.dtr-control:first-child, .table.gs-sm-6 td.dtr-control:first-child {
+ padding-left: 1.5rem !important;
+ }
+ .table.g-sm-7 th, .table.g-sm-7 td {
+ padding: 1.75rem;
+ }
+ .table.g-sm-7 th.dtr-control, .table.g-sm-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gy-sm-7 th, .table.gy-sm-7 td {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+ }
+ .table.gx-sm-7 th, .table.gx-sm-7 td {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+ }
+ .table.gx-sm-7 th.dtr-control, .table.gx-sm-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gs-sm-7 th:first-child, .table.gs-sm-7 td:first-child {
+ padding-left: 1.75rem;
+ }
+ .table.gs-sm-7 th:last-child, .table.gs-sm-7 td:last-child {
+ padding-right: 1.75rem;
+ }
+ .table.gs-sm-7 th.dtr-control:first-child, .table.gs-sm-7 td.dtr-control:first-child {
+ padding-left: 1.75rem !important;
+ }
+ .table.g-sm-8 th, .table.g-sm-8 td {
+ padding: 2rem;
+ }
+ .table.g-sm-8 th.dtr-control, .table.g-sm-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gy-sm-8 th, .table.gy-sm-8 td {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+ .table.gx-sm-8 th, .table.gx-sm-8 td {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
+ .table.gx-sm-8 th.dtr-control, .table.gx-sm-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gs-sm-8 th:first-child, .table.gs-sm-8 td:first-child {
+ padding-left: 2rem;
+ }
+ .table.gs-sm-8 th:last-child, .table.gs-sm-8 td:last-child {
+ padding-right: 2rem;
+ }
+ .table.gs-sm-8 th.dtr-control:first-child, .table.gs-sm-8 td.dtr-control:first-child {
+ padding-left: 2rem !important;
+ }
+ .table.g-sm-9 th, .table.g-sm-9 td {
+ padding: 2.25rem;
+ }
+ .table.g-sm-9 th.dtr-control, .table.g-sm-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gy-sm-9 th, .table.gy-sm-9 td {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+ }
+ .table.gx-sm-9 th, .table.gx-sm-9 td {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+ }
+ .table.gx-sm-9 th.dtr-control, .table.gx-sm-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gs-sm-9 th:first-child, .table.gs-sm-9 td:first-child {
+ padding-left: 2.25rem;
+ }
+ .table.gs-sm-9 th:last-child, .table.gs-sm-9 td:last-child {
+ padding-right: 2.25rem;
+ }
+ .table.gs-sm-9 th.dtr-control:first-child, .table.gs-sm-9 td.dtr-control:first-child {
+ padding-left: 2.25rem !important;
+ }
+ .table.g-sm-10 th, .table.g-sm-10 td {
+ padding: 2.5rem;
+ }
+ .table.g-sm-10 th.dtr-control, .table.g-sm-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gy-sm-10 th, .table.gy-sm-10 td {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+ }
+ .table.gx-sm-10 th, .table.gx-sm-10 td {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+ }
+ .table.gx-sm-10 th.dtr-control, .table.gx-sm-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gs-sm-10 th:first-child, .table.gs-sm-10 td:first-child {
+ padding-left: 2.5rem;
+ }
+ .table.gs-sm-10 th:last-child, .table.gs-sm-10 td:last-child {
+ padding-right: 2.5rem;
+ }
+ .table.gs-sm-10 th.dtr-control:first-child, .table.gs-sm-10 td.dtr-control:first-child {
+ padding-left: 2.5rem !important;
+ }
+}
+@media (min-width: 768px) {
+ .table.g-md-0 th, .table.g-md-0 td {
+ padding: 0rem;
+ }
+ .table.g-md-0 th.dtr-control, .table.g-md-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gy-md-0 th, .table.gy-md-0 td {
+ padding-top: 0rem;
+ padding-bottom: 0rem;
+ }
+ .table.gx-md-0 th, .table.gx-md-0 td {
+ padding-left: 0rem;
+ padding-right: 0rem;
+ }
+ .table.gx-md-0 th.dtr-control, .table.gx-md-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gs-md-0 th:first-child, .table.gs-md-0 td:first-child {
+ padding-left: 0rem;
+ }
+ .table.gs-md-0 th:last-child, .table.gs-md-0 td:last-child {
+ padding-right: 0rem;
+ }
+ .table.gs-md-0 th.dtr-control:first-child, .table.gs-md-0 td.dtr-control:first-child {
+ padding-left: 0rem !important;
+ }
+ .table.g-md-1 th, .table.g-md-1 td {
+ padding: 0.25rem;
+ }
+ .table.g-md-1 th.dtr-control, .table.g-md-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gy-md-1 th, .table.gy-md-1 td {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ }
+ .table.gx-md-1 th, .table.gx-md-1 td {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ }
+ .table.gx-md-1 th.dtr-control, .table.gx-md-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gs-md-1 th:first-child, .table.gs-md-1 td:first-child {
+ padding-left: 0.25rem;
+ }
+ .table.gs-md-1 th:last-child, .table.gs-md-1 td:last-child {
+ padding-right: 0.25rem;
+ }
+ .table.gs-md-1 th.dtr-control:first-child, .table.gs-md-1 td.dtr-control:first-child {
+ padding-left: 0.25rem !important;
+ }
+ .table.g-md-2 th, .table.g-md-2 td {
+ padding: 0.5rem;
+ }
+ .table.g-md-2 th.dtr-control, .table.g-md-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gy-md-2 th, .table.gy-md-2 td {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+ .table.gx-md-2 th, .table.gx-md-2 td {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ .table.gx-md-2 th.dtr-control, .table.gx-md-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gs-md-2 th:first-child, .table.gs-md-2 td:first-child {
+ padding-left: 0.5rem;
+ }
+ .table.gs-md-2 th:last-child, .table.gs-md-2 td:last-child {
+ padding-right: 0.5rem;
+ }
+ .table.gs-md-2 th.dtr-control:first-child, .table.gs-md-2 td.dtr-control:first-child {
+ padding-left: 0.5rem !important;
+ }
+ .table.g-md-3 th, .table.g-md-3 td {
+ padding: 0.75rem;
+ }
+ .table.g-md-3 th.dtr-control, .table.g-md-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gy-md-3 th, .table.gy-md-3 td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ }
+ .table.gx-md-3 th, .table.gx-md-3 td {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ }
+ .table.gx-md-3 th.dtr-control, .table.gx-md-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gs-md-3 th:first-child, .table.gs-md-3 td:first-child {
+ padding-left: 0.75rem;
+ }
+ .table.gs-md-3 th:last-child, .table.gs-md-3 td:last-child {
+ padding-right: 0.75rem;
+ }
+ .table.gs-md-3 th.dtr-control:first-child, .table.gs-md-3 td.dtr-control:first-child {
+ padding-left: 0.75rem !important;
+ }
+ .table.g-md-4 th, .table.g-md-4 td {
+ padding: 1rem;
+ }
+ .table.g-md-4 th.dtr-control, .table.g-md-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gy-md-4 th, .table.gy-md-4 td {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ }
+ .table.gx-md-4 th, .table.gx-md-4 td {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ }
+ .table.gx-md-4 th.dtr-control, .table.gx-md-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gs-md-4 th:first-child, .table.gs-md-4 td:first-child {
+ padding-left: 1rem;
+ }
+ .table.gs-md-4 th:last-child, .table.gs-md-4 td:last-child {
+ padding-right: 1rem;
+ }
+ .table.gs-md-4 th.dtr-control:first-child, .table.gs-md-4 td.dtr-control:first-child {
+ padding-left: 1rem !important;
+ }
+ .table.g-md-5 th, .table.g-md-5 td {
+ padding: 1.25rem;
+ }
+ .table.g-md-5 th.dtr-control, .table.g-md-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gy-md-5 th, .table.gy-md-5 td {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ }
+ .table.gx-md-5 th, .table.gx-md-5 td {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
+ .table.gx-md-5 th.dtr-control, .table.gx-md-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gs-md-5 th:first-child, .table.gs-md-5 td:first-child {
+ padding-left: 1.25rem;
+ }
+ .table.gs-md-5 th:last-child, .table.gs-md-5 td:last-child {
+ padding-right: 1.25rem;
+ }
+ .table.gs-md-5 th.dtr-control:first-child, .table.gs-md-5 td.dtr-control:first-child {
+ padding-left: 1.25rem !important;
+ }
+ .table.g-md-6 th, .table.g-md-6 td {
+ padding: 1.5rem;
+ }
+ .table.g-md-6 th.dtr-control, .table.g-md-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gy-md-6 th, .table.gy-md-6 td {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+ }
+ .table.gx-md-6 th, .table.gx-md-6 td {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+ .table.gx-md-6 th.dtr-control, .table.gx-md-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gs-md-6 th:first-child, .table.gs-md-6 td:first-child {
+ padding-left: 1.5rem;
+ }
+ .table.gs-md-6 th:last-child, .table.gs-md-6 td:last-child {
+ padding-right: 1.5rem;
+ }
+ .table.gs-md-6 th.dtr-control:first-child, .table.gs-md-6 td.dtr-control:first-child {
+ padding-left: 1.5rem !important;
+ }
+ .table.g-md-7 th, .table.g-md-7 td {
+ padding: 1.75rem;
+ }
+ .table.g-md-7 th.dtr-control, .table.g-md-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gy-md-7 th, .table.gy-md-7 td {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+ }
+ .table.gx-md-7 th, .table.gx-md-7 td {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+ }
+ .table.gx-md-7 th.dtr-control, .table.gx-md-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gs-md-7 th:first-child, .table.gs-md-7 td:first-child {
+ padding-left: 1.75rem;
+ }
+ .table.gs-md-7 th:last-child, .table.gs-md-7 td:last-child {
+ padding-right: 1.75rem;
+ }
+ .table.gs-md-7 th.dtr-control:first-child, .table.gs-md-7 td.dtr-control:first-child {
+ padding-left: 1.75rem !important;
+ }
+ .table.g-md-8 th, .table.g-md-8 td {
+ padding: 2rem;
+ }
+ .table.g-md-8 th.dtr-control, .table.g-md-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gy-md-8 th, .table.gy-md-8 td {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+ .table.gx-md-8 th, .table.gx-md-8 td {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
+ .table.gx-md-8 th.dtr-control, .table.gx-md-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gs-md-8 th:first-child, .table.gs-md-8 td:first-child {
+ padding-left: 2rem;
+ }
+ .table.gs-md-8 th:last-child, .table.gs-md-8 td:last-child {
+ padding-right: 2rem;
+ }
+ .table.gs-md-8 th.dtr-control:first-child, .table.gs-md-8 td.dtr-control:first-child {
+ padding-left: 2rem !important;
+ }
+ .table.g-md-9 th, .table.g-md-9 td {
+ padding: 2.25rem;
+ }
+ .table.g-md-9 th.dtr-control, .table.g-md-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gy-md-9 th, .table.gy-md-9 td {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+ }
+ .table.gx-md-9 th, .table.gx-md-9 td {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+ }
+ .table.gx-md-9 th.dtr-control, .table.gx-md-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gs-md-9 th:first-child, .table.gs-md-9 td:first-child {
+ padding-left: 2.25rem;
+ }
+ .table.gs-md-9 th:last-child, .table.gs-md-9 td:last-child {
+ padding-right: 2.25rem;
+ }
+ .table.gs-md-9 th.dtr-control:first-child, .table.gs-md-9 td.dtr-control:first-child {
+ padding-left: 2.25rem !important;
+ }
+ .table.g-md-10 th, .table.g-md-10 td {
+ padding: 2.5rem;
+ }
+ .table.g-md-10 th.dtr-control, .table.g-md-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gy-md-10 th, .table.gy-md-10 td {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+ }
+ .table.gx-md-10 th, .table.gx-md-10 td {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+ }
+ .table.gx-md-10 th.dtr-control, .table.gx-md-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gs-md-10 th:first-child, .table.gs-md-10 td:first-child {
+ padding-left: 2.5rem;
+ }
+ .table.gs-md-10 th:last-child, .table.gs-md-10 td:last-child {
+ padding-right: 2.5rem;
+ }
+ .table.gs-md-10 th.dtr-control:first-child, .table.gs-md-10 td.dtr-control:first-child {
+ padding-left: 2.5rem !important;
+ }
+}
+@media (min-width: 992px) {
+ .table.g-lg-0 th, .table.g-lg-0 td {
+ padding: 0rem;
+ }
+ .table.g-lg-0 th.dtr-control, .table.g-lg-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gy-lg-0 th, .table.gy-lg-0 td {
+ padding-top: 0rem;
+ padding-bottom: 0rem;
+ }
+ .table.gx-lg-0 th, .table.gx-lg-0 td {
+ padding-left: 0rem;
+ padding-right: 0rem;
+ }
+ .table.gx-lg-0 th.dtr-control, .table.gx-lg-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gs-lg-0 th:first-child, .table.gs-lg-0 td:first-child {
+ padding-left: 0rem;
+ }
+ .table.gs-lg-0 th:last-child, .table.gs-lg-0 td:last-child {
+ padding-right: 0rem;
+ }
+ .table.gs-lg-0 th.dtr-control:first-child, .table.gs-lg-0 td.dtr-control:first-child {
+ padding-left: 0rem !important;
+ }
+ .table.g-lg-1 th, .table.g-lg-1 td {
+ padding: 0.25rem;
+ }
+ .table.g-lg-1 th.dtr-control, .table.g-lg-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gy-lg-1 th, .table.gy-lg-1 td {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ }
+ .table.gx-lg-1 th, .table.gx-lg-1 td {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ }
+ .table.gx-lg-1 th.dtr-control, .table.gx-lg-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gs-lg-1 th:first-child, .table.gs-lg-1 td:first-child {
+ padding-left: 0.25rem;
+ }
+ .table.gs-lg-1 th:last-child, .table.gs-lg-1 td:last-child {
+ padding-right: 0.25rem;
+ }
+ .table.gs-lg-1 th.dtr-control:first-child, .table.gs-lg-1 td.dtr-control:first-child {
+ padding-left: 0.25rem !important;
+ }
+ .table.g-lg-2 th, .table.g-lg-2 td {
+ padding: 0.5rem;
+ }
+ .table.g-lg-2 th.dtr-control, .table.g-lg-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gy-lg-2 th, .table.gy-lg-2 td {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+ .table.gx-lg-2 th, .table.gx-lg-2 td {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ .table.gx-lg-2 th.dtr-control, .table.gx-lg-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gs-lg-2 th:first-child, .table.gs-lg-2 td:first-child {
+ padding-left: 0.5rem;
+ }
+ .table.gs-lg-2 th:last-child, .table.gs-lg-2 td:last-child {
+ padding-right: 0.5rem;
+ }
+ .table.gs-lg-2 th.dtr-control:first-child, .table.gs-lg-2 td.dtr-control:first-child {
+ padding-left: 0.5rem !important;
+ }
+ .table.g-lg-3 th, .table.g-lg-3 td {
+ padding: 0.75rem;
+ }
+ .table.g-lg-3 th.dtr-control, .table.g-lg-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gy-lg-3 th, .table.gy-lg-3 td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ }
+ .table.gx-lg-3 th, .table.gx-lg-3 td {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ }
+ .table.gx-lg-3 th.dtr-control, .table.gx-lg-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gs-lg-3 th:first-child, .table.gs-lg-3 td:first-child {
+ padding-left: 0.75rem;
+ }
+ .table.gs-lg-3 th:last-child, .table.gs-lg-3 td:last-child {
+ padding-right: 0.75rem;
+ }
+ .table.gs-lg-3 th.dtr-control:first-child, .table.gs-lg-3 td.dtr-control:first-child {
+ padding-left: 0.75rem !important;
+ }
+ .table.g-lg-4 th, .table.g-lg-4 td {
+ padding: 1rem;
+ }
+ .table.g-lg-4 th.dtr-control, .table.g-lg-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gy-lg-4 th, .table.gy-lg-4 td {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ }
+ .table.gx-lg-4 th, .table.gx-lg-4 td {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ }
+ .table.gx-lg-4 th.dtr-control, .table.gx-lg-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gs-lg-4 th:first-child, .table.gs-lg-4 td:first-child {
+ padding-left: 1rem;
+ }
+ .table.gs-lg-4 th:last-child, .table.gs-lg-4 td:last-child {
+ padding-right: 1rem;
+ }
+ .table.gs-lg-4 th.dtr-control:first-child, .table.gs-lg-4 td.dtr-control:first-child {
+ padding-left: 1rem !important;
+ }
+ .table.g-lg-5 th, .table.g-lg-5 td {
+ padding: 1.25rem;
+ }
+ .table.g-lg-5 th.dtr-control, .table.g-lg-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gy-lg-5 th, .table.gy-lg-5 td {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ }
+ .table.gx-lg-5 th, .table.gx-lg-5 td {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
+ .table.gx-lg-5 th.dtr-control, .table.gx-lg-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gs-lg-5 th:first-child, .table.gs-lg-5 td:first-child {
+ padding-left: 1.25rem;
+ }
+ .table.gs-lg-5 th:last-child, .table.gs-lg-5 td:last-child {
+ padding-right: 1.25rem;
+ }
+ .table.gs-lg-5 th.dtr-control:first-child, .table.gs-lg-5 td.dtr-control:first-child {
+ padding-left: 1.25rem !important;
+ }
+ .table.g-lg-6 th, .table.g-lg-6 td {
+ padding: 1.5rem;
+ }
+ .table.g-lg-6 th.dtr-control, .table.g-lg-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gy-lg-6 th, .table.gy-lg-6 td {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+ }
+ .table.gx-lg-6 th, .table.gx-lg-6 td {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+ .table.gx-lg-6 th.dtr-control, .table.gx-lg-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gs-lg-6 th:first-child, .table.gs-lg-6 td:first-child {
+ padding-left: 1.5rem;
+ }
+ .table.gs-lg-6 th:last-child, .table.gs-lg-6 td:last-child {
+ padding-right: 1.5rem;
+ }
+ .table.gs-lg-6 th.dtr-control:first-child, .table.gs-lg-6 td.dtr-control:first-child {
+ padding-left: 1.5rem !important;
+ }
+ .table.g-lg-7 th, .table.g-lg-7 td {
+ padding: 1.75rem;
+ }
+ .table.g-lg-7 th.dtr-control, .table.g-lg-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gy-lg-7 th, .table.gy-lg-7 td {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+ }
+ .table.gx-lg-7 th, .table.gx-lg-7 td {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+ }
+ .table.gx-lg-7 th.dtr-control, .table.gx-lg-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gs-lg-7 th:first-child, .table.gs-lg-7 td:first-child {
+ padding-left: 1.75rem;
+ }
+ .table.gs-lg-7 th:last-child, .table.gs-lg-7 td:last-child {
+ padding-right: 1.75rem;
+ }
+ .table.gs-lg-7 th.dtr-control:first-child, .table.gs-lg-7 td.dtr-control:first-child {
+ padding-left: 1.75rem !important;
+ }
+ .table.g-lg-8 th, .table.g-lg-8 td {
+ padding: 2rem;
+ }
+ .table.g-lg-8 th.dtr-control, .table.g-lg-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gy-lg-8 th, .table.gy-lg-8 td {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+ .table.gx-lg-8 th, .table.gx-lg-8 td {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
+ .table.gx-lg-8 th.dtr-control, .table.gx-lg-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gs-lg-8 th:first-child, .table.gs-lg-8 td:first-child {
+ padding-left: 2rem;
+ }
+ .table.gs-lg-8 th:last-child, .table.gs-lg-8 td:last-child {
+ padding-right: 2rem;
+ }
+ .table.gs-lg-8 th.dtr-control:first-child, .table.gs-lg-8 td.dtr-control:first-child {
+ padding-left: 2rem !important;
+ }
+ .table.g-lg-9 th, .table.g-lg-9 td {
+ padding: 2.25rem;
+ }
+ .table.g-lg-9 th.dtr-control, .table.g-lg-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gy-lg-9 th, .table.gy-lg-9 td {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+ }
+ .table.gx-lg-9 th, .table.gx-lg-9 td {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+ }
+ .table.gx-lg-9 th.dtr-control, .table.gx-lg-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gs-lg-9 th:first-child, .table.gs-lg-9 td:first-child {
+ padding-left: 2.25rem;
+ }
+ .table.gs-lg-9 th:last-child, .table.gs-lg-9 td:last-child {
+ padding-right: 2.25rem;
+ }
+ .table.gs-lg-9 th.dtr-control:first-child, .table.gs-lg-9 td.dtr-control:first-child {
+ padding-left: 2.25rem !important;
+ }
+ .table.g-lg-10 th, .table.g-lg-10 td {
+ padding: 2.5rem;
+ }
+ .table.g-lg-10 th.dtr-control, .table.g-lg-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gy-lg-10 th, .table.gy-lg-10 td {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+ }
+ .table.gx-lg-10 th, .table.gx-lg-10 td {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+ }
+ .table.gx-lg-10 th.dtr-control, .table.gx-lg-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gs-lg-10 th:first-child, .table.gs-lg-10 td:first-child {
+ padding-left: 2.5rem;
+ }
+ .table.gs-lg-10 th:last-child, .table.gs-lg-10 td:last-child {
+ padding-right: 2.5rem;
+ }
+ .table.gs-lg-10 th.dtr-control:first-child, .table.gs-lg-10 td.dtr-control:first-child {
+ padding-left: 2.5rem !important;
+ }
+}
+@media (min-width: 1200px) {
+ .table.g-xl-0 th, .table.g-xl-0 td {
+ padding: 0rem;
+ }
+ .table.g-xl-0 th.dtr-control, .table.g-xl-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gy-xl-0 th, .table.gy-xl-0 td {
+ padding-top: 0rem;
+ padding-bottom: 0rem;
+ }
+ .table.gx-xl-0 th, .table.gx-xl-0 td {
+ padding-left: 0rem;
+ padding-right: 0rem;
+ }
+ .table.gx-xl-0 th.dtr-control, .table.gx-xl-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gs-xl-0 th:first-child, .table.gs-xl-0 td:first-child {
+ padding-left: 0rem;
+ }
+ .table.gs-xl-0 th:last-child, .table.gs-xl-0 td:last-child {
+ padding-right: 0rem;
+ }
+ .table.gs-xl-0 th.dtr-control:first-child, .table.gs-xl-0 td.dtr-control:first-child {
+ padding-left: 0rem !important;
+ }
+ .table.g-xl-1 th, .table.g-xl-1 td {
+ padding: 0.25rem;
+ }
+ .table.g-xl-1 th.dtr-control, .table.g-xl-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gy-xl-1 th, .table.gy-xl-1 td {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ }
+ .table.gx-xl-1 th, .table.gx-xl-1 td {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ }
+ .table.gx-xl-1 th.dtr-control, .table.gx-xl-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gs-xl-1 th:first-child, .table.gs-xl-1 td:first-child {
+ padding-left: 0.25rem;
+ }
+ .table.gs-xl-1 th:last-child, .table.gs-xl-1 td:last-child {
+ padding-right: 0.25rem;
+ }
+ .table.gs-xl-1 th.dtr-control:first-child, .table.gs-xl-1 td.dtr-control:first-child {
+ padding-left: 0.25rem !important;
+ }
+ .table.g-xl-2 th, .table.g-xl-2 td {
+ padding: 0.5rem;
+ }
+ .table.g-xl-2 th.dtr-control, .table.g-xl-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gy-xl-2 th, .table.gy-xl-2 td {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+ .table.gx-xl-2 th, .table.gx-xl-2 td {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ .table.gx-xl-2 th.dtr-control, .table.gx-xl-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gs-xl-2 th:first-child, .table.gs-xl-2 td:first-child {
+ padding-left: 0.5rem;
+ }
+ .table.gs-xl-2 th:last-child, .table.gs-xl-2 td:last-child {
+ padding-right: 0.5rem;
+ }
+ .table.gs-xl-2 th.dtr-control:first-child, .table.gs-xl-2 td.dtr-control:first-child {
+ padding-left: 0.5rem !important;
+ }
+ .table.g-xl-3 th, .table.g-xl-3 td {
+ padding: 0.75rem;
+ }
+ .table.g-xl-3 th.dtr-control, .table.g-xl-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gy-xl-3 th, .table.gy-xl-3 td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ }
+ .table.gx-xl-3 th, .table.gx-xl-3 td {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ }
+ .table.gx-xl-3 th.dtr-control, .table.gx-xl-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gs-xl-3 th:first-child, .table.gs-xl-3 td:first-child {
+ padding-left: 0.75rem;
+ }
+ .table.gs-xl-3 th:last-child, .table.gs-xl-3 td:last-child {
+ padding-right: 0.75rem;
+ }
+ .table.gs-xl-3 th.dtr-control:first-child, .table.gs-xl-3 td.dtr-control:first-child {
+ padding-left: 0.75rem !important;
+ }
+ .table.g-xl-4 th, .table.g-xl-4 td {
+ padding: 1rem;
+ }
+ .table.g-xl-4 th.dtr-control, .table.g-xl-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gy-xl-4 th, .table.gy-xl-4 td {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ }
+ .table.gx-xl-4 th, .table.gx-xl-4 td {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ }
+ .table.gx-xl-4 th.dtr-control, .table.gx-xl-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gs-xl-4 th:first-child, .table.gs-xl-4 td:first-child {
+ padding-left: 1rem;
+ }
+ .table.gs-xl-4 th:last-child, .table.gs-xl-4 td:last-child {
+ padding-right: 1rem;
+ }
+ .table.gs-xl-4 th.dtr-control:first-child, .table.gs-xl-4 td.dtr-control:first-child {
+ padding-left: 1rem !important;
+ }
+ .table.g-xl-5 th, .table.g-xl-5 td {
+ padding: 1.25rem;
+ }
+ .table.g-xl-5 th.dtr-control, .table.g-xl-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gy-xl-5 th, .table.gy-xl-5 td {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ }
+ .table.gx-xl-5 th, .table.gx-xl-5 td {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
+ .table.gx-xl-5 th.dtr-control, .table.gx-xl-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gs-xl-5 th:first-child, .table.gs-xl-5 td:first-child {
+ padding-left: 1.25rem;
+ }
+ .table.gs-xl-5 th:last-child, .table.gs-xl-5 td:last-child {
+ padding-right: 1.25rem;
+ }
+ .table.gs-xl-5 th.dtr-control:first-child, .table.gs-xl-5 td.dtr-control:first-child {
+ padding-left: 1.25rem !important;
+ }
+ .table.g-xl-6 th, .table.g-xl-6 td {
+ padding: 1.5rem;
+ }
+ .table.g-xl-6 th.dtr-control, .table.g-xl-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gy-xl-6 th, .table.gy-xl-6 td {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+ }
+ .table.gx-xl-6 th, .table.gx-xl-6 td {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+ .table.gx-xl-6 th.dtr-control, .table.gx-xl-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gs-xl-6 th:first-child, .table.gs-xl-6 td:first-child {
+ padding-left: 1.5rem;
+ }
+ .table.gs-xl-6 th:last-child, .table.gs-xl-6 td:last-child {
+ padding-right: 1.5rem;
+ }
+ .table.gs-xl-6 th.dtr-control:first-child, .table.gs-xl-6 td.dtr-control:first-child {
+ padding-left: 1.5rem !important;
+ }
+ .table.g-xl-7 th, .table.g-xl-7 td {
+ padding: 1.75rem;
+ }
+ .table.g-xl-7 th.dtr-control, .table.g-xl-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gy-xl-7 th, .table.gy-xl-7 td {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+ }
+ .table.gx-xl-7 th, .table.gx-xl-7 td {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+ }
+ .table.gx-xl-7 th.dtr-control, .table.gx-xl-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gs-xl-7 th:first-child, .table.gs-xl-7 td:first-child {
+ padding-left: 1.75rem;
+ }
+ .table.gs-xl-7 th:last-child, .table.gs-xl-7 td:last-child {
+ padding-right: 1.75rem;
+ }
+ .table.gs-xl-7 th.dtr-control:first-child, .table.gs-xl-7 td.dtr-control:first-child {
+ padding-left: 1.75rem !important;
+ }
+ .table.g-xl-8 th, .table.g-xl-8 td {
+ padding: 2rem;
+ }
+ .table.g-xl-8 th.dtr-control, .table.g-xl-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gy-xl-8 th, .table.gy-xl-8 td {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+ .table.gx-xl-8 th, .table.gx-xl-8 td {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
+ .table.gx-xl-8 th.dtr-control, .table.gx-xl-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gs-xl-8 th:first-child, .table.gs-xl-8 td:first-child {
+ padding-left: 2rem;
+ }
+ .table.gs-xl-8 th:last-child, .table.gs-xl-8 td:last-child {
+ padding-right: 2rem;
+ }
+ .table.gs-xl-8 th.dtr-control:first-child, .table.gs-xl-8 td.dtr-control:first-child {
+ padding-left: 2rem !important;
+ }
+ .table.g-xl-9 th, .table.g-xl-9 td {
+ padding: 2.25rem;
+ }
+ .table.g-xl-9 th.dtr-control, .table.g-xl-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gy-xl-9 th, .table.gy-xl-9 td {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+ }
+ .table.gx-xl-9 th, .table.gx-xl-9 td {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+ }
+ .table.gx-xl-9 th.dtr-control, .table.gx-xl-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gs-xl-9 th:first-child, .table.gs-xl-9 td:first-child {
+ padding-left: 2.25rem;
+ }
+ .table.gs-xl-9 th:last-child, .table.gs-xl-9 td:last-child {
+ padding-right: 2.25rem;
+ }
+ .table.gs-xl-9 th.dtr-control:first-child, .table.gs-xl-9 td.dtr-control:first-child {
+ padding-left: 2.25rem !important;
+ }
+ .table.g-xl-10 th, .table.g-xl-10 td {
+ padding: 2.5rem;
+ }
+ .table.g-xl-10 th.dtr-control, .table.g-xl-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gy-xl-10 th, .table.gy-xl-10 td {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+ }
+ .table.gx-xl-10 th, .table.gx-xl-10 td {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+ }
+ .table.gx-xl-10 th.dtr-control, .table.gx-xl-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gs-xl-10 th:first-child, .table.gs-xl-10 td:first-child {
+ padding-left: 2.5rem;
+ }
+ .table.gs-xl-10 th:last-child, .table.gs-xl-10 td:last-child {
+ padding-right: 2.5rem;
+ }
+ .table.gs-xl-10 th.dtr-control:first-child, .table.gs-xl-10 td.dtr-control:first-child {
+ padding-left: 2.5rem !important;
+ }
+}
+@media (min-width: 1400px) {
+ .table.g-xxl-0 th, .table.g-xxl-0 td {
+ padding: 0rem;
+ }
+ .table.g-xxl-0 th.dtr-control, .table.g-xxl-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gy-xxl-0 th, .table.gy-xxl-0 td {
+ padding-top: 0rem;
+ padding-bottom: 0rem;
+ }
+ .table.gx-xxl-0 th, .table.gx-xxl-0 td {
+ padding-left: 0rem;
+ padding-right: 0rem;
+ }
+ .table.gx-xxl-0 th.dtr-control, .table.gx-xxl-0 td.dtr-control {
+ padding-left: 0rem !important;
+ }
+ .table.gs-xxl-0 th:first-child, .table.gs-xxl-0 td:first-child {
+ padding-left: 0rem;
+ }
+ .table.gs-xxl-0 th:last-child, .table.gs-xxl-0 td:last-child {
+ padding-right: 0rem;
+ }
+ .table.gs-xxl-0 th.dtr-control:first-child, .table.gs-xxl-0 td.dtr-control:first-child {
+ padding-left: 0rem !important;
+ }
+ .table.g-xxl-1 th, .table.g-xxl-1 td {
+ padding: 0.25rem;
+ }
+ .table.g-xxl-1 th.dtr-control, .table.g-xxl-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gy-xxl-1 th, .table.gy-xxl-1 td {
+ padding-top: 0.25rem;
+ padding-bottom: 0.25rem;
+ }
+ .table.gx-xxl-1 th, .table.gx-xxl-1 td {
+ padding-left: 0.25rem;
+ padding-right: 0.25rem;
+ }
+ .table.gx-xxl-1 th.dtr-control, .table.gx-xxl-1 td.dtr-control {
+ padding-left: 0.25rem !important;
+ }
+ .table.gs-xxl-1 th:first-child, .table.gs-xxl-1 td:first-child {
+ padding-left: 0.25rem;
+ }
+ .table.gs-xxl-1 th:last-child, .table.gs-xxl-1 td:last-child {
+ padding-right: 0.25rem;
+ }
+ .table.gs-xxl-1 th.dtr-control:first-child, .table.gs-xxl-1 td.dtr-control:first-child {
+ padding-left: 0.25rem !important;
+ }
+ .table.g-xxl-2 th, .table.g-xxl-2 td {
+ padding: 0.5rem;
+ }
+ .table.g-xxl-2 th.dtr-control, .table.g-xxl-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gy-xxl-2 th, .table.gy-xxl-2 td {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ }
+ .table.gx-xxl-2 th, .table.gx-xxl-2 td {
+ padding-left: 0.5rem;
+ padding-right: 0.5rem;
+ }
+ .table.gx-xxl-2 th.dtr-control, .table.gx-xxl-2 td.dtr-control {
+ padding-left: 0.5rem !important;
+ }
+ .table.gs-xxl-2 th:first-child, .table.gs-xxl-2 td:first-child {
+ padding-left: 0.5rem;
+ }
+ .table.gs-xxl-2 th:last-child, .table.gs-xxl-2 td:last-child {
+ padding-right: 0.5rem;
+ }
+ .table.gs-xxl-2 th.dtr-control:first-child, .table.gs-xxl-2 td.dtr-control:first-child {
+ padding-left: 0.5rem !important;
+ }
+ .table.g-xxl-3 th, .table.g-xxl-3 td {
+ padding: 0.75rem;
+ }
+ .table.g-xxl-3 th.dtr-control, .table.g-xxl-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gy-xxl-3 th, .table.gy-xxl-3 td {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ }
+ .table.gx-xxl-3 th, .table.gx-xxl-3 td {
+ padding-left: 0.75rem;
+ padding-right: 0.75rem;
+ }
+ .table.gx-xxl-3 th.dtr-control, .table.gx-xxl-3 td.dtr-control {
+ padding-left: 0.75rem !important;
+ }
+ .table.gs-xxl-3 th:first-child, .table.gs-xxl-3 td:first-child {
+ padding-left: 0.75rem;
+ }
+ .table.gs-xxl-3 th:last-child, .table.gs-xxl-3 td:last-child {
+ padding-right: 0.75rem;
+ }
+ .table.gs-xxl-3 th.dtr-control:first-child, .table.gs-xxl-3 td.dtr-control:first-child {
+ padding-left: 0.75rem !important;
+ }
+ .table.g-xxl-4 th, .table.g-xxl-4 td {
+ padding: 1rem;
+ }
+ .table.g-xxl-4 th.dtr-control, .table.g-xxl-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gy-xxl-4 th, .table.gy-xxl-4 td {
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ }
+ .table.gx-xxl-4 th, .table.gx-xxl-4 td {
+ padding-left: 1rem;
+ padding-right: 1rem;
+ }
+ .table.gx-xxl-4 th.dtr-control, .table.gx-xxl-4 td.dtr-control {
+ padding-left: 1rem !important;
+ }
+ .table.gs-xxl-4 th:first-child, .table.gs-xxl-4 td:first-child {
+ padding-left: 1rem;
+ }
+ .table.gs-xxl-4 th:last-child, .table.gs-xxl-4 td:last-child {
+ padding-right: 1rem;
+ }
+ .table.gs-xxl-4 th.dtr-control:first-child, .table.gs-xxl-4 td.dtr-control:first-child {
+ padding-left: 1rem !important;
+ }
+ .table.g-xxl-5 th, .table.g-xxl-5 td {
+ padding: 1.25rem;
+ }
+ .table.g-xxl-5 th.dtr-control, .table.g-xxl-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gy-xxl-5 th, .table.gy-xxl-5 td {
+ padding-top: 1.25rem;
+ padding-bottom: 1.25rem;
+ }
+ .table.gx-xxl-5 th, .table.gx-xxl-5 td {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+ }
+ .table.gx-xxl-5 th.dtr-control, .table.gx-xxl-5 td.dtr-control {
+ padding-left: 1.25rem !important;
+ }
+ .table.gs-xxl-5 th:first-child, .table.gs-xxl-5 td:first-child {
+ padding-left: 1.25rem;
+ }
+ .table.gs-xxl-5 th:last-child, .table.gs-xxl-5 td:last-child {
+ padding-right: 1.25rem;
+ }
+ .table.gs-xxl-5 th.dtr-control:first-child, .table.gs-xxl-5 td.dtr-control:first-child {
+ padding-left: 1.25rem !important;
+ }
+ .table.g-xxl-6 th, .table.g-xxl-6 td {
+ padding: 1.5rem;
+ }
+ .table.g-xxl-6 th.dtr-control, .table.g-xxl-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gy-xxl-6 th, .table.gy-xxl-6 td {
+ padding-top: 1.5rem;
+ padding-bottom: 1.5rem;
+ }
+ .table.gx-xxl-6 th, .table.gx-xxl-6 td {
+ padding-left: 1.5rem;
+ padding-right: 1.5rem;
+ }
+ .table.gx-xxl-6 th.dtr-control, .table.gx-xxl-6 td.dtr-control {
+ padding-left: 1.5rem !important;
+ }
+ .table.gs-xxl-6 th:first-child, .table.gs-xxl-6 td:first-child {
+ padding-left: 1.5rem;
+ }
+ .table.gs-xxl-6 th:last-child, .table.gs-xxl-6 td:last-child {
+ padding-right: 1.5rem;
+ }
+ .table.gs-xxl-6 th.dtr-control:first-child, .table.gs-xxl-6 td.dtr-control:first-child {
+ padding-left: 1.5rem !important;
+ }
+ .table.g-xxl-7 th, .table.g-xxl-7 td {
+ padding: 1.75rem;
+ }
+ .table.g-xxl-7 th.dtr-control, .table.g-xxl-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gy-xxl-7 th, .table.gy-xxl-7 td {
+ padding-top: 1.75rem;
+ padding-bottom: 1.75rem;
+ }
+ .table.gx-xxl-7 th, .table.gx-xxl-7 td {
+ padding-left: 1.75rem;
+ padding-right: 1.75rem;
+ }
+ .table.gx-xxl-7 th.dtr-control, .table.gx-xxl-7 td.dtr-control {
+ padding-left: 1.75rem !important;
+ }
+ .table.gs-xxl-7 th:first-child, .table.gs-xxl-7 td:first-child {
+ padding-left: 1.75rem;
+ }
+ .table.gs-xxl-7 th:last-child, .table.gs-xxl-7 td:last-child {
+ padding-right: 1.75rem;
+ }
+ .table.gs-xxl-7 th.dtr-control:first-child, .table.gs-xxl-7 td.dtr-control:first-child {
+ padding-left: 1.75rem !important;
+ }
+ .table.g-xxl-8 th, .table.g-xxl-8 td {
+ padding: 2rem;
+ }
+ .table.g-xxl-8 th.dtr-control, .table.g-xxl-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gy-xxl-8 th, .table.gy-xxl-8 td {
+ padding-top: 2rem;
+ padding-bottom: 2rem;
+ }
+ .table.gx-xxl-8 th, .table.gx-xxl-8 td {
+ padding-left: 2rem;
+ padding-right: 2rem;
+ }
+ .table.gx-xxl-8 th.dtr-control, .table.gx-xxl-8 td.dtr-control {
+ padding-left: 2rem !important;
+ }
+ .table.gs-xxl-8 th:first-child, .table.gs-xxl-8 td:first-child {
+ padding-left: 2rem;
+ }
+ .table.gs-xxl-8 th:last-child, .table.gs-xxl-8 td:last-child {
+ padding-right: 2rem;
+ }
+ .table.gs-xxl-8 th.dtr-control:first-child, .table.gs-xxl-8 td.dtr-control:first-child {
+ padding-left: 2rem !important;
+ }
+ .table.g-xxl-9 th, .table.g-xxl-9 td {
+ padding: 2.25rem;
+ }
+ .table.g-xxl-9 th.dtr-control, .table.g-xxl-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gy-xxl-9 th, .table.gy-xxl-9 td {
+ padding-top: 2.25rem;
+ padding-bottom: 2.25rem;
+ }
+ .table.gx-xxl-9 th, .table.gx-xxl-9 td {
+ padding-left: 2.25rem;
+ padding-right: 2.25rem;
+ }
+ .table.gx-xxl-9 th.dtr-control, .table.gx-xxl-9 td.dtr-control {
+ padding-left: 2.25rem !important;
+ }
+ .table.gs-xxl-9 th:first-child, .table.gs-xxl-9 td:first-child {
+ padding-left: 2.25rem;
+ }
+ .table.gs-xxl-9 th:last-child, .table.gs-xxl-9 td:last-child {
+ padding-right: 2.25rem;
+ }
+ .table.gs-xxl-9 th.dtr-control:first-child, .table.gs-xxl-9 td.dtr-control:first-child {
+ padding-left: 2.25rem !important;
+ }
+ .table.g-xxl-10 th, .table.g-xxl-10 td {
+ padding: 2.5rem;
+ }
+ .table.g-xxl-10 th.dtr-control, .table.g-xxl-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gy-xxl-10 th, .table.gy-xxl-10 td {
+ padding-top: 2.5rem;
+ padding-bottom: 2.5rem;
+ }
+ .table.gx-xxl-10 th, .table.gx-xxl-10 td {
+ padding-left: 2.5rem;
+ padding-right: 2.5rem;
+ }
+ .table.gx-xxl-10 th.dtr-control, .table.gx-xxl-10 td.dtr-control {
+ padding-left: 2.5rem !important;
+ }
+ .table.gs-xxl-10 th:first-child, .table.gs-xxl-10 td:first-child {
+ padding-left: 2.5rem;
+ }
+ .table.gs-xxl-10 th:last-child, .table.gs-xxl-10 td:last-child {
+ padding-right: 2.5rem;
+ }
+ .table.gs-xxl-10 th.dtr-control:first-child, .table.gs-xxl-10 td.dtr-control:first-child {
+ padding-left: 2.5rem !important;
+ }
+}
+.popover {
+ --bs-popover-header-border-color: $popover-header-border-color;
+}
+.popover .popover-header {
+ font-size: 1rem;
+ font-weight: 500;
+ border-bottom: 1px solid var(--bs-popover-header-border-color);
+}
+.popover .popover-dismiss {
+ position: absolute;
+ top: 0.85rem;
+ right: 0.85rem;
+ height: 1.25rem;
+ width: 1.25rem;
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-gray-500%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-gray-500%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e");
+ mask-size: 50%;
+ -webkit-mask-size: 50%;
+}
+.popover .popover-dismiss:hover {
+ background-color: var(--bs-primary);
+}
+.popover .popover-dismiss + .popover-header {
+ padding-right: 2.5rem;
+}
+
+[data-bs-theme=dark] .popover {
+ --bs-popover-bg: #2B2B40;
+ --bs-popover-header-bg: #2B2B40;
+ --bs-popover-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.3);
+ --bs-popover-header-border-color: #323248;
+}
+
+.popover-inverse {
+ background-color: var(--bs-gray-900);
+ border: 0;
+}
+.popover-inverse .popover-header {
+ background-color: var(--bs-gray-900);
+ color: var(--bs-gray-200);
+ border-bottom-color: var(--bs-gray-800);
+}
+.popover-inverse .popover-body {
+ color: var(--bs-gray-400);
+}
+.popover-inverse.bs-popover-top > .popover-arrow::before, .popover-inverse.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {
+ border-top-color: var(--bs-gray-100);
+}
+.popover-inverse.bs-popover-top > .popover-arrow::after, .popover-inverse.bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
+ border-top-color: var(--bs-gray-900);
+}
+.popover-inverse.bs-popover-end > .popover-arrow::before, .popover-inverse.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {
+ border-right-color: var(--bs-gray-100);
+}
+.popover-inverse.bs-popover-end > .popover-arrow::after, .popover-inverse.bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {
+ border-right-color: var(--bs-gray-900);
+}
+.popover-inverse.bs-popover-bottom > .popover-arrow::before, .popover-inverse.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {
+ border-bottom-color: var(--bs-gray-100);
+}
+.popover-inverse.bs-popover-bottom > .popover-arrow::after, .popover-inverse.bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
+ border-bottom-color: var(--bs-gray-900);
+}
+.popover-inverse.bs-popover-bottom .popover-header::before, .popover-inverse.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {
+ border-bottom-color: var(--bs-gray-900);
+}
+.popover-inverse.bs-popover-start > .popover-arrow::before, .popover-inverse.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {
+ border-left-color: var(--bs-gray-100);
+}
+.popover-inverse.bs-popover-start > .popover-arrow::after, .popover-inverse.bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {
+ border-left-color: var(--bs-gray-900);
+}
+
+.tooltip .tooltip-inner {
+ box-shadow: var(--bs-tooltip-box-shadow);
+}
+.tooltip.tooltop-auto-width .tooltip-inner {
+ white-space: nowrap;
+ max-width: none;
+}
+.tooltip.tooltip-inverse .tooltip-inner {
+ color: var(--bs-dark-inverse);
+ background-color: var(--bs-dark);
+}
+.tooltip.tooltip-inverse.bs-tooltip-top .tooltip-arrow::before, .tooltip.tooltip-inverse.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {
+ border-top-color: var(--bs-dark);
+}
+.tooltip.tooltip-inverse.bs-tooltip-end .tooltip-arrow::before, .tooltip.tooltip-inverse.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {
+ border-right-color: var(--bs-dark);
+}
+.tooltip.tooltip-inverse.bs-tooltip-bottom .tooltip-arrow::before, .tooltip.tooltip-inverse.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {
+ border-bottom-color: var(--bs-dark);
+}
+.tooltip.tooltip-inverse.bs-tooltip-start .tooltip-arrow::before, .tooltip.tooltip-inverse.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {
+ border-left-color: var(--bs-dark);
+}
+
+[data-bs-theme=dark] .tooltip {
+ --bs-tooltip-bg: #2B2B40;
+ --bs-tooltip-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.15);
+}
+
+.accordion .accordion-header {
+ cursor: pointer;
+}
+.accordion.accordion-icon-toggle .accordion-icon {
+ display: flex;
+ flex-shrink: 0;
+ transition: all 0.2s ease-in-out;
+ transform: rotate(90deg);
+ align-items: center;
+ justify-content: center;
+}
+.accordion.accordion-icon-toggle .accordion-icon i,
+.accordion.accordion-icon-toggle .accordion-icon .svg-icon {
+ color: var(--bs-primary);
+}
+.accordion.accordion-icon-toggle .collapsed .accordion-icon {
+ transition: all 0.2s ease-in-out;
+ transform: rotate(0);
+}
+.accordion.accordion-icon-toggle .collapsed .accordion-icon i,
+.accordion.accordion-icon-toggle .collapsed .accordion-icon .svg-icon {
+ color: var(--bs-text-muted);
+}
+.accordion.accordion-borderless .accordion-item {
+ border: 0;
+}
+.accordion.accordion-flush .accordion-item {
+ background-color: transparent;
+ border: 0;
+ border-radius: 0;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.image-input {
+ position: relative;
+ display: inline-block;
+ border-radius: 0.475rem;
+ background-repeat: no-repeat;
+ background-size: cover;
+}
+.image-input:not(.image-input-empty) {
+ background-image: none !important;
+}
+.image-input .image-input-wrapper {
+ width: 120px;
+ height: 120px;
+ border-radius: 0.475rem;
+ background-repeat: no-repeat;
+ background-size: cover;
+}
+.image-input [data-kt-image-input-action] {
+ cursor: pointer;
+ position: absolute;
+ transform: translate(-50%, -50%);
+}
+.image-input [data-kt-image-input-action=change] {
+ left: 100%;
+ top: 0;
+}
+.image-input [data-kt-image-input-action=change] input {
+ width: 0 !important;
+ height: 0 !important;
+ overflow: hidden;
+ opacity: 0;
+}
+.image-input [data-kt-image-input-action=cancel],
+.image-input [data-kt-image-input-action=remove] {
+ position: absolute;
+ left: 100%;
+ top: 100%;
+}
+.image-input [data-kt-image-input-action=cancel] {
+ display: none;
+}
+.image-input.image-input-changed [data-kt-image-input-action=cancel] {
+ display: flex;
+}
+.image-input.image-input-changed [data-kt-image-input-action=remove] {
+ display: none;
+}
+.image-input.image-input-empty [data-kt-image-input-action=remove],
+.image-input.image-input-empty [data-kt-image-input-action=cancel] {
+ display: none;
+}
+.image-input.image-input-circle {
+ border-radius: 50%;
+}
+.image-input.image-input-circle .image-input-wrapper {
+ border-radius: 50%;
+}
+.image-input.image-input-circle [data-kt-image-input-action=change] {
+ left: 100%;
+ top: 0;
+ transform: translate(-100%, 0%);
+}
+.image-input.image-input-circle [data-kt-image-input-action=cancel],
+.image-input.image-input-circle [data-kt-image-input-action=remove] {
+ left: 100%;
+ top: 100%;
+ transform: translate(-100%, -100%);
+}
+.image-input.image-input-outline .image-input-wrapper {
+ border: 3px solid var(--bs-body-bg);
+ box-shadow: var(--bs-box-shadow);
+}
+
+.symbol {
+ display: inline-block;
+ flex-shrink: 0;
+ position: relative;
+ border-radius: 0.475rem;
+}
+.symbol .symbol-label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: 500;
+ color: var(--bs-symbol-label-color);
+ background-color: var(--bs-symbol-label-bg);
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-size: cover;
+ border-radius: 0.475rem;
+}
+.symbol .symbol-label:after {
+ border-radius: 0.475rem;
+}
+.symbol .symbol-badge {
+ position: absolute;
+ border-radius: 100%;
+ top: 0;
+ left: 50%;
+ transform: translateX(-50%) translateY(-50%) !important;
+}
+.symbol > img {
+ width: 100%;
+ flex-shrink: 0;
+ display: inline-block;
+ border-radius: 0.475rem;
+}
+.symbol.symbol-square,
+.symbol.symbol-square > img,
+.symbol.symbol-square .symbol-label {
+ border-radius: 0 !important;
+}
+.symbol.symbol-circle,
+.symbol.symbol-circle > img,
+.symbol.symbol-circle .symbol-label {
+ border-radius: 50%;
+}
+.symbol.symbol-circle:after,
+.symbol.symbol-circle > img:after,
+.symbol.symbol-circle .symbol-label:after {
+ border-radius: 50%;
+}
+.symbol > img {
+ width: 50px;
+ height: 50px;
+}
+.symbol .symbol-label {
+ width: 50px;
+ height: 50px;
+}
+.symbol.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+}
+.symbol.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+}
+.symbol.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+}
+.symbol.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+}
+.symbol.symbol-20px > img {
+ width: 20px;
+ height: 20px;
+}
+.symbol.symbol-20px .symbol-label {
+ width: 20px;
+ height: 20px;
+}
+.symbol.symbol-20px.symbol-fixed .symbol-label {
+ width: 20px;
+ height: 20px;
+}
+.symbol.symbol-20px.symbol-fixed > img {
+ width: 20px;
+ height: 20px;
+ max-width: none;
+}
+.symbol.symbol-20px.symbol-2by3 .symbol-label {
+ height: 20px;
+ width: 30px;
+}
+.symbol.symbol-20px.symbol-2by3 > img {
+ height: 20px;
+ width: 30px;
+ max-width: none;
+}
+.symbol.symbol-25px > img {
+ width: 25px;
+ height: 25px;
+}
+.symbol.symbol-25px .symbol-label {
+ width: 25px;
+ height: 25px;
+}
+.symbol.symbol-25px.symbol-fixed .symbol-label {
+ width: 25px;
+ height: 25px;
+}
+.symbol.symbol-25px.symbol-fixed > img {
+ width: 25px;
+ height: 25px;
+ max-width: none;
+}
+.symbol.symbol-25px.symbol-2by3 .symbol-label {
+ height: 25px;
+ width: 37.5px;
+}
+.symbol.symbol-25px.symbol-2by3 > img {
+ height: 25px;
+ width: 37.5px;
+ max-width: none;
+}
+.symbol.symbol-30px > img {
+ width: 30px;
+ height: 30px;
+}
+.symbol.symbol-30px .symbol-label {
+ width: 30px;
+ height: 30px;
+}
+.symbol.symbol-30px.symbol-fixed .symbol-label {
+ width: 30px;
+ height: 30px;
+}
+.symbol.symbol-30px.symbol-fixed > img {
+ width: 30px;
+ height: 30px;
+ max-width: none;
+}
+.symbol.symbol-30px.symbol-2by3 .symbol-label {
+ height: 30px;
+ width: 45px;
+}
+.symbol.symbol-30px.symbol-2by3 > img {
+ height: 30px;
+ width: 45px;
+ max-width: none;
+}
+.symbol.symbol-35px > img {
+ width: 35px;
+ height: 35px;
+}
+.symbol.symbol-35px .symbol-label {
+ width: 35px;
+ height: 35px;
+}
+.symbol.symbol-35px.symbol-fixed .symbol-label {
+ width: 35px;
+ height: 35px;
+}
+.symbol.symbol-35px.symbol-fixed > img {
+ width: 35px;
+ height: 35px;
+ max-width: none;
+}
+.symbol.symbol-35px.symbol-2by3 .symbol-label {
+ height: 35px;
+ width: 52.5px;
+}
+.symbol.symbol-35px.symbol-2by3 > img {
+ height: 35px;
+ width: 52.5px;
+ max-width: none;
+}
+.symbol.symbol-40px > img {
+ width: 40px;
+ height: 40px;
+}
+.symbol.symbol-40px .symbol-label {
+ width: 40px;
+ height: 40px;
+}
+.symbol.symbol-40px.symbol-fixed .symbol-label {
+ width: 40px;
+ height: 40px;
+}
+.symbol.symbol-40px.symbol-fixed > img {
+ width: 40px;
+ height: 40px;
+ max-width: none;
+}
+.symbol.symbol-40px.symbol-2by3 .symbol-label {
+ height: 40px;
+ width: 60px;
+}
+.symbol.symbol-40px.symbol-2by3 > img {
+ height: 40px;
+ width: 60px;
+ max-width: none;
+}
+.symbol.symbol-45px > img {
+ width: 45px;
+ height: 45px;
+}
+.symbol.symbol-45px .symbol-label {
+ width: 45px;
+ height: 45px;
+}
+.symbol.symbol-45px.symbol-fixed .symbol-label {
+ width: 45px;
+ height: 45px;
+}
+.symbol.symbol-45px.symbol-fixed > img {
+ width: 45px;
+ height: 45px;
+ max-width: none;
+}
+.symbol.symbol-45px.symbol-2by3 .symbol-label {
+ height: 45px;
+ width: 67.5px;
+}
+.symbol.symbol-45px.symbol-2by3 > img {
+ height: 45px;
+ width: 67.5px;
+ max-width: none;
+}
+.symbol.symbol-50px > img {
+ width: 50px;
+ height: 50px;
+}
+.symbol.symbol-50px .symbol-label {
+ width: 50px;
+ height: 50px;
+}
+.symbol.symbol-50px.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+}
+.symbol.symbol-50px.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+}
+.symbol.symbol-50px.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+}
+.symbol.symbol-50px.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+}
+.symbol.symbol-55px > img {
+ width: 55px;
+ height: 55px;
+}
+.symbol.symbol-55px .symbol-label {
+ width: 55px;
+ height: 55px;
+}
+.symbol.symbol-55px.symbol-fixed .symbol-label {
+ width: 55px;
+ height: 55px;
+}
+.symbol.symbol-55px.symbol-fixed > img {
+ width: 55px;
+ height: 55px;
+ max-width: none;
+}
+.symbol.symbol-55px.symbol-2by3 .symbol-label {
+ height: 55px;
+ width: 82.5px;
+}
+.symbol.symbol-55px.symbol-2by3 > img {
+ height: 55px;
+ width: 82.5px;
+ max-width: none;
+}
+.symbol.symbol-60px > img {
+ width: 60px;
+ height: 60px;
+}
+.symbol.symbol-60px .symbol-label {
+ width: 60px;
+ height: 60px;
+}
+.symbol.symbol-60px.symbol-fixed .symbol-label {
+ width: 60px;
+ height: 60px;
+}
+.symbol.symbol-60px.symbol-fixed > img {
+ width: 60px;
+ height: 60px;
+ max-width: none;
+}
+.symbol.symbol-60px.symbol-2by3 .symbol-label {
+ height: 60px;
+ width: 90px;
+}
+.symbol.symbol-60px.symbol-2by3 > img {
+ height: 60px;
+ width: 90px;
+ max-width: none;
+}
+.symbol.symbol-65px > img {
+ width: 65px;
+ height: 65px;
+}
+.symbol.symbol-65px .symbol-label {
+ width: 65px;
+ height: 65px;
+}
+.symbol.symbol-65px.symbol-fixed .symbol-label {
+ width: 65px;
+ height: 65px;
+}
+.symbol.symbol-65px.symbol-fixed > img {
+ width: 65px;
+ height: 65px;
+ max-width: none;
+}
+.symbol.symbol-65px.symbol-2by3 .symbol-label {
+ height: 65px;
+ width: 97.5px;
+}
+.symbol.symbol-65px.symbol-2by3 > img {
+ height: 65px;
+ width: 97.5px;
+ max-width: none;
+}
+.symbol.symbol-70px > img {
+ width: 70px;
+ height: 70px;
+}
+.symbol.symbol-70px .symbol-label {
+ width: 70px;
+ height: 70px;
+}
+.symbol.symbol-70px.symbol-fixed .symbol-label {
+ width: 70px;
+ height: 70px;
+}
+.symbol.symbol-70px.symbol-fixed > img {
+ width: 70px;
+ height: 70px;
+ max-width: none;
+}
+.symbol.symbol-70px.symbol-2by3 .symbol-label {
+ height: 70px;
+ width: 105px;
+}
+.symbol.symbol-70px.symbol-2by3 > img {
+ height: 70px;
+ width: 105px;
+ max-width: none;
+}
+.symbol.symbol-75px > img {
+ width: 75px;
+ height: 75px;
+}
+.symbol.symbol-75px .symbol-label {
+ width: 75px;
+ height: 75px;
+}
+.symbol.symbol-75px.symbol-fixed .symbol-label {
+ width: 75px;
+ height: 75px;
+}
+.symbol.symbol-75px.symbol-fixed > img {
+ width: 75px;
+ height: 75px;
+ max-width: none;
+}
+.symbol.symbol-75px.symbol-2by3 .symbol-label {
+ height: 75px;
+ width: 112.5px;
+}
+.symbol.symbol-75px.symbol-2by3 > img {
+ height: 75px;
+ width: 112.5px;
+ max-width: none;
+}
+.symbol.symbol-90px > img {
+ width: 90px;
+ height: 90px;
+}
+.symbol.symbol-90px .symbol-label {
+ width: 90px;
+ height: 90px;
+}
+.symbol.symbol-90px.symbol-fixed .symbol-label {
+ width: 90px;
+ height: 90px;
+}
+.symbol.symbol-90px.symbol-fixed > img {
+ width: 90px;
+ height: 90px;
+ max-width: none;
+}
+.symbol.symbol-90px.symbol-2by3 .symbol-label {
+ height: 90px;
+ width: 135px;
+}
+.symbol.symbol-90px.symbol-2by3 > img {
+ height: 90px;
+ width: 135px;
+ max-width: none;
+}
+.symbol.symbol-100px > img {
+ width: 100px;
+ height: 100px;
+}
+.symbol.symbol-100px .symbol-label {
+ width: 100px;
+ height: 100px;
+}
+.symbol.symbol-100px.symbol-fixed .symbol-label {
+ width: 100px;
+ height: 100px;
+}
+.symbol.symbol-100px.symbol-fixed > img {
+ width: 100px;
+ height: 100px;
+ max-width: none;
+}
+.symbol.symbol-100px.symbol-2by3 .symbol-label {
+ height: 100px;
+ width: 150px;
+}
+.symbol.symbol-100px.symbol-2by3 > img {
+ height: 100px;
+ width: 150px;
+ max-width: none;
+}
+.symbol.symbol-125px > img {
+ width: 125px;
+ height: 125px;
+}
+.symbol.symbol-125px .symbol-label {
+ width: 125px;
+ height: 125px;
+}
+.symbol.symbol-125px.symbol-fixed .symbol-label {
+ width: 125px;
+ height: 125px;
+}
+.symbol.symbol-125px.symbol-fixed > img {
+ width: 125px;
+ height: 125px;
+ max-width: none;
+}
+.symbol.symbol-125px.symbol-2by3 .symbol-label {
+ height: 125px;
+ width: 187.5px;
+}
+.symbol.symbol-125px.symbol-2by3 > img {
+ height: 125px;
+ width: 187.5px;
+ max-width: none;
+}
+.symbol.symbol-150px > img {
+ width: 150px;
+ height: 150px;
+}
+.symbol.symbol-150px .symbol-label {
+ width: 150px;
+ height: 150px;
+}
+.symbol.symbol-150px.symbol-fixed .symbol-label {
+ width: 150px;
+ height: 150px;
+}
+.symbol.symbol-150px.symbol-fixed > img {
+ width: 150px;
+ height: 150px;
+ max-width: none;
+}
+.symbol.symbol-150px.symbol-2by3 .symbol-label {
+ height: 150px;
+ width: 225px;
+}
+.symbol.symbol-150px.symbol-2by3 > img {
+ height: 150px;
+ width: 225px;
+ max-width: none;
+}
+.symbol.symbol-160px > img {
+ width: 160px;
+ height: 160px;
+}
+.symbol.symbol-160px .symbol-label {
+ width: 160px;
+ height: 160px;
+}
+.symbol.symbol-160px.symbol-fixed .symbol-label {
+ width: 160px;
+ height: 160px;
+}
+.symbol.symbol-160px.symbol-fixed > img {
+ width: 160px;
+ height: 160px;
+ max-width: none;
+}
+.symbol.symbol-160px.symbol-2by3 .symbol-label {
+ height: 160px;
+ width: 240px;
+}
+.symbol.symbol-160px.symbol-2by3 > img {
+ height: 160px;
+ width: 240px;
+ max-width: none;
+}
+.symbol.symbol-175px > img {
+ width: 175px;
+ height: 175px;
+}
+.symbol.symbol-175px .symbol-label {
+ width: 175px;
+ height: 175px;
+}
+.symbol.symbol-175px.symbol-fixed .symbol-label {
+ width: 175px;
+ height: 175px;
+}
+.symbol.symbol-175px.symbol-fixed > img {
+ width: 175px;
+ height: 175px;
+ max-width: none;
+}
+.symbol.symbol-175px.symbol-2by3 .symbol-label {
+ height: 175px;
+ width: 262.5px;
+}
+.symbol.symbol-175px.symbol-2by3 > img {
+ height: 175px;
+ width: 262.5px;
+ max-width: none;
+}
+.symbol.symbol-200px > img {
+ width: 200px;
+ height: 200px;
+}
+.symbol.symbol-200px .symbol-label {
+ width: 200px;
+ height: 200px;
+}
+.symbol.symbol-200px.symbol-fixed .symbol-label {
+ width: 200px;
+ height: 200px;
+}
+.symbol.symbol-200px.symbol-fixed > img {
+ width: 200px;
+ height: 200px;
+ max-width: none;
+}
+.symbol.symbol-200px.symbol-2by3 .symbol-label {
+ height: 200px;
+ width: 300px;
+}
+.symbol.symbol-200px.symbol-2by3 > img {
+ height: 200px;
+ width: 300px;
+ max-width: none;
+}
+@media (min-width: 576px) {
+ .symbol.symbol-sm-20px > img {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-sm-20px .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-sm-20px.symbol-fixed .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-sm-20px.symbol-fixed > img {
+ width: 20px;
+ height: 20px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-20px.symbol-2by3 .symbol-label {
+ height: 20px;
+ width: 30px;
+ }
+ .symbol.symbol-sm-20px.symbol-2by3 > img {
+ height: 20px;
+ width: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-25px > img {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-sm-25px .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-sm-25px.symbol-fixed .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-sm-25px.symbol-fixed > img {
+ width: 25px;
+ height: 25px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-25px.symbol-2by3 .symbol-label {
+ height: 25px;
+ width: 37.5px;
+ }
+ .symbol.symbol-sm-25px.symbol-2by3 > img {
+ height: 25px;
+ width: 37.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-30px > img {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-sm-30px .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-sm-30px.symbol-fixed .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-sm-30px.symbol-fixed > img {
+ width: 30px;
+ height: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-30px.symbol-2by3 .symbol-label {
+ height: 30px;
+ width: 45px;
+ }
+ .symbol.symbol-sm-30px.symbol-2by3 > img {
+ height: 30px;
+ width: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-35px > img {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-sm-35px .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-sm-35px.symbol-fixed .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-sm-35px.symbol-fixed > img {
+ width: 35px;
+ height: 35px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-35px.symbol-2by3 .symbol-label {
+ height: 35px;
+ width: 52.5px;
+ }
+ .symbol.symbol-sm-35px.symbol-2by3 > img {
+ height: 35px;
+ width: 52.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-40px > img {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-sm-40px .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-sm-40px.symbol-fixed .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-sm-40px.symbol-fixed > img {
+ width: 40px;
+ height: 40px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-40px.symbol-2by3 .symbol-label {
+ height: 40px;
+ width: 60px;
+ }
+ .symbol.symbol-sm-40px.symbol-2by3 > img {
+ height: 40px;
+ width: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-45px > img {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-sm-45px .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-sm-45px.symbol-fixed .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-sm-45px.symbol-fixed > img {
+ width: 45px;
+ height: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-45px.symbol-2by3 .symbol-label {
+ height: 45px;
+ width: 67.5px;
+ }
+ .symbol.symbol-sm-45px.symbol-2by3 > img {
+ height: 45px;
+ width: 67.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-50px > img {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-sm-50px .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-sm-50px.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-sm-50px.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-50px.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+ }
+ .symbol.symbol-sm-50px.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-55px > img {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-sm-55px .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-sm-55px.symbol-fixed .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-sm-55px.symbol-fixed > img {
+ width: 55px;
+ height: 55px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-55px.symbol-2by3 .symbol-label {
+ height: 55px;
+ width: 82.5px;
+ }
+ .symbol.symbol-sm-55px.symbol-2by3 > img {
+ height: 55px;
+ width: 82.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-60px > img {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-sm-60px .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-sm-60px.symbol-fixed .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-sm-60px.symbol-fixed > img {
+ width: 60px;
+ height: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-60px.symbol-2by3 .symbol-label {
+ height: 60px;
+ width: 90px;
+ }
+ .symbol.symbol-sm-60px.symbol-2by3 > img {
+ height: 60px;
+ width: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-65px > img {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-sm-65px .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-sm-65px.symbol-fixed .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-sm-65px.symbol-fixed > img {
+ width: 65px;
+ height: 65px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-65px.symbol-2by3 .symbol-label {
+ height: 65px;
+ width: 97.5px;
+ }
+ .symbol.symbol-sm-65px.symbol-2by3 > img {
+ height: 65px;
+ width: 97.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-70px > img {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-sm-70px .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-sm-70px.symbol-fixed .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-sm-70px.symbol-fixed > img {
+ width: 70px;
+ height: 70px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-70px.symbol-2by3 .symbol-label {
+ height: 70px;
+ width: 105px;
+ }
+ .symbol.symbol-sm-70px.symbol-2by3 > img {
+ height: 70px;
+ width: 105px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-75px > img {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-sm-75px .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-sm-75px.symbol-fixed .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-sm-75px.symbol-fixed > img {
+ width: 75px;
+ height: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-75px.symbol-2by3 .symbol-label {
+ height: 75px;
+ width: 112.5px;
+ }
+ .symbol.symbol-sm-75px.symbol-2by3 > img {
+ height: 75px;
+ width: 112.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-90px > img {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-sm-90px .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-sm-90px.symbol-fixed .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-sm-90px.symbol-fixed > img {
+ width: 90px;
+ height: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-90px.symbol-2by3 .symbol-label {
+ height: 90px;
+ width: 135px;
+ }
+ .symbol.symbol-sm-90px.symbol-2by3 > img {
+ height: 90px;
+ width: 135px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-100px > img {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-sm-100px .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-sm-100px.symbol-fixed .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-sm-100px.symbol-fixed > img {
+ width: 100px;
+ height: 100px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-100px.symbol-2by3 .symbol-label {
+ height: 100px;
+ width: 150px;
+ }
+ .symbol.symbol-sm-100px.symbol-2by3 > img {
+ height: 100px;
+ width: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-125px > img {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-sm-125px .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-sm-125px.symbol-fixed .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-sm-125px.symbol-fixed > img {
+ width: 125px;
+ height: 125px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-125px.symbol-2by3 .symbol-label {
+ height: 125px;
+ width: 187.5px;
+ }
+ .symbol.symbol-sm-125px.symbol-2by3 > img {
+ height: 125px;
+ width: 187.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-150px > img {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-sm-150px .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-sm-150px.symbol-fixed .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-sm-150px.symbol-fixed > img {
+ width: 150px;
+ height: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-150px.symbol-2by3 .symbol-label {
+ height: 150px;
+ width: 225px;
+ }
+ .symbol.symbol-sm-150px.symbol-2by3 > img {
+ height: 150px;
+ width: 225px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-160px > img {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-sm-160px .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-sm-160px.symbol-fixed .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-sm-160px.symbol-fixed > img {
+ width: 160px;
+ height: 160px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-160px.symbol-2by3 .symbol-label {
+ height: 160px;
+ width: 240px;
+ }
+ .symbol.symbol-sm-160px.symbol-2by3 > img {
+ height: 160px;
+ width: 240px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-175px > img {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-sm-175px .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-sm-175px.symbol-fixed .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-sm-175px.symbol-fixed > img {
+ width: 175px;
+ height: 175px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-175px.symbol-2by3 .symbol-label {
+ height: 175px;
+ width: 262.5px;
+ }
+ .symbol.symbol-sm-175px.symbol-2by3 > img {
+ height: 175px;
+ width: 262.5px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-200px > img {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-sm-200px .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-sm-200px.symbol-fixed .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-sm-200px.symbol-fixed > img {
+ width: 200px;
+ height: 200px;
+ max-width: none;
+ }
+ .symbol.symbol-sm-200px.symbol-2by3 .symbol-label {
+ height: 200px;
+ width: 300px;
+ }
+ .symbol.symbol-sm-200px.symbol-2by3 > img {
+ height: 200px;
+ width: 300px;
+ max-width: none;
+ }
+}
+@media (min-width: 768px) {
+ .symbol.symbol-md-20px > img {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-md-20px .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-md-20px.symbol-fixed .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-md-20px.symbol-fixed > img {
+ width: 20px;
+ height: 20px;
+ max-width: none;
+ }
+ .symbol.symbol-md-20px.symbol-2by3 .symbol-label {
+ height: 20px;
+ width: 30px;
+ }
+ .symbol.symbol-md-20px.symbol-2by3 > img {
+ height: 20px;
+ width: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-md-25px > img {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-md-25px .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-md-25px.symbol-fixed .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-md-25px.symbol-fixed > img {
+ width: 25px;
+ height: 25px;
+ max-width: none;
+ }
+ .symbol.symbol-md-25px.symbol-2by3 .symbol-label {
+ height: 25px;
+ width: 37.5px;
+ }
+ .symbol.symbol-md-25px.symbol-2by3 > img {
+ height: 25px;
+ width: 37.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-30px > img {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-md-30px .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-md-30px.symbol-fixed .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-md-30px.symbol-fixed > img {
+ width: 30px;
+ height: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-md-30px.symbol-2by3 .symbol-label {
+ height: 30px;
+ width: 45px;
+ }
+ .symbol.symbol-md-30px.symbol-2by3 > img {
+ height: 30px;
+ width: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-md-35px > img {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-md-35px .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-md-35px.symbol-fixed .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-md-35px.symbol-fixed > img {
+ width: 35px;
+ height: 35px;
+ max-width: none;
+ }
+ .symbol.symbol-md-35px.symbol-2by3 .symbol-label {
+ height: 35px;
+ width: 52.5px;
+ }
+ .symbol.symbol-md-35px.symbol-2by3 > img {
+ height: 35px;
+ width: 52.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-40px > img {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-md-40px .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-md-40px.symbol-fixed .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-md-40px.symbol-fixed > img {
+ width: 40px;
+ height: 40px;
+ max-width: none;
+ }
+ .symbol.symbol-md-40px.symbol-2by3 .symbol-label {
+ height: 40px;
+ width: 60px;
+ }
+ .symbol.symbol-md-40px.symbol-2by3 > img {
+ height: 40px;
+ width: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-md-45px > img {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-md-45px .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-md-45px.symbol-fixed .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-md-45px.symbol-fixed > img {
+ width: 45px;
+ height: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-md-45px.symbol-2by3 .symbol-label {
+ height: 45px;
+ width: 67.5px;
+ }
+ .symbol.symbol-md-45px.symbol-2by3 > img {
+ height: 45px;
+ width: 67.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-50px > img {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-md-50px .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-md-50px.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-md-50px.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+ }
+ .symbol.symbol-md-50px.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+ }
+ .symbol.symbol-md-50px.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-md-55px > img {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-md-55px .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-md-55px.symbol-fixed .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-md-55px.symbol-fixed > img {
+ width: 55px;
+ height: 55px;
+ max-width: none;
+ }
+ .symbol.symbol-md-55px.symbol-2by3 .symbol-label {
+ height: 55px;
+ width: 82.5px;
+ }
+ .symbol.symbol-md-55px.symbol-2by3 > img {
+ height: 55px;
+ width: 82.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-60px > img {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-md-60px .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-md-60px.symbol-fixed .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-md-60px.symbol-fixed > img {
+ width: 60px;
+ height: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-md-60px.symbol-2by3 .symbol-label {
+ height: 60px;
+ width: 90px;
+ }
+ .symbol.symbol-md-60px.symbol-2by3 > img {
+ height: 60px;
+ width: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-md-65px > img {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-md-65px .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-md-65px.symbol-fixed .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-md-65px.symbol-fixed > img {
+ width: 65px;
+ height: 65px;
+ max-width: none;
+ }
+ .symbol.symbol-md-65px.symbol-2by3 .symbol-label {
+ height: 65px;
+ width: 97.5px;
+ }
+ .symbol.symbol-md-65px.symbol-2by3 > img {
+ height: 65px;
+ width: 97.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-70px > img {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-md-70px .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-md-70px.symbol-fixed .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-md-70px.symbol-fixed > img {
+ width: 70px;
+ height: 70px;
+ max-width: none;
+ }
+ .symbol.symbol-md-70px.symbol-2by3 .symbol-label {
+ height: 70px;
+ width: 105px;
+ }
+ .symbol.symbol-md-70px.symbol-2by3 > img {
+ height: 70px;
+ width: 105px;
+ max-width: none;
+ }
+ .symbol.symbol-md-75px > img {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-md-75px .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-md-75px.symbol-fixed .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-md-75px.symbol-fixed > img {
+ width: 75px;
+ height: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-md-75px.symbol-2by3 .symbol-label {
+ height: 75px;
+ width: 112.5px;
+ }
+ .symbol.symbol-md-75px.symbol-2by3 > img {
+ height: 75px;
+ width: 112.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-90px > img {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-md-90px .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-md-90px.symbol-fixed .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-md-90px.symbol-fixed > img {
+ width: 90px;
+ height: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-md-90px.symbol-2by3 .symbol-label {
+ height: 90px;
+ width: 135px;
+ }
+ .symbol.symbol-md-90px.symbol-2by3 > img {
+ height: 90px;
+ width: 135px;
+ max-width: none;
+ }
+ .symbol.symbol-md-100px > img {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-md-100px .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-md-100px.symbol-fixed .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-md-100px.symbol-fixed > img {
+ width: 100px;
+ height: 100px;
+ max-width: none;
+ }
+ .symbol.symbol-md-100px.symbol-2by3 .symbol-label {
+ height: 100px;
+ width: 150px;
+ }
+ .symbol.symbol-md-100px.symbol-2by3 > img {
+ height: 100px;
+ width: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-md-125px > img {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-md-125px .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-md-125px.symbol-fixed .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-md-125px.symbol-fixed > img {
+ width: 125px;
+ height: 125px;
+ max-width: none;
+ }
+ .symbol.symbol-md-125px.symbol-2by3 .symbol-label {
+ height: 125px;
+ width: 187.5px;
+ }
+ .symbol.symbol-md-125px.symbol-2by3 > img {
+ height: 125px;
+ width: 187.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-150px > img {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-md-150px .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-md-150px.symbol-fixed .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-md-150px.symbol-fixed > img {
+ width: 150px;
+ height: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-md-150px.symbol-2by3 .symbol-label {
+ height: 150px;
+ width: 225px;
+ }
+ .symbol.symbol-md-150px.symbol-2by3 > img {
+ height: 150px;
+ width: 225px;
+ max-width: none;
+ }
+ .symbol.symbol-md-160px > img {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-md-160px .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-md-160px.symbol-fixed .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-md-160px.symbol-fixed > img {
+ width: 160px;
+ height: 160px;
+ max-width: none;
+ }
+ .symbol.symbol-md-160px.symbol-2by3 .symbol-label {
+ height: 160px;
+ width: 240px;
+ }
+ .symbol.symbol-md-160px.symbol-2by3 > img {
+ height: 160px;
+ width: 240px;
+ max-width: none;
+ }
+ .symbol.symbol-md-175px > img {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-md-175px .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-md-175px.symbol-fixed .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-md-175px.symbol-fixed > img {
+ width: 175px;
+ height: 175px;
+ max-width: none;
+ }
+ .symbol.symbol-md-175px.symbol-2by3 .symbol-label {
+ height: 175px;
+ width: 262.5px;
+ }
+ .symbol.symbol-md-175px.symbol-2by3 > img {
+ height: 175px;
+ width: 262.5px;
+ max-width: none;
+ }
+ .symbol.symbol-md-200px > img {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-md-200px .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-md-200px.symbol-fixed .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-md-200px.symbol-fixed > img {
+ width: 200px;
+ height: 200px;
+ max-width: none;
+ }
+ .symbol.symbol-md-200px.symbol-2by3 .symbol-label {
+ height: 200px;
+ width: 300px;
+ }
+ .symbol.symbol-md-200px.symbol-2by3 > img {
+ height: 200px;
+ width: 300px;
+ max-width: none;
+ }
+}
+@media (min-width: 992px) {
+ .symbol.symbol-lg-20px > img {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-lg-20px .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-lg-20px.symbol-fixed .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-lg-20px.symbol-fixed > img {
+ width: 20px;
+ height: 20px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-20px.symbol-2by3 .symbol-label {
+ height: 20px;
+ width: 30px;
+ }
+ .symbol.symbol-lg-20px.symbol-2by3 > img {
+ height: 20px;
+ width: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-25px > img {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-lg-25px .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-lg-25px.symbol-fixed .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-lg-25px.symbol-fixed > img {
+ width: 25px;
+ height: 25px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-25px.symbol-2by3 .symbol-label {
+ height: 25px;
+ width: 37.5px;
+ }
+ .symbol.symbol-lg-25px.symbol-2by3 > img {
+ height: 25px;
+ width: 37.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-30px > img {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-lg-30px .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-lg-30px.symbol-fixed .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-lg-30px.symbol-fixed > img {
+ width: 30px;
+ height: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-30px.symbol-2by3 .symbol-label {
+ height: 30px;
+ width: 45px;
+ }
+ .symbol.symbol-lg-30px.symbol-2by3 > img {
+ height: 30px;
+ width: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-35px > img {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-lg-35px .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-lg-35px.symbol-fixed .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-lg-35px.symbol-fixed > img {
+ width: 35px;
+ height: 35px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-35px.symbol-2by3 .symbol-label {
+ height: 35px;
+ width: 52.5px;
+ }
+ .symbol.symbol-lg-35px.symbol-2by3 > img {
+ height: 35px;
+ width: 52.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-40px > img {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-lg-40px .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-lg-40px.symbol-fixed .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-lg-40px.symbol-fixed > img {
+ width: 40px;
+ height: 40px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-40px.symbol-2by3 .symbol-label {
+ height: 40px;
+ width: 60px;
+ }
+ .symbol.symbol-lg-40px.symbol-2by3 > img {
+ height: 40px;
+ width: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-45px > img {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-lg-45px .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-lg-45px.symbol-fixed .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-lg-45px.symbol-fixed > img {
+ width: 45px;
+ height: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-45px.symbol-2by3 .symbol-label {
+ height: 45px;
+ width: 67.5px;
+ }
+ .symbol.symbol-lg-45px.symbol-2by3 > img {
+ height: 45px;
+ width: 67.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-50px > img {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-lg-50px .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-lg-50px.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-lg-50px.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-50px.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+ }
+ .symbol.symbol-lg-50px.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-55px > img {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-lg-55px .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-lg-55px.symbol-fixed .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-lg-55px.symbol-fixed > img {
+ width: 55px;
+ height: 55px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-55px.symbol-2by3 .symbol-label {
+ height: 55px;
+ width: 82.5px;
+ }
+ .symbol.symbol-lg-55px.symbol-2by3 > img {
+ height: 55px;
+ width: 82.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-60px > img {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-lg-60px .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-lg-60px.symbol-fixed .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-lg-60px.symbol-fixed > img {
+ width: 60px;
+ height: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-60px.symbol-2by3 .symbol-label {
+ height: 60px;
+ width: 90px;
+ }
+ .symbol.symbol-lg-60px.symbol-2by3 > img {
+ height: 60px;
+ width: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-65px > img {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-lg-65px .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-lg-65px.symbol-fixed .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-lg-65px.symbol-fixed > img {
+ width: 65px;
+ height: 65px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-65px.symbol-2by3 .symbol-label {
+ height: 65px;
+ width: 97.5px;
+ }
+ .symbol.symbol-lg-65px.symbol-2by3 > img {
+ height: 65px;
+ width: 97.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-70px > img {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-lg-70px .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-lg-70px.symbol-fixed .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-lg-70px.symbol-fixed > img {
+ width: 70px;
+ height: 70px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-70px.symbol-2by3 .symbol-label {
+ height: 70px;
+ width: 105px;
+ }
+ .symbol.symbol-lg-70px.symbol-2by3 > img {
+ height: 70px;
+ width: 105px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-75px > img {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-lg-75px .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-lg-75px.symbol-fixed .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-lg-75px.symbol-fixed > img {
+ width: 75px;
+ height: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-75px.symbol-2by3 .symbol-label {
+ height: 75px;
+ width: 112.5px;
+ }
+ .symbol.symbol-lg-75px.symbol-2by3 > img {
+ height: 75px;
+ width: 112.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-90px > img {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-lg-90px .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-lg-90px.symbol-fixed .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-lg-90px.symbol-fixed > img {
+ width: 90px;
+ height: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-90px.symbol-2by3 .symbol-label {
+ height: 90px;
+ width: 135px;
+ }
+ .symbol.symbol-lg-90px.symbol-2by3 > img {
+ height: 90px;
+ width: 135px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-100px > img {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-lg-100px .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-lg-100px.symbol-fixed .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-lg-100px.symbol-fixed > img {
+ width: 100px;
+ height: 100px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-100px.symbol-2by3 .symbol-label {
+ height: 100px;
+ width: 150px;
+ }
+ .symbol.symbol-lg-100px.symbol-2by3 > img {
+ height: 100px;
+ width: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-125px > img {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-lg-125px .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-lg-125px.symbol-fixed .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-lg-125px.symbol-fixed > img {
+ width: 125px;
+ height: 125px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-125px.symbol-2by3 .symbol-label {
+ height: 125px;
+ width: 187.5px;
+ }
+ .symbol.symbol-lg-125px.symbol-2by3 > img {
+ height: 125px;
+ width: 187.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-150px > img {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-lg-150px .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-lg-150px.symbol-fixed .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-lg-150px.symbol-fixed > img {
+ width: 150px;
+ height: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-150px.symbol-2by3 .symbol-label {
+ height: 150px;
+ width: 225px;
+ }
+ .symbol.symbol-lg-150px.symbol-2by3 > img {
+ height: 150px;
+ width: 225px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-160px > img {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-lg-160px .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-lg-160px.symbol-fixed .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-lg-160px.symbol-fixed > img {
+ width: 160px;
+ height: 160px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-160px.symbol-2by3 .symbol-label {
+ height: 160px;
+ width: 240px;
+ }
+ .symbol.symbol-lg-160px.symbol-2by3 > img {
+ height: 160px;
+ width: 240px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-175px > img {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-lg-175px .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-lg-175px.symbol-fixed .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-lg-175px.symbol-fixed > img {
+ width: 175px;
+ height: 175px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-175px.symbol-2by3 .symbol-label {
+ height: 175px;
+ width: 262.5px;
+ }
+ .symbol.symbol-lg-175px.symbol-2by3 > img {
+ height: 175px;
+ width: 262.5px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-200px > img {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-lg-200px .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-lg-200px.symbol-fixed .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-lg-200px.symbol-fixed > img {
+ width: 200px;
+ height: 200px;
+ max-width: none;
+ }
+ .symbol.symbol-lg-200px.symbol-2by3 .symbol-label {
+ height: 200px;
+ width: 300px;
+ }
+ .symbol.symbol-lg-200px.symbol-2by3 > img {
+ height: 200px;
+ width: 300px;
+ max-width: none;
+ }
+}
+@media (min-width: 1200px) {
+ .symbol.symbol-xl-20px > img {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-xl-20px .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-xl-20px.symbol-fixed .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-xl-20px.symbol-fixed > img {
+ width: 20px;
+ height: 20px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-20px.symbol-2by3 .symbol-label {
+ height: 20px;
+ width: 30px;
+ }
+ .symbol.symbol-xl-20px.symbol-2by3 > img {
+ height: 20px;
+ width: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-25px > img {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-xl-25px .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-xl-25px.symbol-fixed .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-xl-25px.symbol-fixed > img {
+ width: 25px;
+ height: 25px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-25px.symbol-2by3 .symbol-label {
+ height: 25px;
+ width: 37.5px;
+ }
+ .symbol.symbol-xl-25px.symbol-2by3 > img {
+ height: 25px;
+ width: 37.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-30px > img {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-xl-30px .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-xl-30px.symbol-fixed .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-xl-30px.symbol-fixed > img {
+ width: 30px;
+ height: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-30px.symbol-2by3 .symbol-label {
+ height: 30px;
+ width: 45px;
+ }
+ .symbol.symbol-xl-30px.symbol-2by3 > img {
+ height: 30px;
+ width: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-35px > img {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-xl-35px .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-xl-35px.symbol-fixed .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-xl-35px.symbol-fixed > img {
+ width: 35px;
+ height: 35px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-35px.symbol-2by3 .symbol-label {
+ height: 35px;
+ width: 52.5px;
+ }
+ .symbol.symbol-xl-35px.symbol-2by3 > img {
+ height: 35px;
+ width: 52.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-40px > img {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-xl-40px .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-xl-40px.symbol-fixed .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-xl-40px.symbol-fixed > img {
+ width: 40px;
+ height: 40px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-40px.symbol-2by3 .symbol-label {
+ height: 40px;
+ width: 60px;
+ }
+ .symbol.symbol-xl-40px.symbol-2by3 > img {
+ height: 40px;
+ width: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-45px > img {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-xl-45px .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-xl-45px.symbol-fixed .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-xl-45px.symbol-fixed > img {
+ width: 45px;
+ height: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-45px.symbol-2by3 .symbol-label {
+ height: 45px;
+ width: 67.5px;
+ }
+ .symbol.symbol-xl-45px.symbol-2by3 > img {
+ height: 45px;
+ width: 67.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-50px > img {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-xl-50px .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-xl-50px.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-xl-50px.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-50px.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+ }
+ .symbol.symbol-xl-50px.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-55px > img {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-xl-55px .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-xl-55px.symbol-fixed .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-xl-55px.symbol-fixed > img {
+ width: 55px;
+ height: 55px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-55px.symbol-2by3 .symbol-label {
+ height: 55px;
+ width: 82.5px;
+ }
+ .symbol.symbol-xl-55px.symbol-2by3 > img {
+ height: 55px;
+ width: 82.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-60px > img {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-xl-60px .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-xl-60px.symbol-fixed .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-xl-60px.symbol-fixed > img {
+ width: 60px;
+ height: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-60px.symbol-2by3 .symbol-label {
+ height: 60px;
+ width: 90px;
+ }
+ .symbol.symbol-xl-60px.symbol-2by3 > img {
+ height: 60px;
+ width: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-65px > img {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-xl-65px .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-xl-65px.symbol-fixed .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-xl-65px.symbol-fixed > img {
+ width: 65px;
+ height: 65px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-65px.symbol-2by3 .symbol-label {
+ height: 65px;
+ width: 97.5px;
+ }
+ .symbol.symbol-xl-65px.symbol-2by3 > img {
+ height: 65px;
+ width: 97.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-70px > img {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-xl-70px .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-xl-70px.symbol-fixed .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-xl-70px.symbol-fixed > img {
+ width: 70px;
+ height: 70px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-70px.symbol-2by3 .symbol-label {
+ height: 70px;
+ width: 105px;
+ }
+ .symbol.symbol-xl-70px.symbol-2by3 > img {
+ height: 70px;
+ width: 105px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-75px > img {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-xl-75px .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-xl-75px.symbol-fixed .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-xl-75px.symbol-fixed > img {
+ width: 75px;
+ height: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-75px.symbol-2by3 .symbol-label {
+ height: 75px;
+ width: 112.5px;
+ }
+ .symbol.symbol-xl-75px.symbol-2by3 > img {
+ height: 75px;
+ width: 112.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-90px > img {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-xl-90px .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-xl-90px.symbol-fixed .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-xl-90px.symbol-fixed > img {
+ width: 90px;
+ height: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-90px.symbol-2by3 .symbol-label {
+ height: 90px;
+ width: 135px;
+ }
+ .symbol.symbol-xl-90px.symbol-2by3 > img {
+ height: 90px;
+ width: 135px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-100px > img {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-xl-100px .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-xl-100px.symbol-fixed .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-xl-100px.symbol-fixed > img {
+ width: 100px;
+ height: 100px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-100px.symbol-2by3 .symbol-label {
+ height: 100px;
+ width: 150px;
+ }
+ .symbol.symbol-xl-100px.symbol-2by3 > img {
+ height: 100px;
+ width: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-125px > img {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-xl-125px .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-xl-125px.symbol-fixed .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-xl-125px.symbol-fixed > img {
+ width: 125px;
+ height: 125px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-125px.symbol-2by3 .symbol-label {
+ height: 125px;
+ width: 187.5px;
+ }
+ .symbol.symbol-xl-125px.symbol-2by3 > img {
+ height: 125px;
+ width: 187.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-150px > img {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-xl-150px .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-xl-150px.symbol-fixed .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-xl-150px.symbol-fixed > img {
+ width: 150px;
+ height: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-150px.symbol-2by3 .symbol-label {
+ height: 150px;
+ width: 225px;
+ }
+ .symbol.symbol-xl-150px.symbol-2by3 > img {
+ height: 150px;
+ width: 225px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-160px > img {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-xl-160px .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-xl-160px.symbol-fixed .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-xl-160px.symbol-fixed > img {
+ width: 160px;
+ height: 160px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-160px.symbol-2by3 .symbol-label {
+ height: 160px;
+ width: 240px;
+ }
+ .symbol.symbol-xl-160px.symbol-2by3 > img {
+ height: 160px;
+ width: 240px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-175px > img {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-xl-175px .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-xl-175px.symbol-fixed .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-xl-175px.symbol-fixed > img {
+ width: 175px;
+ height: 175px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-175px.symbol-2by3 .symbol-label {
+ height: 175px;
+ width: 262.5px;
+ }
+ .symbol.symbol-xl-175px.symbol-2by3 > img {
+ height: 175px;
+ width: 262.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-200px > img {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-xl-200px .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-xl-200px.symbol-fixed .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-xl-200px.symbol-fixed > img {
+ width: 200px;
+ height: 200px;
+ max-width: none;
+ }
+ .symbol.symbol-xl-200px.symbol-2by3 .symbol-label {
+ height: 200px;
+ width: 300px;
+ }
+ .symbol.symbol-xl-200px.symbol-2by3 > img {
+ height: 200px;
+ width: 300px;
+ max-width: none;
+ }
+}
+@media (min-width: 1400px) {
+ .symbol.symbol-xxl-20px > img {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-xxl-20px .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-xxl-20px.symbol-fixed .symbol-label {
+ width: 20px;
+ height: 20px;
+ }
+ .symbol.symbol-xxl-20px.symbol-fixed > img {
+ width: 20px;
+ height: 20px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-20px.symbol-2by3 .symbol-label {
+ height: 20px;
+ width: 30px;
+ }
+ .symbol.symbol-xxl-20px.symbol-2by3 > img {
+ height: 20px;
+ width: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-25px > img {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-xxl-25px .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-xxl-25px.symbol-fixed .symbol-label {
+ width: 25px;
+ height: 25px;
+ }
+ .symbol.symbol-xxl-25px.symbol-fixed > img {
+ width: 25px;
+ height: 25px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-25px.symbol-2by3 .symbol-label {
+ height: 25px;
+ width: 37.5px;
+ }
+ .symbol.symbol-xxl-25px.symbol-2by3 > img {
+ height: 25px;
+ width: 37.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-30px > img {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-xxl-30px .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-xxl-30px.symbol-fixed .symbol-label {
+ width: 30px;
+ height: 30px;
+ }
+ .symbol.symbol-xxl-30px.symbol-fixed > img {
+ width: 30px;
+ height: 30px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-30px.symbol-2by3 .symbol-label {
+ height: 30px;
+ width: 45px;
+ }
+ .symbol.symbol-xxl-30px.symbol-2by3 > img {
+ height: 30px;
+ width: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-35px > img {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-xxl-35px .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-xxl-35px.symbol-fixed .symbol-label {
+ width: 35px;
+ height: 35px;
+ }
+ .symbol.symbol-xxl-35px.symbol-fixed > img {
+ width: 35px;
+ height: 35px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-35px.symbol-2by3 .symbol-label {
+ height: 35px;
+ width: 52.5px;
+ }
+ .symbol.symbol-xxl-35px.symbol-2by3 > img {
+ height: 35px;
+ width: 52.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-40px > img {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-xxl-40px .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-xxl-40px.symbol-fixed .symbol-label {
+ width: 40px;
+ height: 40px;
+ }
+ .symbol.symbol-xxl-40px.symbol-fixed > img {
+ width: 40px;
+ height: 40px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-40px.symbol-2by3 .symbol-label {
+ height: 40px;
+ width: 60px;
+ }
+ .symbol.symbol-xxl-40px.symbol-2by3 > img {
+ height: 40px;
+ width: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-45px > img {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-xxl-45px .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-xxl-45px.symbol-fixed .symbol-label {
+ width: 45px;
+ height: 45px;
+ }
+ .symbol.symbol-xxl-45px.symbol-fixed > img {
+ width: 45px;
+ height: 45px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-45px.symbol-2by3 .symbol-label {
+ height: 45px;
+ width: 67.5px;
+ }
+ .symbol.symbol-xxl-45px.symbol-2by3 > img {
+ height: 45px;
+ width: 67.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-50px > img {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-xxl-50px .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-xxl-50px.symbol-fixed .symbol-label {
+ width: 50px;
+ height: 50px;
+ }
+ .symbol.symbol-xxl-50px.symbol-fixed > img {
+ width: 50px;
+ height: 50px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-50px.symbol-2by3 .symbol-label {
+ height: 50px;
+ width: 75px;
+ }
+ .symbol.symbol-xxl-50px.symbol-2by3 > img {
+ height: 50px;
+ width: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-55px > img {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-xxl-55px .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-xxl-55px.symbol-fixed .symbol-label {
+ width: 55px;
+ height: 55px;
+ }
+ .symbol.symbol-xxl-55px.symbol-fixed > img {
+ width: 55px;
+ height: 55px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-55px.symbol-2by3 .symbol-label {
+ height: 55px;
+ width: 82.5px;
+ }
+ .symbol.symbol-xxl-55px.symbol-2by3 > img {
+ height: 55px;
+ width: 82.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-60px > img {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-xxl-60px .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-xxl-60px.symbol-fixed .symbol-label {
+ width: 60px;
+ height: 60px;
+ }
+ .symbol.symbol-xxl-60px.symbol-fixed > img {
+ width: 60px;
+ height: 60px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-60px.symbol-2by3 .symbol-label {
+ height: 60px;
+ width: 90px;
+ }
+ .symbol.symbol-xxl-60px.symbol-2by3 > img {
+ height: 60px;
+ width: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-65px > img {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-xxl-65px .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-xxl-65px.symbol-fixed .symbol-label {
+ width: 65px;
+ height: 65px;
+ }
+ .symbol.symbol-xxl-65px.symbol-fixed > img {
+ width: 65px;
+ height: 65px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-65px.symbol-2by3 .symbol-label {
+ height: 65px;
+ width: 97.5px;
+ }
+ .symbol.symbol-xxl-65px.symbol-2by3 > img {
+ height: 65px;
+ width: 97.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-70px > img {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-xxl-70px .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-xxl-70px.symbol-fixed .symbol-label {
+ width: 70px;
+ height: 70px;
+ }
+ .symbol.symbol-xxl-70px.symbol-fixed > img {
+ width: 70px;
+ height: 70px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-70px.symbol-2by3 .symbol-label {
+ height: 70px;
+ width: 105px;
+ }
+ .symbol.symbol-xxl-70px.symbol-2by3 > img {
+ height: 70px;
+ width: 105px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-75px > img {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-xxl-75px .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-xxl-75px.symbol-fixed .symbol-label {
+ width: 75px;
+ height: 75px;
+ }
+ .symbol.symbol-xxl-75px.symbol-fixed > img {
+ width: 75px;
+ height: 75px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-75px.symbol-2by3 .symbol-label {
+ height: 75px;
+ width: 112.5px;
+ }
+ .symbol.symbol-xxl-75px.symbol-2by3 > img {
+ height: 75px;
+ width: 112.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-90px > img {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-xxl-90px .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-xxl-90px.symbol-fixed .symbol-label {
+ width: 90px;
+ height: 90px;
+ }
+ .symbol.symbol-xxl-90px.symbol-fixed > img {
+ width: 90px;
+ height: 90px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-90px.symbol-2by3 .symbol-label {
+ height: 90px;
+ width: 135px;
+ }
+ .symbol.symbol-xxl-90px.symbol-2by3 > img {
+ height: 90px;
+ width: 135px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-100px > img {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-xxl-100px .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-xxl-100px.symbol-fixed .symbol-label {
+ width: 100px;
+ height: 100px;
+ }
+ .symbol.symbol-xxl-100px.symbol-fixed > img {
+ width: 100px;
+ height: 100px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-100px.symbol-2by3 .symbol-label {
+ height: 100px;
+ width: 150px;
+ }
+ .symbol.symbol-xxl-100px.symbol-2by3 > img {
+ height: 100px;
+ width: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-125px > img {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-xxl-125px .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-xxl-125px.symbol-fixed .symbol-label {
+ width: 125px;
+ height: 125px;
+ }
+ .symbol.symbol-xxl-125px.symbol-fixed > img {
+ width: 125px;
+ height: 125px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-125px.symbol-2by3 .symbol-label {
+ height: 125px;
+ width: 187.5px;
+ }
+ .symbol.symbol-xxl-125px.symbol-2by3 > img {
+ height: 125px;
+ width: 187.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-150px > img {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-xxl-150px .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-xxl-150px.symbol-fixed .symbol-label {
+ width: 150px;
+ height: 150px;
+ }
+ .symbol.symbol-xxl-150px.symbol-fixed > img {
+ width: 150px;
+ height: 150px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-150px.symbol-2by3 .symbol-label {
+ height: 150px;
+ width: 225px;
+ }
+ .symbol.symbol-xxl-150px.symbol-2by3 > img {
+ height: 150px;
+ width: 225px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-160px > img {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-xxl-160px .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-xxl-160px.symbol-fixed .symbol-label {
+ width: 160px;
+ height: 160px;
+ }
+ .symbol.symbol-xxl-160px.symbol-fixed > img {
+ width: 160px;
+ height: 160px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-160px.symbol-2by3 .symbol-label {
+ height: 160px;
+ width: 240px;
+ }
+ .symbol.symbol-xxl-160px.symbol-2by3 > img {
+ height: 160px;
+ width: 240px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-175px > img {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-xxl-175px .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-xxl-175px.symbol-fixed .symbol-label {
+ width: 175px;
+ height: 175px;
+ }
+ .symbol.symbol-xxl-175px.symbol-fixed > img {
+ width: 175px;
+ height: 175px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-175px.symbol-2by3 .symbol-label {
+ height: 175px;
+ width: 262.5px;
+ }
+ .symbol.symbol-xxl-175px.symbol-2by3 > img {
+ height: 175px;
+ width: 262.5px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-200px > img {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-xxl-200px .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-xxl-200px.symbol-fixed .symbol-label {
+ width: 200px;
+ height: 200px;
+ }
+ .symbol.symbol-xxl-200px.symbol-fixed > img {
+ width: 200px;
+ height: 200px;
+ max-width: none;
+ }
+ .symbol.symbol-xxl-200px.symbol-2by3 .symbol-label {
+ height: 200px;
+ width: 300px;
+ }
+ .symbol.symbol-xxl-200px.symbol-2by3 > img {
+ height: 200px;
+ width: 300px;
+ max-width: none;
+ }
+}
+
+.symbol-group {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ margin-left: 10px;
+}
+.symbol-group .symbol {
+ position: relative;
+ z-index: 0;
+ margin-left: -10px;
+ transition: all 0.3s ease;
+}
+.symbol-group .symbol:hover {
+ transition: all 0.3s ease;
+ z-index: 1;
+}
+.symbol-group .symbol-badge {
+ border: 2px solid var(--bs-body-bg);
+}
+.symbol-group .symbol-label {
+ position: relative;
+}
+.symbol-group .symbol-label:after {
+ display: block;
+ content: " ";
+ border-radius: inherit;
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ border: 2px solid var(--bs-symbol-border-color);
+ -webkit-background-clip: padding-box; /* for Safari */
+ background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */
+}
+.symbol-group.symbol-hover .symbol {
+ cursor: pointer;
+}
+
+.pulse {
+ position: relative;
+}
+.pulse.pulse-white .pulse-ring {
+ border-color: var(--bs-white);
+}
+.pulse.pulse-light .pulse-ring {
+ border-color: var(--bs-light);
+}
+.pulse.pulse-primary .pulse-ring {
+ border-color: var(--bs-primary);
+}
+.pulse.pulse-secondary .pulse-ring {
+ border-color: var(--bs-secondary);
+}
+.pulse.pulse-success .pulse-ring {
+ border-color: var(--bs-success);
+}
+.pulse.pulse-info .pulse-ring {
+ border-color: var(--bs-info);
+}
+.pulse.pulse-warning .pulse-ring {
+ border-color: var(--bs-warning);
+}
+.pulse.pulse-danger .pulse-ring {
+ border-color: var(--bs-danger);
+}
+.pulse.pulse-dark .pulse-ring {
+ border-color: var(--bs-dark);
+}
+
+.pulse-ring {
+ display: block;
+ border-radius: 40px;
+ height: 40px;
+ width: 40px;
+ position: absolute;
+ animation: animation-pulse 3.5s ease-out;
+ animation-iteration-count: infinite;
+ opacity: 0;
+ border-width: 3px;
+ border-style: solid;
+ border-color: var(--bs-gray-500);
+}
+
+@keyframes animation-pulse {
+ 0% {
+ -webkit-transform: scale(0.1, 0.1);
+ opacity: 0;
+ }
+ 60% {
+ -webkit-transform: scale(0.1, 0.1);
+ opacity: 0;
+ }
+ 65% {
+ opacity: 1;
+ }
+ 100% {
+ -webkit-transform: scale(1.2, 1.2);
+ opacity: 0;
+ }
+}
+[data-kt-app-page-loading=on] *,
+.page-loading * {
+ transition: none !important;
+}
+
+.page-loader {
+ background-color: var(--bs-body-bg);
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 10000;
+ display: none;
+}
+[data-kt-app-page-loading=on] .page-loader, .page-loading .page-loader {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.scrolltop {
+ position: fixed;
+ display: none;
+ cursor: pointer;
+ z-index: 105;
+ justify-content: center;
+ align-items: center;
+ width: 36px;
+ height: 36px;
+ bottom: 43px;
+ right: 7px;
+ background-color: var(--bs-scrolltop-bg-color);
+ box-shadow: var(--bs-scrolltop-box-shadow);
+ opacity: 0;
+ transition: color 0.2s ease;
+ border-radius: 0.475rem;
+}
+.scrolltop .svg-icon {
+ color: var(--bs-scrolltop-icon-color);
+}
+.scrolltop .svg-icon svg {
+ height: 24px;
+ width: 24px;
+}
+.scrolltop > i {
+ font-size: 1.3rem;
+ color: var(--bs-scrolltop-icon-color);
+}
+.scrolltop:hover {
+ background-color: var(--bs-scrolltop-bg-color-hover);
+}
+.scrolltop:hover .svg-icon,
+.scrolltop:hover i {
+ color: var(--bs-scrolltop-icon-color-hover);
+}
+[data-kt-scrolltop=on] .scrolltop {
+ opacity: var(--bs-scrolltop-opacity-on);
+ animation: animation-scrolltop 0.4s ease-out 1;
+ display: flex;
+}
+[data-kt-scrolltop=on] .scrolltop:hover {
+ transition: color 0.2s ease;
+ opacity: var(--bs-scrolltop-opacity-hover);
+}
+
+@media (max-width: 991.98px) {
+ .scrolltop {
+ bottom: 23px;
+ right: 5px;
+ width: 30px;
+ height: 30px;
+ }
+}
+@keyframes animation-scrolltop {
+ from {
+ margin-bottom: -15px;
+ }
+ to {
+ margin-bottom: 0;
+ }
+}
+.svg-icon {
+ line-height: 1;
+ color: var(--bs-text-muted);
+}
+.svg-icon svg {
+ height: 1.15rem;
+ width: 1.15rem;
+}
+.svg-icon.svg-icon-white {
+ color: var(--bs-text-white);
+}
+.svg-icon.svg-icon-primary {
+ color: var(--bs-text-primary);
+}
+.svg-icon.svg-icon-secondary {
+ color: var(--bs-text-secondary);
+}
+.svg-icon.svg-icon-light {
+ color: var(--bs-text-light);
+}
+.svg-icon.svg-icon-success {
+ color: var(--bs-text-success);
+}
+.svg-icon.svg-icon-info {
+ color: var(--bs-text-info);
+}
+.svg-icon.svg-icon-warning {
+ color: var(--bs-text-warning);
+}
+.svg-icon.svg-icon-danger {
+ color: var(--bs-text-danger);
+}
+.svg-icon.svg-icon-dark {
+ color: var(--bs-text-dark);
+}
+.svg-icon.svg-icon-muted {
+ color: var(--bs-text-muted);
+}
+.svg-icon.svg-icon-gray-100 {
+ color: var(--bs-text-gray-100);
+}
+.svg-icon.svg-icon-gray-200 {
+ color: var(--bs-text-gray-200);
+}
+.svg-icon.svg-icon-gray-300 {
+ color: var(--bs-text-gray-300);
+}
+.svg-icon.svg-icon-gray-400 {
+ color: var(--bs-text-gray-400);
+}
+.svg-icon.svg-icon-gray-500 {
+ color: var(--bs-text-gray-500);
+}
+.svg-icon.svg-icon-gray-600 {
+ color: var(--bs-text-gray-600);
+}
+.svg-icon.svg-icon-gray-700 {
+ color: var(--bs-text-gray-700);
+}
+.svg-icon.svg-icon-gray-800 {
+ color: var(--bs-text-gray-800);
+}
+.svg-icon.svg-icon-gray-900 {
+ color: var(--bs-text-gray-900);
+}
+.svg-icon.svg-icon-1 svg {
+ height: 1.75rem !important;
+ width: 1.75rem !important;
+}
+.svg-icon.svg-icon-2 svg {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+}
+.svg-icon.svg-icon-3 svg {
+ height: 1.35rem !important;
+ width: 1.35rem !important;
+}
+.svg-icon.svg-icon-4 svg {
+ height: 1.25rem !important;
+ width: 1.25rem !important;
+}
+.svg-icon.svg-icon-5 svg {
+ height: 1.15rem !important;
+ width: 1.15rem !important;
+}
+.svg-icon.svg-icon-6 svg {
+ height: 1.075rem !important;
+ width: 1.075rem !important;
+}
+.svg-icon.svg-icon-7 svg {
+ height: 0.95rem !important;
+ width: 0.95rem !important;
+}
+.svg-icon.svg-icon-8 svg {
+ height: 0.85rem !important;
+ width: 0.85rem !important;
+}
+.svg-icon.svg-icon-9 svg {
+ height: 0.75rem !important;
+ width: 0.75rem !important;
+}
+.svg-icon.svg-icon-10 svg {
+ height: 0.5rem !important;
+ width: 0.5rem !important;
+}
+.svg-icon.svg-icon-base svg {
+ height: 1rem !important;
+ width: 1rem !important;
+}
+.svg-icon.svg-icon-fluid svg {
+ height: 100% !important;
+ width: 100% !important;
+}
+.svg-icon.svg-icon-2x svg {
+ height: 2rem !important;
+ width: 2rem !important;
+}
+.svg-icon.svg-icon-2qx svg {
+ height: 2.25rem !important;
+ width: 2.25rem !important;
+}
+.svg-icon.svg-icon-2hx svg {
+ height: 2.5rem !important;
+ width: 2.5rem !important;
+}
+.svg-icon.svg-icon-2tx svg {
+ height: 2.75rem !important;
+ width: 2.75rem !important;
+}
+.svg-icon.svg-icon-3x svg {
+ height: 3rem !important;
+ width: 3rem !important;
+}
+.svg-icon.svg-icon-3qx svg {
+ height: 3.25rem !important;
+ width: 3.25rem !important;
+}
+.svg-icon.svg-icon-3hx svg {
+ height: 3.5rem !important;
+ width: 3.5rem !important;
+}
+.svg-icon.svg-icon-3tx svg {
+ height: 3.75rem !important;
+ width: 3.75rem !important;
+}
+.svg-icon.svg-icon-4x svg {
+ height: 4rem !important;
+ width: 4rem !important;
+}
+.svg-icon.svg-icon-4qx svg {
+ height: 4.25rem !important;
+ width: 4.25rem !important;
+}
+.svg-icon.svg-icon-4hx svg {
+ height: 4.5rem !important;
+ width: 4.5rem !important;
+}
+.svg-icon.svg-icon-4tx svg {
+ height: 4.75rem !important;
+ width: 4.75rem !important;
+}
+.svg-icon.svg-icon-5x svg {
+ height: 5rem !important;
+ width: 5rem !important;
+}
+.svg-icon.svg-icon-5qx svg {
+ height: 5.25rem !important;
+ width: 5.25rem !important;
+}
+.svg-icon.svg-icon-5hx svg {
+ height: 5.5rem !important;
+ width: 5.5rem !important;
+}
+.svg-icon.svg-icon-5tx svg {
+ height: 5.75rem !important;
+ width: 5.75rem !important;
+}
+@media (min-width: 576px) {
+ .svg-icon.svg-icon-sm-1 svg {
+ height: 1.75rem !important;
+ width: 1.75rem !important;
+ }
+ .svg-icon.svg-icon-sm-2 svg {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+ }
+ .svg-icon.svg-icon-sm-3 svg {
+ height: 1.35rem !important;
+ width: 1.35rem !important;
+ }
+ .svg-icon.svg-icon-sm-4 svg {
+ height: 1.25rem !important;
+ width: 1.25rem !important;
+ }
+ .svg-icon.svg-icon-sm-5 svg {
+ height: 1.15rem !important;
+ width: 1.15rem !important;
+ }
+ .svg-icon.svg-icon-sm-6 svg {
+ height: 1.075rem !important;
+ width: 1.075rem !important;
+ }
+ .svg-icon.svg-icon-sm-7 svg {
+ height: 0.95rem !important;
+ width: 0.95rem !important;
+ }
+ .svg-icon.svg-icon-sm-8 svg {
+ height: 0.85rem !important;
+ width: 0.85rem !important;
+ }
+ .svg-icon.svg-icon-sm-9 svg {
+ height: 0.75rem !important;
+ width: 0.75rem !important;
+ }
+ .svg-icon.svg-icon-sm-10 svg {
+ height: 0.5rem !important;
+ width: 0.5rem !important;
+ }
+ .svg-icon.svg-icon-sm-base svg {
+ height: 1rem !important;
+ width: 1rem !important;
+ }
+ .svg-icon.svg-icon-sm-fluid svg {
+ height: 100% !important;
+ width: 100% !important;
+ }
+ .svg-icon.svg-icon-sm-2x svg {
+ height: 2rem !important;
+ width: 2rem !important;
+ }
+ .svg-icon.svg-icon-sm-2qx svg {
+ height: 2.25rem !important;
+ width: 2.25rem !important;
+ }
+ .svg-icon.svg-icon-sm-2hx svg {
+ height: 2.5rem !important;
+ width: 2.5rem !important;
+ }
+ .svg-icon.svg-icon-sm-2tx svg {
+ height: 2.75rem !important;
+ width: 2.75rem !important;
+ }
+ .svg-icon.svg-icon-sm-3x svg {
+ height: 3rem !important;
+ width: 3rem !important;
+ }
+ .svg-icon.svg-icon-sm-3qx svg {
+ height: 3.25rem !important;
+ width: 3.25rem !important;
+ }
+ .svg-icon.svg-icon-sm-3hx svg {
+ height: 3.5rem !important;
+ width: 3.5rem !important;
+ }
+ .svg-icon.svg-icon-sm-3tx svg {
+ height: 3.75rem !important;
+ width: 3.75rem !important;
+ }
+ .svg-icon.svg-icon-sm-4x svg {
+ height: 4rem !important;
+ width: 4rem !important;
+ }
+ .svg-icon.svg-icon-sm-4qx svg {
+ height: 4.25rem !important;
+ width: 4.25rem !important;
+ }
+ .svg-icon.svg-icon-sm-4hx svg {
+ height: 4.5rem !important;
+ width: 4.5rem !important;
+ }
+ .svg-icon.svg-icon-sm-4tx svg {
+ height: 4.75rem !important;
+ width: 4.75rem !important;
+ }
+ .svg-icon.svg-icon-sm-5x svg {
+ height: 5rem !important;
+ width: 5rem !important;
+ }
+ .svg-icon.svg-icon-sm-5qx svg {
+ height: 5.25rem !important;
+ width: 5.25rem !important;
+ }
+ .svg-icon.svg-icon-sm-5hx svg {
+ height: 5.5rem !important;
+ width: 5.5rem !important;
+ }
+ .svg-icon.svg-icon-sm-5tx svg {
+ height: 5.75rem !important;
+ width: 5.75rem !important;
+ }
+}
+@media (min-width: 768px) {
+ .svg-icon.svg-icon-md-1 svg {
+ height: 1.75rem !important;
+ width: 1.75rem !important;
+ }
+ .svg-icon.svg-icon-md-2 svg {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+ }
+ .svg-icon.svg-icon-md-3 svg {
+ height: 1.35rem !important;
+ width: 1.35rem !important;
+ }
+ .svg-icon.svg-icon-md-4 svg {
+ height: 1.25rem !important;
+ width: 1.25rem !important;
+ }
+ .svg-icon.svg-icon-md-5 svg {
+ height: 1.15rem !important;
+ width: 1.15rem !important;
+ }
+ .svg-icon.svg-icon-md-6 svg {
+ height: 1.075rem !important;
+ width: 1.075rem !important;
+ }
+ .svg-icon.svg-icon-md-7 svg {
+ height: 0.95rem !important;
+ width: 0.95rem !important;
+ }
+ .svg-icon.svg-icon-md-8 svg {
+ height: 0.85rem !important;
+ width: 0.85rem !important;
+ }
+ .svg-icon.svg-icon-md-9 svg {
+ height: 0.75rem !important;
+ width: 0.75rem !important;
+ }
+ .svg-icon.svg-icon-md-10 svg {
+ height: 0.5rem !important;
+ width: 0.5rem !important;
+ }
+ .svg-icon.svg-icon-md-base svg {
+ height: 1rem !important;
+ width: 1rem !important;
+ }
+ .svg-icon.svg-icon-md-fluid svg {
+ height: 100% !important;
+ width: 100% !important;
+ }
+ .svg-icon.svg-icon-md-2x svg {
+ height: 2rem !important;
+ width: 2rem !important;
+ }
+ .svg-icon.svg-icon-md-2qx svg {
+ height: 2.25rem !important;
+ width: 2.25rem !important;
+ }
+ .svg-icon.svg-icon-md-2hx svg {
+ height: 2.5rem !important;
+ width: 2.5rem !important;
+ }
+ .svg-icon.svg-icon-md-2tx svg {
+ height: 2.75rem !important;
+ width: 2.75rem !important;
+ }
+ .svg-icon.svg-icon-md-3x svg {
+ height: 3rem !important;
+ width: 3rem !important;
+ }
+ .svg-icon.svg-icon-md-3qx svg {
+ height: 3.25rem !important;
+ width: 3.25rem !important;
+ }
+ .svg-icon.svg-icon-md-3hx svg {
+ height: 3.5rem !important;
+ width: 3.5rem !important;
+ }
+ .svg-icon.svg-icon-md-3tx svg {
+ height: 3.75rem !important;
+ width: 3.75rem !important;
+ }
+ .svg-icon.svg-icon-md-4x svg {
+ height: 4rem !important;
+ width: 4rem !important;
+ }
+ .svg-icon.svg-icon-md-4qx svg {
+ height: 4.25rem !important;
+ width: 4.25rem !important;
+ }
+ .svg-icon.svg-icon-md-4hx svg {
+ height: 4.5rem !important;
+ width: 4.5rem !important;
+ }
+ .svg-icon.svg-icon-md-4tx svg {
+ height: 4.75rem !important;
+ width: 4.75rem !important;
+ }
+ .svg-icon.svg-icon-md-5x svg {
+ height: 5rem !important;
+ width: 5rem !important;
+ }
+ .svg-icon.svg-icon-md-5qx svg {
+ height: 5.25rem !important;
+ width: 5.25rem !important;
+ }
+ .svg-icon.svg-icon-md-5hx svg {
+ height: 5.5rem !important;
+ width: 5.5rem !important;
+ }
+ .svg-icon.svg-icon-md-5tx svg {
+ height: 5.75rem !important;
+ width: 5.75rem !important;
+ }
+}
+@media (min-width: 992px) {
+ .svg-icon.svg-icon-lg-1 svg {
+ height: 1.75rem !important;
+ width: 1.75rem !important;
+ }
+ .svg-icon.svg-icon-lg-2 svg {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+ }
+ .svg-icon.svg-icon-lg-3 svg {
+ height: 1.35rem !important;
+ width: 1.35rem !important;
+ }
+ .svg-icon.svg-icon-lg-4 svg {
+ height: 1.25rem !important;
+ width: 1.25rem !important;
+ }
+ .svg-icon.svg-icon-lg-5 svg {
+ height: 1.15rem !important;
+ width: 1.15rem !important;
+ }
+ .svg-icon.svg-icon-lg-6 svg {
+ height: 1.075rem !important;
+ width: 1.075rem !important;
+ }
+ .svg-icon.svg-icon-lg-7 svg {
+ height: 0.95rem !important;
+ width: 0.95rem !important;
+ }
+ .svg-icon.svg-icon-lg-8 svg {
+ height: 0.85rem !important;
+ width: 0.85rem !important;
+ }
+ .svg-icon.svg-icon-lg-9 svg {
+ height: 0.75rem !important;
+ width: 0.75rem !important;
+ }
+ .svg-icon.svg-icon-lg-10 svg {
+ height: 0.5rem !important;
+ width: 0.5rem !important;
+ }
+ .svg-icon.svg-icon-lg-base svg {
+ height: 1rem !important;
+ width: 1rem !important;
+ }
+ .svg-icon.svg-icon-lg-fluid svg {
+ height: 100% !important;
+ width: 100% !important;
+ }
+ .svg-icon.svg-icon-lg-2x svg {
+ height: 2rem !important;
+ width: 2rem !important;
+ }
+ .svg-icon.svg-icon-lg-2qx svg {
+ height: 2.25rem !important;
+ width: 2.25rem !important;
+ }
+ .svg-icon.svg-icon-lg-2hx svg {
+ height: 2.5rem !important;
+ width: 2.5rem !important;
+ }
+ .svg-icon.svg-icon-lg-2tx svg {
+ height: 2.75rem !important;
+ width: 2.75rem !important;
+ }
+ .svg-icon.svg-icon-lg-3x svg {
+ height: 3rem !important;
+ width: 3rem !important;
+ }
+ .svg-icon.svg-icon-lg-3qx svg {
+ height: 3.25rem !important;
+ width: 3.25rem !important;
+ }
+ .svg-icon.svg-icon-lg-3hx svg {
+ height: 3.5rem !important;
+ width: 3.5rem !important;
+ }
+ .svg-icon.svg-icon-lg-3tx svg {
+ height: 3.75rem !important;
+ width: 3.75rem !important;
+ }
+ .svg-icon.svg-icon-lg-4x svg {
+ height: 4rem !important;
+ width: 4rem !important;
+ }
+ .svg-icon.svg-icon-lg-4qx svg {
+ height: 4.25rem !important;
+ width: 4.25rem !important;
+ }
+ .svg-icon.svg-icon-lg-4hx svg {
+ height: 4.5rem !important;
+ width: 4.5rem !important;
+ }
+ .svg-icon.svg-icon-lg-4tx svg {
+ height: 4.75rem !important;
+ width: 4.75rem !important;
+ }
+ .svg-icon.svg-icon-lg-5x svg {
+ height: 5rem !important;
+ width: 5rem !important;
+ }
+ .svg-icon.svg-icon-lg-5qx svg {
+ height: 5.25rem !important;
+ width: 5.25rem !important;
+ }
+ .svg-icon.svg-icon-lg-5hx svg {
+ height: 5.5rem !important;
+ width: 5.5rem !important;
+ }
+ .svg-icon.svg-icon-lg-5tx svg {
+ height: 5.75rem !important;
+ width: 5.75rem !important;
+ }
+}
+@media (min-width: 1200px) {
+ .svg-icon.svg-icon-xl-1 svg {
+ height: 1.75rem !important;
+ width: 1.75rem !important;
+ }
+ .svg-icon.svg-icon-xl-2 svg {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+ }
+ .svg-icon.svg-icon-xl-3 svg {
+ height: 1.35rem !important;
+ width: 1.35rem !important;
+ }
+ .svg-icon.svg-icon-xl-4 svg {
+ height: 1.25rem !important;
+ width: 1.25rem !important;
+ }
+ .svg-icon.svg-icon-xl-5 svg {
+ height: 1.15rem !important;
+ width: 1.15rem !important;
+ }
+ .svg-icon.svg-icon-xl-6 svg {
+ height: 1.075rem !important;
+ width: 1.075rem !important;
+ }
+ .svg-icon.svg-icon-xl-7 svg {
+ height: 0.95rem !important;
+ width: 0.95rem !important;
+ }
+ .svg-icon.svg-icon-xl-8 svg {
+ height: 0.85rem !important;
+ width: 0.85rem !important;
+ }
+ .svg-icon.svg-icon-xl-9 svg {
+ height: 0.75rem !important;
+ width: 0.75rem !important;
+ }
+ .svg-icon.svg-icon-xl-10 svg {
+ height: 0.5rem !important;
+ width: 0.5rem !important;
+ }
+ .svg-icon.svg-icon-xl-base svg {
+ height: 1rem !important;
+ width: 1rem !important;
+ }
+ .svg-icon.svg-icon-xl-fluid svg {
+ height: 100% !important;
+ width: 100% !important;
+ }
+ .svg-icon.svg-icon-xl-2x svg {
+ height: 2rem !important;
+ width: 2rem !important;
+ }
+ .svg-icon.svg-icon-xl-2qx svg {
+ height: 2.25rem !important;
+ width: 2.25rem !important;
+ }
+ .svg-icon.svg-icon-xl-2hx svg {
+ height: 2.5rem !important;
+ width: 2.5rem !important;
+ }
+ .svg-icon.svg-icon-xl-2tx svg {
+ height: 2.75rem !important;
+ width: 2.75rem !important;
+ }
+ .svg-icon.svg-icon-xl-3x svg {
+ height: 3rem !important;
+ width: 3rem !important;
+ }
+ .svg-icon.svg-icon-xl-3qx svg {
+ height: 3.25rem !important;
+ width: 3.25rem !important;
+ }
+ .svg-icon.svg-icon-xl-3hx svg {
+ height: 3.5rem !important;
+ width: 3.5rem !important;
+ }
+ .svg-icon.svg-icon-xl-3tx svg {
+ height: 3.75rem !important;
+ width: 3.75rem !important;
+ }
+ .svg-icon.svg-icon-xl-4x svg {
+ height: 4rem !important;
+ width: 4rem !important;
+ }
+ .svg-icon.svg-icon-xl-4qx svg {
+ height: 4.25rem !important;
+ width: 4.25rem !important;
+ }
+ .svg-icon.svg-icon-xl-4hx svg {
+ height: 4.5rem !important;
+ width: 4.5rem !important;
+ }
+ .svg-icon.svg-icon-xl-4tx svg {
+ height: 4.75rem !important;
+ width: 4.75rem !important;
+ }
+ .svg-icon.svg-icon-xl-5x svg {
+ height: 5rem !important;
+ width: 5rem !important;
+ }
+ .svg-icon.svg-icon-xl-5qx svg {
+ height: 5.25rem !important;
+ width: 5.25rem !important;
+ }
+ .svg-icon.svg-icon-xl-5hx svg {
+ height: 5.5rem !important;
+ width: 5.5rem !important;
+ }
+ .svg-icon.svg-icon-xl-5tx svg {
+ height: 5.75rem !important;
+ width: 5.75rem !important;
+ }
+}
+@media (min-width: 1400px) {
+ .svg-icon.svg-icon-xxl-1 svg {
+ height: 1.75rem !important;
+ width: 1.75rem !important;
+ }
+ .svg-icon.svg-icon-xxl-2 svg {
+ height: 1.5rem !important;
+ width: 1.5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-3 svg {
+ height: 1.35rem !important;
+ width: 1.35rem !important;
+ }
+ .svg-icon.svg-icon-xxl-4 svg {
+ height: 1.25rem !important;
+ width: 1.25rem !important;
+ }
+ .svg-icon.svg-icon-xxl-5 svg {
+ height: 1.15rem !important;
+ width: 1.15rem !important;
+ }
+ .svg-icon.svg-icon-xxl-6 svg {
+ height: 1.075rem !important;
+ width: 1.075rem !important;
+ }
+ .svg-icon.svg-icon-xxl-7 svg {
+ height: 0.95rem !important;
+ width: 0.95rem !important;
+ }
+ .svg-icon.svg-icon-xxl-8 svg {
+ height: 0.85rem !important;
+ width: 0.85rem !important;
+ }
+ .svg-icon.svg-icon-xxl-9 svg {
+ height: 0.75rem !important;
+ width: 0.75rem !important;
+ }
+ .svg-icon.svg-icon-xxl-10 svg {
+ height: 0.5rem !important;
+ width: 0.5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-base svg {
+ height: 1rem !important;
+ width: 1rem !important;
+ }
+ .svg-icon.svg-icon-xxl-fluid svg {
+ height: 100% !important;
+ width: 100% !important;
+ }
+ .svg-icon.svg-icon-xxl-2x svg {
+ height: 2rem !important;
+ width: 2rem !important;
+ }
+ .svg-icon.svg-icon-xxl-2qx svg {
+ height: 2.25rem !important;
+ width: 2.25rem !important;
+ }
+ .svg-icon.svg-icon-xxl-2hx svg {
+ height: 2.5rem !important;
+ width: 2.5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-2tx svg {
+ height: 2.75rem !important;
+ width: 2.75rem !important;
+ }
+ .svg-icon.svg-icon-xxl-3x svg {
+ height: 3rem !important;
+ width: 3rem !important;
+ }
+ .svg-icon.svg-icon-xxl-3qx svg {
+ height: 3.25rem !important;
+ width: 3.25rem !important;
+ }
+ .svg-icon.svg-icon-xxl-3hx svg {
+ height: 3.5rem !important;
+ width: 3.5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-3tx svg {
+ height: 3.75rem !important;
+ width: 3.75rem !important;
+ }
+ .svg-icon.svg-icon-xxl-4x svg {
+ height: 4rem !important;
+ width: 4rem !important;
+ }
+ .svg-icon.svg-icon-xxl-4qx svg {
+ height: 4.25rem !important;
+ width: 4.25rem !important;
+ }
+ .svg-icon.svg-icon-xxl-4hx svg {
+ height: 4.5rem !important;
+ width: 4.5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-4tx svg {
+ height: 4.75rem !important;
+ width: 4.75rem !important;
+ }
+ .svg-icon.svg-icon-xxl-5x svg {
+ height: 5rem !important;
+ width: 5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-5qx svg {
+ height: 5.25rem !important;
+ width: 5.25rem !important;
+ }
+ .svg-icon.svg-icon-xxl-5hx svg {
+ height: 5.5rem !important;
+ width: 5.5rem !important;
+ }
+ .svg-icon.svg-icon-xxl-5tx svg {
+ height: 5.75rem !important;
+ width: 5.75rem !important;
+ }
+}
+
+.fixed-top {
+ position: fixed;
+ z-index: 101;
+ top: 0;
+ left: 0;
+ right: 0;
+}
+
+@media (min-width: 576px) {
+ .fixed-top-sm {
+ position: fixed;
+ z-index: 101;
+ top: 0;
+ left: 0;
+ right: 0;
+ }
+}
+@media (min-width: 768px) {
+ .fixed-top-md {
+ position: fixed;
+ z-index: 101;
+ top: 0;
+ left: 0;
+ right: 0;
+ }
+}
+@media (min-width: 992px) {
+ .fixed-top-lg {
+ position: fixed;
+ z-index: 101;
+ top: 0;
+ left: 0;
+ right: 0;
+ }
+}
+@media (min-width: 1200px) {
+ .fixed-top-xl {
+ position: fixed;
+ z-index: 101;
+ top: 0;
+ left: 0;
+ right: 0;
+ }
+}
+@media (min-width: 1400px) {
+ .fixed-top-xxl {
+ position: fixed;
+ z-index: 101;
+ top: 0;
+ left: 0;
+ right: 0;
+ }
+}
+.timeline .timeline-item {
+ position: relative;
+ padding: 0;
+ margin: 0;
+ display: flex;
+ align-items: flex-start;
+}
+.timeline .timeline-item:last-child .timeline-line {
+ bottom: 100%;
+}
+.timeline .timeline-line {
+ display: block;
+ content: " ";
+ justify-content: center;
+ position: absolute;
+ z-index: 0;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ transform: translate(50%);
+ border-left-width: 1px;
+ border-left-style: dashed;
+ border-left-color: var(--bs-gray-300);
+}
+.timeline .timeline-icon {
+ z-index: 1;
+ flex-shrink: 0;
+ margin-right: 1rem;
+}
+.timeline .timeline-content {
+ width: 100%;
+ overflow: auto;
+ margin-bottom: 1.5rem;
+}
+.timeline.timeline-center .timeline-item {
+ align-items: center;
+}
+.timeline.timeline-center .timeline-item:first-child .timeline-line {
+ top: 50%;
+}
+.timeline.timeline-center .timeline-item:last-child .timeline-line {
+ bottom: 50%;
+}
+
+.timeline-label {
+ position: relative;
+}
+.timeline-label:before {
+ content: "";
+ position: absolute;
+ left: 51px;
+ width: 3px;
+ top: 0;
+ bottom: 0;
+ background-color: var(--bs-gray-200);
+}
+.timeline-label .timeline-item {
+ display: flex;
+ align-items: flex-start;
+ position: relative;
+ margin-bottom: 1.7rem;
+}
+.timeline-label .timeline-item:last-child {
+ margin-bottom: 0;
+}
+.timeline-label .timeline-label {
+ width: 50px;
+ flex-shrink: 0;
+ position: relative;
+ color: var(--bs-gray-800);
+}
+.timeline-label .timeline-badge {
+ flex-shrink: 0;
+ background-color: var(--bs-body-bg);
+ width: 1rem;
+ height: 1rem;
+ border-radius: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ z-index: 1;
+ position: relative;
+ margin-top: 1px;
+ margin-left: -0.5rem;
+ padding: 3px !important;
+ border: 6px solid var(--bs-body-bg) !important;
+}
+.timeline-label .timeline-badge span {
+ display: block;
+ border-radius: 100%;
+ width: 6px;
+ height: 6px;
+ background-color: var(--bs-gray-200);
+}
+.timeline-label .timeline-content {
+ flex-grow: 1;
+}
+
+.overlay {
+ position: relative;
+}
+.overlay .overlay-layer {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: var(--bs-overlay-bg);
+ transition: all 0.3s ease;
+ opacity: 0;
+}
+.overlay.overlay-show .overlay-layer, .overlay.overlay-block .overlay-layer, .overlay:hover .overlay-layer {
+ transition: all 0.3s ease;
+ opacity: 1;
+}
+.overlay.overlay-block {
+ cursor: wait;
+}
+
+.bullet {
+ display: inline-block;
+ background-color: var(--bs-bullet-bg-color);
+ border-radius: 6px;
+ width: 8px;
+ height: 4px;
+ flex-shrink: 0;
+}
+
+.bullet-dot {
+ width: 4px;
+ height: 4px;
+ border-radius: 100% !important;
+}
+
+.bullet-vertical {
+ width: 4px;
+ height: 8px;
+}
+
+.bullet-line {
+ width: 5px;
+ height: 1px;
+ border-radius: 0;
+}
+
+.drawer {
+ display: flex !important;
+ overflow: auto;
+ z-index: 110;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ background-color: var(--bs-drawer-bg-color);
+ transition: transform 0.3s ease-in-out !important;
+}
+.drawer.drawer-start {
+ left: 0;
+ transform: translateX(-100%);
+}
+.drawer.drawer-end {
+ right: 0;
+ transform: translateX(100%);
+}
+.drawer.drawer-on {
+ transform: none;
+ box-shadow: var(--bs-drawer-box-shadow);
+ transition: transform 0.3s ease-in-out !important;
+}
+
+.drawer-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ overflow: hidden;
+ z-index: 109;
+ background-color: var(--bs-drawer-overlay-bg-color);
+ animation: animation-drawer-fade-in 0.3s ease-in-out 1;
+}
+
+[data-kt-drawer=true] {
+ display: none;
+}
+
+@keyframes animation-drawer-fade-in {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@media (max-width: 991.98px) {
+ body[data-kt-drawer=on] {
+ overflow: hidden;
+ }
+}
+.badge {
+ --bs-badge-color: var(--bs-badge-color);
+ display: inline-flex;
+ align-items: center;
+}
+.badge.badge-circle, .badge.badge-square {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ height: 1.75rem;
+ min-width: 1.75rem;
+ padding: 0 0.1rem;
+ line-height: 0;
+}
+.badge.badge-circle {
+ border-radius: 50%;
+ padding: 0;
+ min-width: unset;
+ width: 1.75rem;
+}
+.badge.badge-sm {
+ min-width: 1.5rem;
+ font-size: 0.8rem;
+}
+.badge.badge-sm.badge-square {
+ height: 1.5rem;
+}
+.badge.badge-sm.badge-circle {
+ width: 1.5rem;
+ height: 1.5rem;
+}
+.badge.badge-lg {
+ min-width: 2rem;
+ font-size: 1rem;
+}
+.badge.badge-lg.badge-square {
+ height: 2rem;
+}
+.badge.badge-lg.badge-circle {
+ width: 2rem;
+ height: 2rem;
+}
+
+.badge-white {
+ color: var(--bs-white-inverse);
+ background-color: var(--bs-white);
+}
+.badge-white.badge-outline {
+ border: 1px solid var(--bs-white);
+ color: var(--bs-white);
+ background-color: transparent;
+}
+
+.badge-light-white {
+ color: var(--bs-white);
+ background-color: var(--bs-white-light);
+}
+
+.badge-light {
+ color: var(--bs-light-inverse);
+ background-color: var(--bs-light);
+}
+.badge-light.badge-outline {
+ border: 1px solid var(--bs-light);
+ color: var(--bs-light);
+ background-color: transparent;
+}
+
+.badge-light-light {
+ color: var(--bs-light);
+ background-color: var(--bs-light-light);
+}
+
+.badge-primary {
+ color: var(--bs-primary-inverse);
+ background-color: var(--bs-primary);
+}
+.badge-primary.badge-outline {
+ border: 1px solid var(--bs-primary);
+ color: var(--bs-primary);
+ background-color: transparent;
+}
+
+.badge-light-primary {
+ color: var(--bs-primary);
+ background-color: var(--bs-primary-light);
+}
+
+.badge-secondary {
+ color: var(--bs-secondary-inverse);
+ background-color: var(--bs-secondary);
+}
+.badge-secondary.badge-outline {
+ border: 1px solid var(--bs-secondary);
+ color: var(--bs-secondary);
+ background-color: transparent;
+}
+
+.badge-light-secondary {
+ color: var(--bs-secondary);
+ background-color: var(--bs-secondary-light);
+}
+
+.badge-success {
+ color: var(--bs-success-inverse);
+ background-color: var(--bs-success);
+}
+.badge-success.badge-outline {
+ border: 1px solid var(--bs-success);
+ color: var(--bs-success);
+ background-color: transparent;
+}
+
+.badge-light-success {
+ color: var(--bs-success);
+ background-color: var(--bs-success-light);
+}
+
+.badge-info {
+ color: var(--bs-info-inverse);
+ background-color: var(--bs-info);
+}
+.badge-info.badge-outline {
+ border: 1px solid var(--bs-info);
+ color: var(--bs-info);
+ background-color: transparent;
+}
+
+.badge-light-info {
+ color: var(--bs-info);
+ background-color: var(--bs-info-light);
+}
+
+.badge-warning {
+ color: var(--bs-warning-inverse);
+ background-color: var(--bs-warning);
+}
+.badge-warning.badge-outline {
+ border: 1px solid var(--bs-warning);
+ color: var(--bs-warning);
+ background-color: transparent;
+}
+
+.badge-light-warning {
+ color: var(--bs-warning);
+ background-color: var(--bs-warning-light);
+}
+
+.badge-danger {
+ color: var(--bs-danger-inverse);
+ background-color: var(--bs-danger);
+}
+.badge-danger.badge-outline {
+ border: 1px solid var(--bs-danger);
+ color: var(--bs-danger);
+ background-color: transparent;
+}
+
+.badge-light-danger {
+ color: var(--bs-danger);
+ background-color: var(--bs-danger-light);
+}
+
+.badge-dark {
+ color: var(--bs-dark-inverse);
+ background-color: var(--bs-dark);
+}
+.badge-dark.badge-outline {
+ border: 1px solid var(--bs-dark);
+ color: var(--bs-dark);
+ background-color: transparent;
+}
+
+.badge-light-dark {
+ color: var(--bs-dark);
+ background-color: var(--bs-dark-light);
+}
+
+.indicator-progress {
+ display: none;
+}
+[data-kt-indicator=on] > .indicator-progress {
+ display: inline-block;
+}
+
+[data-kt-indicator=on] > .indicator-label {
+ display: none;
+}
+
+.hover-elevate-up {
+ transition: transform 0.3s ease;
+}
+.hover-elevate-up:hover {
+ transform: translateY(-2.5%);
+ transition: transform 0.3s ease;
+}
+
+.hover-elevate-down {
+ transition: transform 0.3s ease;
+}
+.hover-elevate-down:hover {
+ transform: translateY(2.5%);
+ transition: transform 0.3s ease;
+}
+
+.hover-scale {
+ transition: transform 0.3s ease;
+}
+.hover-scale:hover {
+ transform: scale(1.1);
+ transition: transform 0.3s ease;
+}
+
+.hover-rotate-end {
+ transition: transform 0.3s ease;
+}
+.hover-rotate-end:hover {
+ transform: rotate(4deg);
+ transition: transform 0.3s ease;
+}
+
+.hover-rotate-start {
+ transition: transform 0.3s ease;
+}
+.hover-rotate-start:hover {
+ transform: rotate(-4deg);
+ transition: transform 0.3s ease;
+}
+
+.rotate {
+ display: inline-flex;
+ align-items: center;
+}
+
+.rotate-90 {
+ transition: transform 0.3s ease;
+ backface-visibility: hidden;
+ will-change: transform;
+}
+.collapsible:not(.collapsed) > .rotate-90, .show > .rotate-90, .active > .rotate-90 {
+ transform: rotateZ(90deg);
+ transition: transform 0.3s ease;
+}
+[direction=rtl] .collapsible:not(.collapsed) > .rotate-90, [direction=rtl] .show > .rotate-90, [direction=rtl] .active > .rotate-90 {
+ transform: rotateZ(-90deg);
+}
+
+.rotate-n90 {
+ transition: transform 0.3s ease;
+ backface-visibility: hidden;
+ will-change: transform;
+}
+.collapsible:not(.collapsed) > .rotate-n90, .show > .rotate-n90, .active > .rotate-n90 {
+ transform: rotateZ(-90deg);
+ transition: transform 0.3s ease;
+}
+[direction=rtl] .collapsible:not(.collapsed) > .rotate-n90, [direction=rtl] .show > .rotate-n90, [direction=rtl] .active > .rotate-n90 {
+ transform: rotateZ(90deg);
+}
+
+.rotate-180 {
+ transition: transform 0.3s ease;
+ backface-visibility: hidden;
+ will-change: transform;
+}
+.collapsible:not(.collapsed) > .rotate-180, .show > .rotate-180, .active > .rotate-180 {
+ transform: rotateZ(180deg);
+ transition: transform 0.3s ease;
+}
+[direction=rtl] .collapsible:not(.collapsed) > .rotate-180, [direction=rtl] .show > .rotate-180, [direction=rtl] .active > .rotate-180 {
+ transform: rotateZ(-180deg);
+}
+
+.rotate-n180 {
+ transition: transform 0.3s ease;
+ backface-visibility: hidden;
+ will-change: transform;
+}
+.collapsible:not(.collapsed) > .rotate-n180, .show > .rotate-n180, .active > .rotate-n180 {
+ transform: rotateZ(-180deg);
+ transition: transform 0.3s ease;
+}
+[direction=rtl] .collapsible:not(.collapsed) > .rotate-n180, [direction=rtl] .show > .rotate-n180, [direction=rtl] .active > .rotate-n180 {
+ transform: rotateZ(180deg);
+}
+
+.rotate-270 {
+ transition: transform 0.3s ease;
+ backface-visibility: hidden;
+ will-change: transform;
+}
+.collapsible:not(.collapsed) > .rotate-270, .show > .rotate-270, .active > .rotate-270 {
+ transform: rotateZ(270deg);
+ transition: transform 0.3s ease;
+}
+[direction=rtl] .collapsible:not(.collapsed) > .rotate-270, [direction=rtl] .show > .rotate-270, [direction=rtl] .active > .rotate-270 {
+ transform: rotateZ(-270deg);
+}
+
+.rotate-n270 {
+ transition: transform 0.3s ease;
+ backface-visibility: hidden;
+ will-change: transform;
+}
+.collapsible:not(.collapsed) > .rotate-n270, .show > .rotate-n270, .active > .rotate-n270 {
+ transform: rotateZ(-270deg);
+ transition: transform 0.3s ease;
+}
+[direction=rtl] .collapsible:not(.collapsed) > .rotate-n270, [direction=rtl] .show > .rotate-n270, [direction=rtl] .active > .rotate-n270 {
+ transform: rotateZ(270deg);
+}
+
+@media (min-width: 992px) {
+ main,
+span,
+ol,
+ul,
+pre,
+div {
+ scrollbar-width: thin;
+ scrollbar-color: var(--bs-scrollbar-color) transparent;
+ }
+ main::-webkit-scrollbar,
+span::-webkit-scrollbar,
+ol::-webkit-scrollbar,
+ul::-webkit-scrollbar,
+pre::-webkit-scrollbar,
+div::-webkit-scrollbar {
+ width: var(--bs-scrollbar-size);
+ height: var(--bs-scrollbar-size);
+ }
+ main ::-webkit-scrollbar-track,
+span ::-webkit-scrollbar-track,
+ol ::-webkit-scrollbar-track,
+ul ::-webkit-scrollbar-track,
+pre ::-webkit-scrollbar-track,
+div ::-webkit-scrollbar-track {
+ background-color: transparent;
+ }
+ main ::-webkit-scrollbar-thumb,
+span ::-webkit-scrollbar-thumb,
+ol ::-webkit-scrollbar-thumb,
+ul ::-webkit-scrollbar-thumb,
+pre ::-webkit-scrollbar-thumb,
+div ::-webkit-scrollbar-thumb {
+ border-radius: var(--bs-scrollbar-size);
+ }
+ main::-webkit-scrollbar-thumb,
+span::-webkit-scrollbar-thumb,
+ol::-webkit-scrollbar-thumb,
+ul::-webkit-scrollbar-thumb,
+pre::-webkit-scrollbar-thumb,
+div::-webkit-scrollbar-thumb {
+ background-color: var(--bs-scrollbar-color);
+ }
+ main::-webkit-scrollbar-corner,
+span::-webkit-scrollbar-corner,
+ol::-webkit-scrollbar-corner,
+ul::-webkit-scrollbar-corner,
+pre::-webkit-scrollbar-corner,
+div::-webkit-scrollbar-corner {
+ background-color: transparent;
+ }
+ main:hover,
+span:hover,
+ol:hover,
+ul:hover,
+pre:hover,
+div:hover {
+ scrollbar-color: var(--bs-scrollbar-hover-color) transparent;
+ }
+ main:hover::-webkit-scrollbar-thumb,
+span:hover::-webkit-scrollbar-thumb,
+ol:hover::-webkit-scrollbar-thumb,
+ul:hover::-webkit-scrollbar-thumb,
+pre:hover::-webkit-scrollbar-thumb,
+div:hover::-webkit-scrollbar-thumb {
+ background-color: var(--bs-scrollbar-hover-color);
+ }
+ main:hover::-webkit-scrollbar-corner,
+span:hover::-webkit-scrollbar-corner,
+ol:hover::-webkit-scrollbar-corner,
+ul:hover::-webkit-scrollbar-corner,
+pre:hover::-webkit-scrollbar-corner,
+div:hover::-webkit-scrollbar-corner {
+ background-color: transparent;
+ }
+}
+.scroll {
+ overflow: scroll;
+ position: relative;
+}
+@media (max-width: 991.98px) {
+ .scroll {
+ overflow: auto;
+ }
+}
+
+.scroll-x {
+ overflow-x: scroll;
+ position: relative;
+}
+@media (max-width: 991.98px) {
+ .scroll-x {
+ overflow-x: auto;
+ }
+}
+
+.scroll-y {
+ overflow-y: scroll;
+ position: relative;
+}
+@media (max-width: 991.98px) {
+ .scroll-y {
+ overflow-y: auto;
+ }
+}
+
+.hover-scroll,
+.hover-scroll-overlay {
+ position: relative;
+}
+@media (min-width: 992px) {
+ .hover-scroll,
+.hover-scroll-overlay {
+ overflow: hidden;
+ }
+ @-moz-document url-prefix() {
+ .hover-scroll,
+.hover-scroll-overlay {
+ overflow: scroll;
+ }
+ }
+ .safari-mode .hover-scroll,
+.safari-mode .hover-scroll-overlay {
+ overflow: scroll;
+ }
+ .hover-scroll::-webkit-scrollbar,
+.hover-scroll-overlay::-webkit-scrollbar {
+ width: var(--bs-scrollbar-overlay-size);
+ height: var(--bs-scrollbar-overlay-size);
+ }
+ .hover-scroll::-webkit-scrollbar-thumb,
+.hover-scroll-overlay::-webkit-scrollbar-thumb {
+ background-clip: content-box;
+ border: var(--bs-scrollbar-overlay-space) solid transparent;
+ border-radius: var(--bs-scrollbar-overlay-size);
+ }
+ .hover-scroll:hover,
+.hover-scroll-overlay:hover {
+ overflow: overlay;
+ }
+}
+@media (max-width: 991.98px) {
+ .hover-scroll,
+.hover-scroll-overlay {
+ overflow: auto;
+ }
+}
+
+.hover-scroll-y,
+.hover-scroll-overlay-y {
+ position: relative;
+}
+@media (min-width: 992px) {
+ .hover-scroll-y,
+.hover-scroll-overlay-y {
+ overflow-y: hidden;
+ }
+ @-moz-document url-prefix() {
+ .hover-scroll-y,
+.hover-scroll-overlay-y {
+ overflow-y: scroll;
+ }
+ }
+ .safari-mode .hover-scroll-y,
+.safari-mode .hover-scroll-overlay-y {
+ overflow-y: scroll;
+ }
+ .hover-scroll-y::-webkit-scrollbar,
+.hover-scroll-overlay-y::-webkit-scrollbar {
+ width: var(--bs-scrollbar-overlay-size);
+ }
+ .hover-scroll-y::-webkit-scrollbar-thumb,
+.hover-scroll-overlay-y::-webkit-scrollbar-thumb {
+ background-clip: content-box;
+ border: var(--bs-scrollbar-overlay-space) solid transparent;
+ border-radius: var(--bs-scrollbar-overlay-size);
+ }
+ .hover-scroll-y:hover,
+.hover-scroll-overlay-y:hover {
+ overflow-y: overlay;
+ }
+}
+@media (max-width: 991.98px) {
+ .hover-scroll-y,
+.hover-scroll-overlay-y {
+ overflow-y: auto;
+ }
+}
+
+.hover-scroll-x,
+.hover-scroll-overlay-x {
+ position: relative;
+}
+@media (min-width: 992px) {
+ .hover-scroll-x,
+.hover-scroll-overlay-x {
+ overflow-x: hidden;
+ }
+ @-moz-document url-prefix() {
+ .hover-scroll-x,
+.hover-scroll-overlay-x {
+ overflow-x: scroll;
+ }
+ }
+ .safari-mode .hover-scroll-x,
+.safari-mode .hover-scroll-overlay-x {
+ overflow-x: scroll;
+ }
+ .hover-scroll-x::-webkit-scrollbar,
+.hover-scroll-overlay-x::-webkit-scrollbar {
+ height: var(--bs-scrollbar-overlay-size);
+ }
+ .hover-scroll-x::-webkit-scrollbar-thumb,
+.hover-scroll-overlay-x::-webkit-scrollbar-thumb {
+ background-clip: content-box;
+ border: var(--bs-scrollbar-overlay-space) solid transparent;
+ border-radius: var(--bs-scrollbar-overlay-size);
+ }
+ .hover-scroll-x:hover,
+.hover-scroll-overlay-x:hover {
+ overflow-x: overlay;
+ }
+}
+@media (max-width: 991.98px) {
+ .hover-scroll-x,
+.hover-scroll-overlay-x {
+ overflow-x: auto;
+ }
+}
+
+.scroll-ps {
+ padding-left: var(--bs-scrollbar-size) !important;
+}
+
+.scroll-ms {
+ margin-left: var(--bs-scrollbar-size) !important;
+}
+
+.scroll-mb {
+ margin-bottom: var(--bs-scrollbar-size) !important;
+}
+
+.scroll-pe {
+ padding-right: var(--bs-scrollbar-size) !important;
+}
+
+.scroll-me {
+ margin-right: var(--bs-scrollbar-size) !important;
+}
+
+.scroll-px {
+ padding-left: var(--bs-scrollbar-size) !important;
+ padding-right: var(--bs-scrollbar-size) !important;
+}
+
+.scroll-mx {
+ margin-left: var(--bs-scrollbar-size) !important;
+ margin-right: var(--bs-scrollbar-size) !important;
+}
+
+.rating {
+ display: flex;
+ align-items: center;
+}
+
+.rating-input {
+ position: absolute !important;
+ left: -9999px !important;
+}
+.rating-input[disabled] {
+ display: none;
+}
+
+.rating-label {
+ padding: 0;
+ margin: 0;
+}
+.rating-label > i, .rating-label > .svg-icon {
+ line-height: 1;
+ color: var(--bs-rating-color-default);
+}
+
+label.rating-label {
+ cursor: pointer;
+}
+
+div.rating-label.checked > i, div.rating-label.checked > .svg-icon,
+label.rating-label > i,
+label.rating-label > .svg-icon {
+ color: var(--bs-rating-color-active);
+}
+
+.rating-input:checked ~ .rating-label > i, .rating-input:checked ~ .rating-label > .svg-icon {
+ color: var(--bs-rating-color-default);
+}
+
+.rating:hover label.rating-label > i, .rating:hover label.rating-label > .svg-icon {
+ color: var(--bs-rating-color-active);
+}
+
+label.rating-label:hover ~ .rating-label {
+ color: var(--bs-rating-color-default);
+}
+label.rating-label:hover ~ .rating-label > i, label.rating-label:hover ~ .rating-label > .svg-icon {
+ color: var(--bs-rating-color-default);
+}
+
+.stepper [data-kt-stepper-element=info],
+.stepper [data-kt-stepper-element=content] {
+ display: none;
+}
+.stepper [data-kt-stepper-element=info].current,
+.stepper [data-kt-stepper-element=content].current {
+ display: flex;
+}
+.stepper .stepper-item[data-kt-stepper-action=step] {
+ cursor: pointer;
+}
+.stepper [data-kt-stepper-action=final] {
+ display: none;
+}
+.stepper [data-kt-stepper-action=previous] {
+ display: none;
+}
+.stepper [data-kt-stepper-action=next] {
+ display: inline-block;
+}
+.stepper [data-kt-stepper-action=submit] {
+ display: none;
+}
+.stepper.first [data-kt-stepper-action=previous] {
+ display: none;
+}
+.stepper.first [data-kt-stepper-action=next] {
+ display: inline-block;
+}
+.stepper.first [data-kt-stepper-action=submit] {
+ display: none;
+}
+.stepper.between [data-kt-stepper-action=previous] {
+ display: inline-block;
+}
+.stepper.between [data-kt-stepper-action=next] {
+ display: inline-block;
+}
+.stepper.between [data-kt-stepper-action=submit] {
+ display: none;
+}
+.stepper.last [data-kt-stepper-action=final] {
+ display: inline-block;
+}
+.stepper.last [data-kt-stepper-action=final].btn-flex {
+ display: flex;
+}
+.stepper.last [data-kt-stepper-action=previous] {
+ display: inline-block;
+}
+.stepper.last [data-kt-stepper-action=previous].btn-flex {
+ display: flex;
+}
+.stepper.last [data-kt-stepper-action=next] {
+ display: none;
+}
+.stepper.last [data-kt-stepper-action=next].btn-flex {
+ display: flex;
+}
+.stepper.last [data-kt-stepper-action=submit] {
+ display: inline-block;
+}
+.stepper.last [data-kt-stepper-action=submit].btn-flex {
+ display: flex;
+}
+
+.stepper.stepper-pills {
+ --bs-stepper-pills-size: 40px;
+ --bs-stepper-icon-border-radius: 9px;
+ --bs-stepper-icon-check-size: 1rem;
+ --bs-stepper-icon-bg-color: var(--bs-primary-light);
+ --bs-stepper-icon-bg-color-current: var(--bs-primary);
+ --bs-stepper-icon-bg-color-completed: var(--bs-primary-light);
+ --bs-stepper-icon-border: 0;
+ --bs-stepper-icon-border-current: 0;
+ --bs-stepper-icon-border-completed: 0;
+ --bs-stepper-icon-number-color: var(--bs-primary);
+ --bs-stepper-icon-number-color-current: var(--bs-white);
+ --bs-stepper-icon-check-color-completed: var(--bs-primary);
+ --bs-stepper-label-title-opacity: 1;
+ --bs-stepper-label-title-opacity-current: 1;
+ --bs-stepper-label-title-opacity-completed: 1;
+ --bs-stepper-label-title-color: var(--bs-gray-800);
+ --bs-stepper-label-title-color-current: var(--bs-gray-600);
+ --bs-stepper-label-title-color-completed: var(--bs-text-muted);
+ --bs-stepper-label-desc-opacity: 1;
+ --bs-stepper-label-desc-opacity-current: 1;
+ --bs-stepper-label-desc-opacity-completed: 1;
+ --bs-stepper-label-desc-color: var(--bs-text-muted);
+ --bs-stepper-label-desc-color-current: var(--bs-text-400);
+ --bs-stepper-label-desc-color-completed: var(--bs-gray-400);
+ --bs-stepper-line-border: 1px dashed var(--bs-gray-300);
+}
+.stepper.stepper-pills .stepper-nav {
+ display: flex;
+}
+.stepper.stepper-pills .stepper-item {
+ display: flex;
+ align-items: center;
+ transition: color 0.2s ease;
+}
+.stepper.stepper-pills .stepper-item .stepper-icon {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+ transition: color 0.2s ease;
+ width: var(--bs-stepper-pills-size);
+ height: var(--bs-stepper-pills-size);
+ border-radius: var(--bs-stepper-icon-border-radius);
+ background-color: var(--bs-stepper-icon-bg-color);
+ border: var(--bs-stepper-icon-border);
+ margin-right: 1.5rem;
+}
+.stepper.stepper-pills .stepper-item .stepper-icon .stepper-check {
+ display: none;
+ font-size: var(--bs-stepper-icon-check-size);
+}
+.stepper.stepper-pills .stepper-item .stepper-icon .stepper-number {
+ font-weight: 600;
+ color: var(--bs-stepper-icon-number-color);
+ font-size: 1.25rem;
+}
+.stepper.stepper-pills .stepper-item .stepper-label {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+}
+.stepper.stepper-pills .stepper-item .stepper-label .stepper-title {
+ color: var(--bs-stepper-label-title-color);
+ opacity: var(--bs-stepper-label-title-opacity);
+ font-weight: 600;
+ font-size: 1.25rem;
+ margin-bottom: 0.3rem;
+}
+.stepper.stepper-pills .stepper-item .stepper-label .stepper-desc {
+ opacity: var(--bs-stepper-label-desc-opacity);
+ color: var(--bs-stepper-label-desc-color);
+}
+.stepper.stepper-pills .stepper-item.current {
+ transition: color 0.2s ease;
+}
+.stepper.stepper-pills .stepper-item.current .stepper-icon {
+ transition: color 0.2s ease;
+ background-color: var(--bs-stepper-icon-bg-color-current);
+ border: var(--bs-stepper-icon-border-current);
+}
+.stepper.stepper-pills .stepper-item.current .stepper-icon .stepper-check {
+ display: none;
+}
+.stepper.stepper-pills .stepper-item.current .stepper-icon .stepper-number {
+ color: var(--bs-stepper-icon-number-color-current);
+ font-size: 1.35rem;
+}
+.stepper.stepper-pills .stepper-item.current .stepper-label .stepper-title {
+ opacity: var(--bs-stepper-label-title-opacity-current);
+ color: var(--bs-stepper-label-title-color-current);
+}
+.stepper.stepper-pills .stepper-item.current .stepper-label .stepper-desc {
+ opacity: var(--bs-stepper-label-desc-opacity-current);
+ color: var(--bs-stepper-label-desc-color-current);
+}
+.stepper.stepper-pills .stepper-item.current.mark-completed:last-child .stepper-icon, .stepper.stepper-pills .stepper-item.completed .stepper-icon {
+ transition: color 0.2s ease;
+ background-color: var(--bs-stepper-icon-bg-color-completed);
+ border: var(--bs-stepper-icon-border-completed);
+}
+.stepper.stepper-pills .stepper-item.current.mark-completed:last-child .stepper-icon .stepper-check, .stepper.stepper-pills .stepper-item.completed .stepper-icon .stepper-check {
+ color: var(--bs-stepper-icon-check-color-completed);
+ display: inline-block;
+}
+.stepper.stepper-pills .stepper-item.current.mark-completed:last-child .stepper-icon .stepper-number, .stepper.stepper-pills .stepper-item.completed .stepper-icon .stepper-number {
+ display: none;
+}
+.stepper.stepper-pills .stepper-item.current.mark-completed:last-child .stepper-label .stepper-title, .stepper.stepper-pills .stepper-item.completed .stepper-label .stepper-title {
+ opacity: var(--bs-stepper-label-title-opacity-completed);
+ color: var(--bs-stepper-label-title-color-completed);
+}
+.stepper.stepper-pills .stepper-item.current.mark-completed:last-child .stepper-label .stepper-desc, .stepper.stepper-pills .stepper-item.completed .stepper-label .stepper-desc {
+ opacity: var(--bs-stepper-label-desc-opacity-completed);
+ color: var(--bs-stepper-label-desc-color-completed);
+}
+.stepper.stepper-pills.stepper-column .stepper-nav {
+ flex-direction: column;
+ align-items: start;
+}
+.stepper.stepper-pills.stepper-column .stepper-item {
+ flex-direction: column;
+ justify-content: start;
+ align-items: stretch;
+ padding: 0;
+ margin: 0;
+}
+.stepper.stepper-pills.stepper-column .stepper-wrapper {
+ display: flex;
+ align-items: center;
+}
+.stepper.stepper-pills.stepper-column .stepper-icon {
+ z-index: 1;
+}
+.stepper.stepper-pills.stepper-column .stepper-line {
+ display: block;
+ flex-grow: 1;
+ margin-left: calc(var(--bs-stepper-pills-size) / 2);
+ border-left: var(--bs-stepper-line-border);
+ margin-top: 2px;
+ margin-bottom: 2px;
+}
+
+.stepper.stepper-links .stepper-nav {
+ display: flex;
+ margin: 0 auto;
+ justify-content: center;
+ align-items: center;
+ flex-wrap: wrap;
+}
+.stepper.stepper-links .stepper-nav .stepper-item {
+ position: relative;
+ flex-shrink: 0;
+ margin: 1rem 1.5rem;
+}
+.stepper.stepper-links .stepper-nav .stepper-item:after {
+ content: " ";
+ position: absolute;
+ top: 2.3rem;
+ left: 0;
+ height: 2px;
+ width: 100%;
+ background-color: transparent;
+ transition: color 0.2s ease;
+}
+.stepper.stepper-links .stepper-nav .stepper-item .stepper-title {
+ color: var(--bs-dark);
+ font-weight: 600;
+ font-size: 1.25rem;
+}
+.stepper.stepper-links .stepper-nav .stepper-item.current {
+ transition: color 0.2s ease;
+}
+.stepper.stepper-links .stepper-nav .stepper-item.current .stepper-title {
+ color: var(--bs-primary);
+}
+.stepper.stepper-links .stepper-nav .stepper-item.current:after {
+ background-color: var(--bs-primary);
+}
+.stepper.stepper-links .stepper-nav .stepper-item.current.mark-completed:last-child .stepper-title, .stepper.stepper-links .stepper-nav .stepper-item.completed .stepper-title {
+ color: var(--bs-gray-400);
+}
+
+.toggle.collapsible:not(.collapsed) .toggle-off, .toggle.active .toggle-off {
+ display: none;
+}
+.toggle.collapsible.collapsed .toggle-on, .toggle:not(.collapsible):not(.active) .toggle-on {
+ display: none;
+}
+
+.xehagon {
+ clip-path: polygon(45% 1.3397459622%, 46.5797985667% 0.6030737921%, 48.2635182233% 0.1519224699%, 50% 0%, 51.7364817767% 0.1519224699%, 53.4202014333% 0.6030737921%, 55% 1.3397459622%, 89.6410161514% 21.3397459622%, 91.0688922482% 22.3395555688%, 92.3014605826% 23.5721239031%, 93.3012701892% 25%, 94.0379423592% 26.5797985667%, 94.4890936815% 28.2635182233%, 94.6410161514% 30%, 94.6410161514% 70%, 94.4890936815% 71.7364817767%, 94.0379423592% 73.4202014333%, 93.3012701892% 75%, 92.3014605826% 76.4278760969%, 91.0688922482% 77.6604444312%, 89.6410161514% 78.6602540378%, 55% 98.6602540378%, 53.4202014333% 99.3969262079%, 51.7364817767% 99.8480775301%, 50% 100%, 48.2635182233% 99.8480775301%, 46.5797985667% 99.3969262079%, 45% 98.6602540378%, 10.3589838486% 78.6602540378%, 8.9311077518% 77.6604444312%, 7.6985394174% 76.4278760969%, 6.6987298108% 75%, 5.9620576408% 73.4202014333%, 5.5109063185% 71.7364817767%, 5.3589838486% 70%, 5.3589838486% 30%, 5.5109063185% 28.2635182233%, 5.9620576408% 26.5797985667%, 6.6987298108% 25%, 7.6985394174% 23.5721239031%, 8.9311077518% 22.3395555688%, 10.3589838486% 21.3397459622%);
+}
+
+.octagon {
+ clip-path: polygon(46.1731656763% 0.7612046749%, 47.411809549% 0.3407417371%, 48.6947380778% 0.0855513863%, 50% 0%, 51.3052619222% 0.0855513863%, 52.588190451% 0.3407417371%, 53.8268343237% 0.7612046749%, 82.1111055711% 12.4769334274%, 83.2842712475% 13.0554747147%, 84.3718855375% 13.7821953496%, 85.3553390593% 14.6446609407%, 86.2178046504% 15.6281144625%, 86.9445252853% 16.7157287525%, 87.5230665726% 17.8888944289%, 99.2387953251% 46.1731656763%, 99.6592582629% 47.411809549%, 99.9144486137% 48.6947380778%, 100% 50%, 99.9144486137% 51.3052619222%, 99.6592582629% 52.588190451%, 99.2387953251% 53.8268343237%, 87.5230665726% 82.1111055711%, 86.9445252853% 83.2842712475%, 86.2178046504% 84.3718855375%, 85.3553390593% 85.3553390593%, 84.3718855375% 86.2178046504%, 83.2842712475% 86.9445252853%, 82.1111055711% 87.5230665726%, 53.8268343237% 99.2387953251%, 52.588190451% 99.6592582629%, 51.3052619222% 99.9144486137%, 50% 100%, 48.6947380778% 99.9144486137%, 47.411809549% 99.6592582629%, 46.1731656763% 99.2387953251%, 17.8888944289% 87.5230665726%, 16.7157287525% 86.9445252853%, 15.6281144625% 86.2178046504%, 14.6446609407% 85.3553390593%, 13.7821953496% 84.3718855375%, 13.0554747147% 83.2842712475%, 12.4769334274% 82.1111055711%, 0.7612046749% 53.8268343237%, 0.3407417371% 52.588190451%, 0.0855513863% 51.3052619222%, 0% 50%, 0.0855513863% 48.6947380778%, 0.3407417371% 47.411809549%, 0.7612046749% 46.1731656763%, 12.4769334274% 17.8888944289%, 13.0554747147% 16.7157287525%, 13.7821953496% 15.6281144625%, 14.6446609407% 14.6446609407%, 15.6281144625% 13.7821953496%, 16.7157287525% 13.0554747147%, 17.8888944289% 12.4769334274%);
+}
+
+.ribbon {
+ position: relative;
+}
+.ribbon .ribbon-label {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 5px 10px;
+ position: absolute;
+ z-index: 1;
+ background-color: var(--bs-ribbon-label-bg);
+ box-shadow: var(--bs-ribbon-label-box-shadow);
+ color: var(--bs-primary-inverse);
+ top: 50%;
+ right: 0;
+ transform: translateX(5px) translateY(-50%);
+}
+.ribbon .ribbon-label > .ribbon-inner {
+ z-index: -1;
+ position: absolute;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+}
+.ribbon .ribbon-label:after {
+ border-color: var(--bs-ribbon-label-border-color);
+}
+.ribbon-vertical .ribbon-label {
+ padding: 5px 10px;
+ min-width: 36px;
+ min-height: 46px;
+ text-align: center;
+}
+.ribbon.ribbon-top .ribbon-label {
+ top: 0;
+ transform: translateX(-15px) translateY(-4px);
+ border-bottom-right-radius: 0.475rem;
+ border-bottom-left-radius: 0.475rem;
+}
+.ribbon.ribbon-bottom .ribbon-label {
+ border-top-right-radius: 0.475rem;
+ border-top-left-radius: 0.475rem;
+}
+.ribbon.ribbon-start .ribbon-label {
+ top: 50%;
+ left: 0;
+ right: auto;
+ transform: translateX(-5px) translateY(-50%);
+ border-top-right-radius: 0.475rem;
+ border-bottom-right-radius: 0.475rem;
+}
+.ribbon.ribbon-end .ribbon-label {
+ border-top-left-radius: 0.475rem;
+ border-bottom-left-radius: 0.475rem;
+}
+
+.ribbon.ribbon-clip.ribbon-start .ribbon-label {
+ left: -5px;
+}
+.ribbon.ribbon-clip.ribbon-start .ribbon-label .ribbon-inner {
+ border-top-right-radius: 0.475rem;
+ border-bottom-right-radius: 0.475rem;
+}
+.ribbon.ribbon-clip.ribbon-start .ribbon-label .ribbon-inner:before, .ribbon.ribbon-clip.ribbon-start .ribbon-label .ribbon-inner:after {
+ content: "";
+ position: absolute;
+ border-style: solid;
+ border-color: transparent !important;
+ bottom: -10px;
+}
+.ribbon.ribbon-clip.ribbon-start .ribbon-label .ribbon-inner:before {
+ border-width: 0 10px 10px 0;
+ border-right-color: var(--bs-ribbon-clip-bg) !important;
+ left: 0;
+}
+.ribbon.ribbon-clip.ribbon-end .ribbon-label {
+ right: -5px;
+}
+.ribbon.ribbon-clip.ribbon-end .ribbon-label .ribbon-inner {
+ border-top-left-radius: 0.475rem;
+ border-bottom-left-radius: 0.475rem;
+}
+.ribbon.ribbon-clip.ribbon-end .ribbon-label .ribbon-inner:before, .ribbon.ribbon-clip.ribbon-end .ribbon-label .ribbon-inner:after {
+ content: "";
+ position: absolute;
+ border-style: solid;
+ border-color: transparent !important;
+ bottom: -10px;
+}
+.ribbon.ribbon-clip.ribbon-end .ribbon-label .ribbon-inner:before {
+ border-width: 0 0 10px 10px;
+ border-left-color: var(--bs-ribbon-clip-bg) !important;
+ right: 0;
+}
+
+.ribbon.ribbon-triangle {
+ position: absolute;
+ z-index: 1;
+ display: flex;
+ align-items: flex-start;
+ justify-content: flex-start;
+}
+.ribbon.ribbon-triangle.ribbon-top-start {
+ top: 0;
+ left: 0;
+ width: 4rem;
+ height: 4rem;
+ border-bottom: solid 2rem transparent !important;
+ border-left: solid 2rem transparent;
+ border-right: solid 2rem transparent !important;
+ border-top: solid 2rem transparent;
+}
+.ribbon.ribbon-triangle.ribbon-top-end {
+ top: 0;
+ right: 0;
+ width: 4rem;
+ height: 4rem;
+ border-bottom: solid 2rem transparent !important;
+ border-left: solid 2rem transparent !important;
+ border-right: solid 2rem transparent;
+ border-top: solid 2rem transparent;
+}
+.ribbon.ribbon-triangle.ribbon-bottom-start {
+ bottom: 0;
+ left: 0;
+ width: 4rem;
+ height: 4rem;
+ border-bottom: solid 2rem transparent;
+ border-left: solid 2rem transparent;
+ border-right: solid 2rem transparent !important;
+ border-top: solid 2rem transparent !important;
+}
+.ribbon.ribbon-triangle.ribbon-bottom-end {
+ bottom: 0;
+ right: 0;
+ width: 4rem;
+ height: 4rem;
+ border-bottom: solid 2rem transparent;
+ border-right: solid 2rem transparent;
+ border-left: solid 2rem transparent !important;
+ border-top: solid 2rem transparent !important;
+}
+
+.blockui {
+ position: relative;
+}
+.blockui .blockui-overlay {
+ transition: all 0.3s ease;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: var(--bs-blockui-overlay-bg);
+}
+.blockui .blockui-overlay .spinner-border {
+ height: 1.35rem;
+ width: 1.35rem;
+}
+.blockui .blockui-message {
+ display: flex;
+ align-items: center;
+ border-radius: 0.475rem;
+ box-shadow: var(--bs-blockui-message-box-shadow);
+ background-color: var(--bs-blockui-message-bg);
+ color: var(--bs-gray-700);
+ font-weight: 600;
+ margin: 0 !important;
+ width: auto;
+ padding: 0.85rem 1.75rem !important;
+}
+.blockui .blockui-message .spinner-border {
+ margin-right: 0.65rem;
+}
+
+[data-bs-theme=dark] .blockui {
+ --bs-blockui-overlay-bg: rgba(255, 255, 255, 0.05);
+ --bs-blockui-message-bg: #2B2B40;
+ --bs-blockui-message-box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.15);
+}
+
+.explore-btn-toggle {
+ color: var(--bs-gray-600);
+ background-color: #ffffff;
+}
+.explore-btn-toggle:hover, .explore-btn-toggle:focus, .explore-btn-toggle:active {
+ color: #ffffff;
+ background-color: #00B2FF;
+}
+
+.explore-btn-dismiss {
+ border: 0;
+}
+.explore-btn-dismiss:hover i,
+.explore-btn-dismiss:hover .svg-icon {
+ color: #00B2FF;
+}
+
+.explore-btn-primary {
+ border: 0;
+ color: #ffffff;
+ background-color: #00B2FF;
+}
+.explore-btn-primary:hover {
+ color: #ffffff;
+ background-color: #0098DA;
+}
+
+.explore-btn-secondary {
+ border: 0;
+ color: var(--bs-gray-600);
+ background-color: var(--bs-gray-100);
+}
+.explore-btn-secondary:hover {
+ color: var(--bs-gray-800);
+ background-color: var(--bs-gray-200);
+}
+
+.explore-btn-outline {
+ border: 1px dashed var(--bs-gray-300) !important;
+}
+.explore-btn-outline:hover, .explore-btn-outline.active {
+ border: 1px dashed #50CD89 !important;
+ background-color: #E8FFF3;
+}
+
+.explore-link {
+ color: #00B2FF;
+}
+.explore-link:hover {
+ color: #0098DA;
+}
+
+.explore-link-hover:hover {
+ color: #00B2FF !important;
+}
+
+.explore-icon-success {
+ color: #50CD89;
+}
+
+.explore-icon-danger {
+ color: #F1416C;
+}
+
+.explore-label-free {
+ color: #ffffff;
+ background-color: #FFC700;
+}
+
+.explore-label-pro {
+ color: #ffffff;
+ background-color: #50CD89;
+}
+
+.app-engage {
+ position: fixed;
+ right: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ display: flex;
+ flex-direction: column;
+ align-items: end;
+ z-index: 5;
+ padding-right: 12px;
+}
+.app-engage .app-engage-btn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ box-shadow: var(--bs-engage-btn-box-shadow);
+ border-width: 1px;
+ border-style: solid;
+ font-size: 12px;
+ font-weight: 600;
+ margin-bottom: 8px;
+ border-radius: 6px;
+ width: 66px;
+ height: 70px;
+ color: var(--bs-engage-btn-color);
+ border-color: var(--bs-engage-btn-border-color);
+ background-color: var(--bs-engage-btn-bg);
+}
+.app-engage .app-engage-btn i,
+.app-engage .app-engage-btn .svg-icon {
+ color: var(--bs-engage-btn-icon-color);
+}
+.app-engage .app-engage-btn.dropdown-toggle:after {
+ color: var(--bs-engage-btn-icon-color);
+}
+.app-engage .app-engage-btn.hover-dark:hover {
+ color: var(--bs-dark-inverse);
+ border-color: var(--bs-dark);
+ background-color: var(--bs-dark);
+}
+.app-engage .app-engage-btn.hover-dark:hover i,
+.app-engage .app-engage-btn.hover-dark:hover .svg-icon {
+ color: var(--bs-dark-inverse);
+}
+.app-engage .app-engage-btn.hover-primary:hover {
+ color: var(--bs-primary-inverse);
+ border-color: var(--bs-primary);
+ background-color: var(--bs-primary);
+}
+.app-engage .app-engage-btn.hover-primary:hover i,
+.app-engage .app-engage-btn.hover-primary:hover .svg-icon {
+ color: var(--bs-primary-inverse);
+}
+.app-engage .app-engage-btn.hover-success:hover {
+ color: var(--bs-success-inverse);
+ border-color: var(--bs-success);
+ background-color: var(--bs-success);
+}
+.app-engage .app-engage-btn.hover-success:hover i,
+.app-engage .app-engage-btn.hover-success:hover .svg-icon {
+ color: var(--bs-success-inverse);
+}
+.app-engage .app-engage-btn.app-engage-btn-toggle-off {
+ width: 35px;
+ height: 35px;
+}
+.app-engage .app-engage-btn.app-engage-btn-toggle-on {
+ width: 35px;
+ height: 35px;
+ display: none;
+}
+.app-engage.app-engage-hide .app-engage-btn {
+ visibility: hidden;
+}
+.app-engage.app-engage-hide .app-engage-btn.app-engage-btn-toggle-off {
+ display: none;
+}
+.app-engage.app-engage-hide .app-engage-btn.app-engage-btn-toggle-on {
+ visibility: visible;
+ display: flex;
+}
+
+.engage-btn {
+ display: flex;
+ align-items: center;
+ height: 35px !important;
+ color: var(--bs-engage-btn-color);
+ border-color: var(--bs-engage-btn-bg);
+ background-color: var(--bs-engage-btn-bg);
+}
+.engage-btn i,
+.engage-btn .svg-icon {
+ color: var(--bs-engage-btn-color);
+}
+.engage-btn.dropdown-toggle:after {
+ color: var(--bs-engage-btn-color);
+}
+.btn-check:checked + .engage-btn, .btn-check:active + .engage-btn, .engage-btn:focus:not(.btn-active), .engage-btn:hover:not(.btn-active), .engage-btn:active:not(.btn-active), .engage-btn.active, .engage-btn.show, .show > .engage-btn {
+ color: var(--bs-engage-btn-color-active);
+ border-color: var(--bs-engage-btn-bg);
+ background-color: var(--bs-engage-btn-bg) !important;
+}
+.btn-check:checked + .engage-btn i,
+.btn-check:checked + .engage-btn .svg-icon, .btn-check:active + .engage-btn i,
+.btn-check:active + .engage-btn .svg-icon, .engage-btn:focus:not(.btn-active) i,
+.engage-btn:focus:not(.btn-active) .svg-icon, .engage-btn:hover:not(.btn-active) i,
+.engage-btn:hover:not(.btn-active) .svg-icon, .engage-btn:active:not(.btn-active) i,
+.engage-btn:active:not(.btn-active) .svg-icon, .engage-btn.active i,
+.engage-btn.active .svg-icon, .engage-btn.show i,
+.engage-btn.show .svg-icon, .show > .engage-btn i,
+.show > .engage-btn .svg-icon {
+ color: var(--bs-engage-btn-color-active);
+}
+.btn-check:checked + .engage-btn.dropdown-toggle:after, .btn-check:active + .engage-btn.dropdown-toggle:after, .engage-btn:focus:not(.btn-active).dropdown-toggle:after, .engage-btn:hover:not(.btn-active).dropdown-toggle:after, .engage-btn:active:not(.btn-active).dropdown-toggle:after, .engage-btn.active.dropdown-toggle:after, .engage-btn.show.dropdown-toggle:after, .show > .engage-btn.dropdown-toggle:after {
+ color: var(--bs-engage-btn-color-active);
+}
+
+.cookiealert {
+ background: inherit;
+ color: inherit;
+}
+
+@media print {
+ .print-content-only {
+ padding: 0 !important;
+ background: none !important;
+ }
+ .print-content-only .wrapper,
+.print-content-only .page,
+.print-content-only .page-title .content,
+.print-content-only .container,
+.print-content-only .container-xxl,
+.print-content-only .container-fluid,
+.print-content-only .container-sm,
+.print-content-only .container-md,
+.print-content-only .container-lg,
+.print-content-only .container-xl {
+ background: none !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ }
+ .print-content-only .aside,
+.print-content-only .sidebar,
+.print-content-only .scrolltop,
+.print-content-only .header,
+.print-content-only .footer,
+.print-content-only .toolbar,
+.print-content-only .drawer,
+.print-content-only .btn {
+ display: none !important;
+ }
+}
+.bg-white {
+ --bs-bg-rgb-color: var(--bs-white-bg-rgb);
+ background-color: #000000 !important;
+}
+
+.bg-black {
+ --bs-bg-rgb-color: var(--bs-black-bg-rgb);
+ background-color: #000000 !important;
+}
+
+.bg-body {
+ --bs-bg-rgb-color: var(--bs-body-bg-rgb);
+ background-color: var(--bs-body-bg) !important;
+}
+
+.bg-hover-body {
+ cursor: pointer;
+}
+.bg-hover-body:hover {
+ background-color: var(--bs-body-bg) !important;
+}
+
+.bg-active-body.active {
+ background-color: var(--bs-body-bg) !important;
+}
+
+.bg-state-body {
+ cursor: pointer;
+}
+.bg-state-body.active, .bg-state-body:hover {
+ background-color: var(--bs-body-bg) !important;
+}
+
+.bg-white {
+ --bs-bg-rgb-color: var(--bs-white-rgb);
+ background-color: var(--bs-white) !important;
+}
+
+.bg-white-active {
+ --bs-bg-rgb-color: var(--bs-white-active-rgb);
+ background-color: var(--bs-white-active) !important;
+}
+
+.bg-hover-white {
+ cursor: pointer;
+}
+.bg-hover-white:hover {
+ background-color: var(--bs-white) !important;
+}
+
+.bg-active-white.active {
+ background-color: var(--bs-white) !important;
+}
+
+.bg-state-white {
+ cursor: pointer;
+}
+.bg-state-white.active, .bg-state-white:hover {
+ background-color: var(--bs-white) !important;
+}
+
+.bg-light {
+ --bs-bg-rgb-color: var(--bs-light-rgb);
+ background-color: var(--bs-light) !important;
+}
+
+.bg-light-active {
+ --bs-bg-rgb-color: var(--bs-light-active-rgb);
+ background-color: var(--bs-light-active) !important;
+}
+
+.bg-hover-light {
+ cursor: pointer;
+}
+.bg-hover-light:hover {
+ background-color: var(--bs-light) !important;
+}
+
+.bg-active-light.active {
+ background-color: var(--bs-light) !important;
+}
+
+.bg-state-light {
+ cursor: pointer;
+}
+.bg-state-light.active, .bg-state-light:hover {
+ background-color: var(--bs-light) !important;
+}
+
+.bg-light-primary {
+ background-color: var(--bs-primary-light) !important;
+}
+
+.bg-primary {
+ --bs-bg-rgb-color: var(--bs-primary-rgb);
+ background-color: var(--bs-primary) !important;
+}
+
+.bg-primary-active {
+ --bs-bg-rgb-color: var(--bs-primary-active-rgb);
+ background-color: var(--bs-primary-active) !important;
+}
+
+.bg-hover-light-primary {
+ cursor: pointer;
+}
+.bg-hover-light-primary:hover {
+ background-color: var(--bs-primary-light) !important;
+}
+
+.bg-state-light-primary {
+ cursor: pointer;
+}
+.bg-state-light-primary.active, .bg-state-light-primary:hover {
+ background-color: var(--bs-primary-light) !important;
+}
+
+.bg-hover-primary {
+ cursor: pointer;
+}
+.bg-hover-primary:hover {
+ background-color: var(--bs-primary) !important;
+}
+
+.bg-active-primary.active {
+ background-color: var(--bs-primary) !important;
+}
+
+.bg-state-primary {
+ cursor: pointer;
+}
+.bg-state-primary.active, .bg-state-primary:hover {
+ background-color: var(--bs-primary) !important;
+}
+
+.bg-light-secondary {
+ background-color: var(--bs-secondary-light) !important;
+}
+
+.bg-secondary {
+ --bs-bg-rgb-color: var(--bs-secondary-rgb);
+ background-color: var(--bs-secondary) !important;
+}
+
+.bg-secondary-active {
+ --bs-bg-rgb-color: var(--bs-secondary-active-rgb);
+ background-color: var(--bs-secondary-active) !important;
+}
+
+.bg-hover-light-secondary {
+ cursor: pointer;
+}
+.bg-hover-light-secondary:hover {
+ background-color: var(--bs-secondary-light) !important;
+}
+
+.bg-state-light-secondary {
+ cursor: pointer;
+}
+.bg-state-light-secondary.active, .bg-state-light-secondary:hover {
+ background-color: var(--bs-secondary-light) !important;
+}
+
+.bg-hover-secondary {
+ cursor: pointer;
+}
+.bg-hover-secondary:hover {
+ background-color: var(--bs-secondary) !important;
+}
+
+.bg-active-secondary.active {
+ background-color: var(--bs-secondary) !important;
+}
+
+.bg-state-secondary {
+ cursor: pointer;
+}
+.bg-state-secondary.active, .bg-state-secondary:hover {
+ background-color: var(--bs-secondary) !important;
+}
+
+.bg-light-success {
+ background-color: var(--bs-success-light) !important;
+}
+
+.bg-success {
+ --bs-bg-rgb-color: var(--bs-success-rgb);
+ background-color: var(--bs-success) !important;
+}
+
+.bg-success-active {
+ --bs-bg-rgb-color: var(--bs-success-active-rgb);
+ background-color: var(--bs-success-active) !important;
+}
+
+.bg-hover-light-success {
+ cursor: pointer;
+}
+.bg-hover-light-success:hover {
+ background-color: var(--bs-success-light) !important;
+}
+
+.bg-state-light-success {
+ cursor: pointer;
+}
+.bg-state-light-success.active, .bg-state-light-success:hover {
+ background-color: var(--bs-success-light) !important;
+}
+
+.bg-hover-success {
+ cursor: pointer;
+}
+.bg-hover-success:hover {
+ background-color: var(--bs-success) !important;
+}
+
+.bg-active-success.active {
+ background-color: var(--bs-success) !important;
+}
+
+.bg-state-success {
+ cursor: pointer;
+}
+.bg-state-success.active, .bg-state-success:hover {
+ background-color: var(--bs-success) !important;
+}
+
+.bg-light-info {
+ background-color: var(--bs-info-light) !important;
+}
+
+.bg-info {
+ --bs-bg-rgb-color: var(--bs-info-rgb);
+ background-color: var(--bs-info) !important;
+}
+
+.bg-info-active {
+ --bs-bg-rgb-color: var(--bs-info-active-rgb);
+ background-color: var(--bs-info-active) !important;
+}
+
+.bg-hover-light-info {
+ cursor: pointer;
+}
+.bg-hover-light-info:hover {
+ background-color: var(--bs-info-light) !important;
+}
+
+.bg-state-light-info {
+ cursor: pointer;
+}
+.bg-state-light-info.active, .bg-state-light-info:hover {
+ background-color: var(--bs-info-light) !important;
+}
+
+.bg-hover-info {
+ cursor: pointer;
+}
+.bg-hover-info:hover {
+ background-color: var(--bs-info) !important;
+}
+
+.bg-active-info.active {
+ background-color: var(--bs-info) !important;
+}
+
+.bg-state-info {
+ cursor: pointer;
+}
+.bg-state-info.active, .bg-state-info:hover {
+ background-color: var(--bs-info) !important;
+}
+
+.bg-light-warning {
+ background-color: var(--bs-warning-light) !important;
+}
+
+.bg-warning {
+ --bs-bg-rgb-color: var(--bs-warning-rgb);
+ background-color: var(--bs-warning) !important;
+}
+
+.bg-warning-active {
+ --bs-bg-rgb-color: var(--bs-warning-active-rgb);
+ background-color: var(--bs-warning-active) !important;
+}
+
+.bg-hover-light-warning {
+ cursor: pointer;
+}
+.bg-hover-light-warning:hover {
+ background-color: var(--bs-warning-light) !important;
+}
+
+.bg-state-light-warning {
+ cursor: pointer;
+}
+.bg-state-light-warning.active, .bg-state-light-warning:hover {
+ background-color: var(--bs-warning-light) !important;
+}
+
+.bg-hover-warning {
+ cursor: pointer;
+}
+.bg-hover-warning:hover {
+ background-color: var(--bs-warning) !important;
+}
+
+.bg-active-warning.active {
+ background-color: var(--bs-warning) !important;
+}
+
+.bg-state-warning {
+ cursor: pointer;
+}
+.bg-state-warning.active, .bg-state-warning:hover {
+ background-color: var(--bs-warning) !important;
+}
+
+.bg-light-danger {
+ background-color: var(--bs-danger-light) !important;
+}
+
+.bg-danger {
+ --bs-bg-rgb-color: var(--bs-danger-rgb);
+ background-color: var(--bs-danger) !important;
+}
+
+.bg-danger-active {
+ --bs-bg-rgb-color: var(--bs-danger-active-rgb);
+ background-color: var(--bs-danger-active) !important;
+}
+
+.bg-hover-light-danger {
+ cursor: pointer;
+}
+.bg-hover-light-danger:hover {
+ background-color: var(--bs-danger-light) !important;
+}
+
+.bg-state-light-danger {
+ cursor: pointer;
+}
+.bg-state-light-danger.active, .bg-state-light-danger:hover {
+ background-color: var(--bs-danger-light) !important;
+}
+
+.bg-hover-danger {
+ cursor: pointer;
+}
+.bg-hover-danger:hover {
+ background-color: var(--bs-danger) !important;
+}
+
+.bg-active-danger.active {
+ background-color: var(--bs-danger) !important;
+}
+
+.bg-state-danger {
+ cursor: pointer;
+}
+.bg-state-danger.active, .bg-state-danger:hover {
+ background-color: var(--bs-danger) !important;
+}
+
+.bg-light-dark {
+ background-color: var(--bs-dark-light) !important;
+}
+
+.bg-dark {
+ --bs-bg-rgb-color: var(--bs-dark-rgb);
+ background-color: var(--bs-dark) !important;
+}
+
+.bg-dark-active {
+ --bs-bg-rgb-color: var(--bs-dark-active-rgb);
+ background-color: var(--bs-dark-active) !important;
+}
+
+.bg-hover-light-dark {
+ cursor: pointer;
+}
+.bg-hover-light-dark:hover {
+ background-color: var(--bs-dark-light) !important;
+}
+
+.bg-state-light-dark {
+ cursor: pointer;
+}
+.bg-state-light-dark.active, .bg-state-light-dark:hover {
+ background-color: var(--bs-dark-light) !important;
+}
+
+.bg-hover-dark {
+ cursor: pointer;
+}
+.bg-hover-dark:hover {
+ background-color: var(--bs-dark) !important;
+}
+
+.bg-active-dark.active {
+ background-color: var(--bs-dark) !important;
+}
+
+.bg-state-dark {
+ cursor: pointer;
+}
+.bg-state-dark.active, .bg-state-dark:hover {
+ background-color: var(--bs-dark) !important;
+}
+
+.bg-gray-100 {
+ --bs-bg-rgb-color: var(--bs-gray-100-rgb);
+ background-color: var(--bs-gray-100);
+}
+
+.bg-gray-100i {
+ --bs-bg-rgb-color: var(--bs-gray-100-rgb);
+ background-color: var(--bs-gray-100) !important;
+}
+
+.bg-gray-200 {
+ --bs-bg-rgb-color: var(--bs-gray-200-rgb);
+ background-color: var(--bs-gray-200);
+}
+
+.bg-gray-200i {
+ --bs-bg-rgb-color: var(--bs-gray-200-rgb);
+ background-color: var(--bs-gray-200) !important;
+}
+
+.bg-gray-300 {
+ --bs-bg-rgb-color: var(--bs-gray-300-rgb);
+ background-color: var(--bs-gray-300);
+}
+
+.bg-gray-300i {
+ --bs-bg-rgb-color: var(--bs-gray-300-rgb);
+ background-color: var(--bs-gray-300) !important;
+}
+
+.bg-gray-400 {
+ --bs-bg-rgb-color: var(--bs-gray-400-rgb);
+ background-color: var(--bs-gray-400);
+}
+
+.bg-gray-400i {
+ --bs-bg-rgb-color: var(--bs-gray-400-rgb);
+ background-color: var(--bs-gray-400) !important;
+}
+
+.bg-gray-500 {
+ --bs-bg-rgb-color: var(--bs-gray-500-rgb);
+ background-color: var(--bs-gray-500);
+}
+
+.bg-gray-500i {
+ --bs-bg-rgb-color: var(--bs-gray-500-rgb);
+ background-color: var(--bs-gray-500) !important;
+}
+
+.bg-gray-600 {
+ --bs-bg-rgb-color: var(--bs-gray-600-rgb);
+ background-color: var(--bs-gray-600);
+}
+
+.bg-gray-600i {
+ --bs-bg-rgb-color: var(--bs-gray-600-rgb);
+ background-color: var(--bs-gray-600) !important;
+}
+
+.bg-gray-700 {
+ --bs-bg-rgb-color: var(--bs-gray-700-rgb);
+ background-color: var(--bs-gray-700);
+}
+
+.bg-gray-700i {
+ --bs-bg-rgb-color: var(--bs-gray-700-rgb);
+ background-color: var(--bs-gray-700) !important;
+}
+
+.bg-gray-800 {
+ --bs-bg-rgb-color: var(--bs-gray-800-rgb);
+ background-color: var(--bs-gray-800);
+}
+
+.bg-gray-800i {
+ --bs-bg-rgb-color: var(--bs-gray-800-rgb);
+ background-color: var(--bs-gray-800) !important;
+}
+
+.bg-gray-900 {
+ --bs-bg-rgb-color: var(--bs-gray-900-rgb);
+ background-color: var(--bs-gray-900);
+}
+
+.bg-gray-900i {
+ --bs-bg-rgb-color: var(--bs-gray-900-rgb);
+ background-color: var(--bs-gray-900) !important;
+}
+
+.bg-opacity-0 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0) !important;
+}
+
+.bg-hover-opacity-0:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0) !important;
+}
+
+.bg-active-opacity-0.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0) !important;
+}
+
+.bg-state-opacity-0 .active, .bg-state-opacity-0:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0) !important;
+}
+
+.bg-opacity-5 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.05) !important;
+}
+
+.bg-hover-opacity-5:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.05) !important;
+}
+
+.bg-active-opacity-5.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.05) !important;
+}
+
+.bg-state-opacity-5 .active, .bg-state-opacity-5:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.05) !important;
+}
+
+.bg-opacity-10 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.1) !important;
+}
+
+.bg-hover-opacity-10:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.1) !important;
+}
+
+.bg-active-opacity-10.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.1) !important;
+}
+
+.bg-state-opacity-10 .active, .bg-state-opacity-10:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.1) !important;
+}
+
+.bg-opacity-15 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.15) !important;
+}
+
+.bg-hover-opacity-15:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.15) !important;
+}
+
+.bg-active-opacity-15.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.15) !important;
+}
+
+.bg-state-opacity-15 .active, .bg-state-opacity-15:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.15) !important;
+}
+
+.bg-opacity-20 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.2) !important;
+}
+
+.bg-hover-opacity-20:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.2) !important;
+}
+
+.bg-active-opacity-20.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.2) !important;
+}
+
+.bg-state-opacity-20 .active, .bg-state-opacity-20:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.2) !important;
+}
+
+.bg-opacity-25 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.25) !important;
+}
+
+.bg-hover-opacity-25:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.25) !important;
+}
+
+.bg-active-opacity-25.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.25) !important;
+}
+
+.bg-state-opacity-25 .active, .bg-state-opacity-25:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.25) !important;
+}
+
+.bg-opacity-50 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.5) !important;
+}
+
+.bg-hover-opacity-50:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.5) !important;
+}
+
+.bg-active-opacity-50.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.5) !important;
+}
+
+.bg-state-opacity-50 .active, .bg-state-opacity-50:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.5) !important;
+}
+
+.bg-opacity-75 {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.75) !important;
+}
+
+.bg-hover-opacity-75:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.75) !important;
+}
+
+.bg-active-opacity-75.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.75) !important;
+}
+
+.bg-state-opacity-75 .active, .bg-state-opacity-75:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 0.75) !important;
+}
+
+.bg-opacity-100 {
+ background-color: rgba(var(--bs-bg-rgb-color), 1) !important;
+}
+
+.bg-hover-opacity-100:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 1) !important;
+}
+
+.bg-active-opacity-100.active {
+ background-color: rgba(var(--bs-bg-rgb-color), 1) !important;
+}
+
+.bg-state-opacity-100 .active, .bg-state-opacity-100:hover {
+ background-color: rgba(var(--bs-bg-rgb-color), 1) !important;
+}
+
+.bgi-no-repeat {
+ background-repeat: no-repeat;
+}
+
+.bgi-position-y-top {
+ background-position-y: top;
+}
+
+.bgi-position-y-bottom {
+ background-position-y: bottom;
+}
+
+.bgi-position-y-center {
+ background-position-y: center;
+}
+
+.bgi-position-x-start {
+ background-position-x: left;
+}
+
+.bgi-position-x-end {
+ background-position-x: right;
+}
+
+.bgi-position-x-center {
+ background-position-x: center;
+}
+
+.bgi-position-top {
+ background-position: 0 top;
+}
+
+.bgi-position-bottom {
+ background-position: 0 bottom;
+}
+
+.bgi-position-center {
+ background-position: center;
+}
+
+.bgi-size-auto {
+ background-size: auto;
+}
+
+.bgi-size-cover {
+ background-size: cover;
+}
+
+.bgi-size-contain {
+ background-size: contain;
+}
+
+.bgi-attachment-fixed {
+ background-attachment: fixed;
+}
+
+.bgi-attachment-scroll {
+ background-attachment: scroll;
+}
+
+@media (min-width: 576px) {
+ .bgi-size-sm-auto {
+ background-size: auto;
+ }
+ .bgi-size-sm-cover {
+ background-size: cover;
+ }
+ .bgi-size-sm-contain {
+ background-size: contain;
+ }
+ .bgi-attachment-sm-fixed {
+ background-attachment: fixed;
+ }
+ .bgi-attachment-sm-scroll {
+ background-attachment: scroll;
+ }
+}
+@media (min-width: 768px) {
+ .bgi-size-md-auto {
+ background-size: auto;
+ }
+ .bgi-size-md-cover {
+ background-size: cover;
+ }
+ .bgi-size-md-contain {
+ background-size: contain;
+ }
+ .bgi-attachment-md-fixed {
+ background-attachment: fixed;
+ }
+ .bgi-attachment-md-scroll {
+ background-attachment: scroll;
+ }
+}
+@media (min-width: 992px) {
+ .bgi-size-lg-auto {
+ background-size: auto;
+ }
+ .bgi-size-lg-cover {
+ background-size: cover;
+ }
+ .bgi-size-lg-contain {
+ background-size: contain;
+ }
+ .bgi-attachment-lg-fixed {
+ background-attachment: fixed;
+ }
+ .bgi-attachment-lg-scroll {
+ background-attachment: scroll;
+ }
+}
+@media (min-width: 1200px) {
+ .bgi-size-xl-auto {
+ background-size: auto;
+ }
+ .bgi-size-xl-cover {
+ background-size: cover;
+ }
+ .bgi-size-xl-contain {
+ background-size: contain;
+ }
+ .bgi-attachment-xl-fixed {
+ background-attachment: fixed;
+ }
+ .bgi-attachment-xl-scroll {
+ background-attachment: scroll;
+ }
+}
+@media (min-width: 1400px) {
+ .bgi-size-xxl-auto {
+ background-size: auto;
+ }
+ .bgi-size-xxl-cover {
+ background-size: cover;
+ }
+ .bgi-size-xxl-contain {
+ background-size: contain;
+ }
+ .bgi-attachment-xxl-fixed {
+ background-attachment: fixed;
+ }
+ .bgi-attachment-xxl-scroll {
+ background-attachment: scroll;
+ }
+}
+.border-active:not(.active):not(:active):not(:hover):not(:focus) {
+ border-color: transparent !important;
+}
+
+.border-hover:not(:hover):not(:focus):not(.active):not(:active) {
+ cursor: pointer;
+ border-color: transparent !important;
+}
+
+.border-gray-100 {
+ border-color: var(--bs-gray-100) !important;
+}
+
+.border-gray-200 {
+ border-color: var(--bs-gray-200) !important;
+}
+
+.border-gray-300 {
+ border-color: var(--bs-gray-300) !important;
+}
+
+.border-gray-400 {
+ border-color: var(--bs-gray-400) !important;
+}
+
+.border-gray-500 {
+ border-color: var(--bs-gray-500) !important;
+}
+
+.border-gray-600 {
+ border-color: var(--bs-gray-600) !important;
+}
+
+.border-gray-700 {
+ border-color: var(--bs-gray-700) !important;
+}
+
+.border-gray-800 {
+ border-color: var(--bs-gray-800) !important;
+}
+
+.border-gray-900 {
+ border-color: var(--bs-gray-900) !important;
+}
+
+.border-hover-white:hover {
+ border-color: var(--bs-white) !important;
+}
+
+.border-active-white.active {
+ border-color: var(--bs-white) !important;
+}
+
+.border-hover-light:hover {
+ border-color: var(--bs-light) !important;
+}
+
+.border-active-light.active {
+ border-color: var(--bs-light) !important;
+}
+
+.border-hover-primary:hover {
+ border-color: var(--bs-primary) !important;
+}
+
+.border-active-primary.active {
+ border-color: var(--bs-primary) !important;
+}
+
+.border-hover-secondary:hover {
+ border-color: var(--bs-secondary) !important;
+}
+
+.border-active-secondary.active {
+ border-color: var(--bs-secondary) !important;
+}
+
+.border-hover-success:hover {
+ border-color: var(--bs-success) !important;
+}
+
+.border-active-success.active {
+ border-color: var(--bs-success) !important;
+}
+
+.border-hover-info:hover {
+ border-color: var(--bs-info) !important;
+}
+
+.border-active-info.active {
+ border-color: var(--bs-info) !important;
+}
+
+.border-hover-warning:hover {
+ border-color: var(--bs-warning) !important;
+}
+
+.border-active-warning.active {
+ border-color: var(--bs-warning) !important;
+}
+
+.border-hover-danger:hover {
+ border-color: var(--bs-danger) !important;
+}
+
+.border-active-danger.active {
+ border-color: var(--bs-danger) !important;
+}
+
+.border-hover-dark:hover {
+ border-color: var(--bs-dark) !important;
+}
+
+.border-active-dark.active {
+ border-color: var(--bs-dark) !important;
+}
+
+.border-hover-transparent:hover {
+ border-color: transparent !important;
+}
+
+.border-dashed {
+ border-style: dashed !important;
+ border-color: var(--bs-border-dashed-color);
+}
+
+.border-top-dashed {
+ border-top-style: dashed !important;
+}
+
+.border-bottom-dashed {
+ border-bottom-style: dashed !important;
+}
+
+.border-start-dashed {
+ border-left-style: dashed !important;
+}
+
+.border-end-dashed {
+ border-right-style: dashed !important;
+}
+
+.border-dotted {
+ border-style: dotted !important;
+}
+
+.border-top-dotted {
+ border-top-style: dotted !important;
+}
+
+.border-bottom-dotted {
+ border-bottom-style: dotted !important;
+}
+
+.border-start-dotted {
+ border-left-style: dotted !important;
+}
+
+.border-end-dotted {
+ border-right-style: dotted !important;
+}
+
+.border-transparent {
+ border-color: transparent !important;
+}
+
+.border-body {
+ border-color: var(--bs-body-bg) !important;
+}
+
+.rounded-top-0 {
+ border-top-left-radius: 0 !important;
+ border-top-right-radius: 0 !important;
+}
+
+.rounded-bottom-0 {
+ border-bottom-left-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+.rounded-start-0 {
+ border-top-left-radius: 0 !important;
+ border-bottom-left-radius: 0 !important;
+}
+
+.rounded-end-0 {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.flex-root {
+ flex: 1;
+}
+
+.flex-column-auto {
+ flex: none;
+}
+
+.flex-column-fluid {
+ flex: 1 0 auto;
+}
+
+.flex-row-auto {
+ flex: 0 0 auto;
+}
+
+.flex-row-fluid {
+ flex: 1 auto;
+ min-width: 0;
+}
+
+.flex-center {
+ justify-content: center;
+ align-items: center;
+}
+
+.flex-start {
+ justify-content: start;
+ align-items: start;
+}
+
+.flex-end {
+ justify-content: end;
+ align-items: end;
+}
+
+.flex-stack {
+ justify-content: space-between;
+ align-items: center;
+}
+
+@media (min-width: 576px) {
+ .flex-sm-root {
+ flex: 1;
+ }
+ .flex-sm-column-auto {
+ flex: none;
+ }
+ .flex-sm-column-fluid {
+ flex: 1 0 auto;
+ }
+ .flex-sm-row-auto {
+ flex: 0 0 auto;
+ }
+ .flex-sm-row-fluid {
+ flex: 1 auto;
+ min-width: 0;
+ }
+ .flex-sm-center {
+ justify-content: center;
+ align-items: center;
+ }
+ .flex-sm-start {
+ justify-content: start;
+ align-items: start;
+ }
+ .flex-sm-end {
+ justify-content: end;
+ align-items: end;
+ }
+ .flex-sm-stack {
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+@media (min-width: 768px) {
+ .flex-md-root {
+ flex: 1;
+ }
+ .flex-md-column-auto {
+ flex: none;
+ }
+ .flex-md-column-fluid {
+ flex: 1 0 auto;
+ }
+ .flex-md-row-auto {
+ flex: 0 0 auto;
+ }
+ .flex-md-row-fluid {
+ flex: 1 auto;
+ min-width: 0;
+ }
+ .flex-md-center {
+ justify-content: center;
+ align-items: center;
+ }
+ .flex-md-start {
+ justify-content: start;
+ align-items: start;
+ }
+ .flex-md-end {
+ justify-content: end;
+ align-items: end;
+ }
+ .flex-md-stack {
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+@media (min-width: 992px) {
+ .flex-lg-root {
+ flex: 1;
+ }
+ .flex-lg-column-auto {
+ flex: none;
+ }
+ .flex-lg-column-fluid {
+ flex: 1 0 auto;
+ }
+ .flex-lg-row-auto {
+ flex: 0 0 auto;
+ }
+ .flex-lg-row-fluid {
+ flex: 1 auto;
+ min-width: 0;
+ }
+ .flex-lg-center {
+ justify-content: center;
+ align-items: center;
+ }
+ .flex-lg-start {
+ justify-content: start;
+ align-items: start;
+ }
+ .flex-lg-end {
+ justify-content: end;
+ align-items: end;
+ }
+ .flex-lg-stack {
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+@media (min-width: 1200px) {
+ .flex-xl-root {
+ flex: 1;
+ }
+ .flex-xl-column-auto {
+ flex: none;
+ }
+ .flex-xl-column-fluid {
+ flex: 1 0 auto;
+ }
+ .flex-xl-row-auto {
+ flex: 0 0 auto;
+ }
+ .flex-xl-row-fluid {
+ flex: 1 auto;
+ min-width: 0;
+ }
+ .flex-xl-center {
+ justify-content: center;
+ align-items: center;
+ }
+ .flex-xl-start {
+ justify-content: start;
+ align-items: start;
+ }
+ .flex-xl-end {
+ justify-content: end;
+ align-items: end;
+ }
+ .flex-xl-stack {
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+@media (min-width: 1400px) {
+ .flex-xxl-root {
+ flex: 1;
+ }
+ .flex-xxl-column-auto {
+ flex: none;
+ }
+ .flex-xxl-column-fluid {
+ flex: 1 0 auto;
+ }
+ .flex-xxl-row-auto {
+ flex: 0 0 auto;
+ }
+ .flex-xxl-row-fluid {
+ flex: 1 auto;
+ min-width: 0;
+ }
+ .flex-xxl-center {
+ justify-content: center;
+ align-items: center;
+ }
+ .flex-xxl-start {
+ justify-content: start;
+ align-items: start;
+ }
+ .flex-xxl-end {
+ justify-content: end;
+ align-items: end;
+ }
+ .flex-xxl-stack {
+ justify-content: space-between;
+ align-items: center;
+ }
+}
+.flex-equal {
+ flex-grow: 1;
+ flex-basis: 0;
+ flex-shrink: 0;
+}
+
+.shadow-xs {
+ box-shadow: var(--bs-box-shadow-xs);
+}
+
+.shadow-sm {
+ box-shadow: var(--bs-box-shadow-sm);
+}
+
+.shadow {
+ box-shadow: var(--bs-box-shadow);
+}
+
+.shadow-lg {
+ box-shadow: var(--bs-box-shadow-lg);
+}
+
+.text-white {
+ color: var(--bs-text-white) !important;
+}
+
+.text-hover-white {
+ transition: color 0.2s ease;
+}
+.text-hover-white i {
+ transition: color 0.2s ease;
+}
+.text-hover-white:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-white) !important;
+}
+.text-hover-white:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-white) !important;
+}
+.text-hover-white:hover .svg-icon {
+ color: var(--bs-text-white) !important;
+}
+
+.text-active-white {
+ transition: color 0.2s ease;
+}
+.text-active-white i {
+ transition: color 0.2s ease;
+}
+.text-active-white.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-white) !important;
+}
+.text-active-white.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-white) !important;
+}
+.text-active-white.active .svg-icon {
+ color: var(--bs-text-white) !important;
+}
+
+.text-primary {
+ color: var(--bs-text-primary) !important;
+}
+
+.text-inverse-primary {
+ color: var(--bs-primary-inverse) !important;
+}
+
+.text-light-primary {
+ color: var(--bs-primary-light) !important;
+}
+
+.text-hover-primary {
+ transition: color 0.2s ease;
+}
+.text-hover-primary i {
+ transition: color 0.2s ease;
+}
+.text-hover-primary:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-primary) !important;
+}
+.text-hover-primary:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-primary) !important;
+}
+.text-hover-primary:hover .svg-icon {
+ color: var(--bs-text-primary) !important;
+}
+
+.text-active-primary {
+ transition: color 0.2s ease;
+}
+.text-active-primary i {
+ transition: color 0.2s ease;
+}
+.text-active-primary.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-primary) !important;
+}
+.text-active-primary.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-primary) !important;
+}
+.text-active-primary.active .svg-icon {
+ color: var(--bs-text-primary) !important;
+}
+
+.text-secondary {
+ color: var(--bs-text-secondary) !important;
+}
+
+.text-inverse-secondary {
+ color: var(--bs-secondary-inverse) !important;
+}
+
+.text-light-secondary {
+ color: var(--bs-secondary-light) !important;
+}
+
+.text-hover-secondary {
+ transition: color 0.2s ease;
+}
+.text-hover-secondary i {
+ transition: color 0.2s ease;
+}
+.text-hover-secondary:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-secondary) !important;
+}
+.text-hover-secondary:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-secondary) !important;
+}
+.text-hover-secondary:hover .svg-icon {
+ color: var(--bs-text-secondary) !important;
+}
+
+.text-active-secondary {
+ transition: color 0.2s ease;
+}
+.text-active-secondary i {
+ transition: color 0.2s ease;
+}
+.text-active-secondary.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-secondary) !important;
+}
+.text-active-secondary.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-secondary) !important;
+}
+.text-active-secondary.active .svg-icon {
+ color: var(--bs-text-secondary) !important;
+}
+
+.text-light {
+ color: var(--bs-text-light) !important;
+}
+
+.text-inverse-light {
+ color: var(--bs-light-inverse) !important;
+}
+
+.text-hover-light {
+ transition: color 0.2s ease;
+}
+.text-hover-light i {
+ transition: color 0.2s ease;
+}
+.text-hover-light:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-light) !important;
+}
+.text-hover-light:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-light) !important;
+}
+.text-hover-light:hover .svg-icon {
+ color: var(--bs-text-light) !important;
+}
+
+.text-active-light {
+ transition: color 0.2s ease;
+}
+.text-active-light i {
+ transition: color 0.2s ease;
+}
+.text-active-light.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-light) !important;
+}
+.text-active-light.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-light) !important;
+}
+.text-active-light.active .svg-icon {
+ color: var(--bs-text-light) !important;
+}
+
+.text-success {
+ color: var(--bs-text-success) !important;
+}
+
+.text-inverse-success {
+ color: var(--bs-success-inverse) !important;
+}
+
+.text-light-success {
+ color: var(--bs-success-light) !important;
+}
+
+.text-hover-success {
+ transition: color 0.2s ease;
+}
+.text-hover-success i {
+ transition: color 0.2s ease;
+}
+.text-hover-success:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-success) !important;
+}
+.text-hover-success:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-success) !important;
+}
+.text-hover-success:hover .svg-icon {
+ color: var(--bs-text-success) !important;
+}
+
+.text-active-success {
+ transition: color 0.2s ease;
+}
+.text-active-success i {
+ transition: color 0.2s ease;
+}
+.text-active-success.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-success) !important;
+}
+.text-active-success.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-success) !important;
+}
+.text-active-success.active .svg-icon {
+ color: var(--bs-text-success) !important;
+}
+
+.text-info {
+ color: var(--bs-text-info) !important;
+}
+
+.text-inverse-info {
+ color: var(--bs-info-inverse) !important;
+}
+
+.text-light-info {
+ color: var(--bs-info-light) !important;
+}
+
+.text-hover-info {
+ transition: color 0.2s ease;
+}
+.text-hover-info i {
+ transition: color 0.2s ease;
+}
+.text-hover-info:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-info) !important;
+}
+.text-hover-info:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-info) !important;
+}
+.text-hover-info:hover .svg-icon {
+ color: var(--bs-text-info) !important;
+}
+
+.text-active-info {
+ transition: color 0.2s ease;
+}
+.text-active-info i {
+ transition: color 0.2s ease;
+}
+.text-active-info.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-info) !important;
+}
+.text-active-info.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-info) !important;
+}
+.text-active-info.active .svg-icon {
+ color: var(--bs-text-info) !important;
+}
+
+.text-warning {
+ color: var(--bs-text-warning) !important;
+}
+
+.text-inverse-warning {
+ color: var(--bs-warning-inverse) !important;
+}
+
+.text-light-warning {
+ color: var(--bs-warning-light) !important;
+}
+
+.text-hover-warning {
+ transition: color 0.2s ease;
+}
+.text-hover-warning i {
+ transition: color 0.2s ease;
+}
+.text-hover-warning:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-warning) !important;
+}
+.text-hover-warning:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-warning) !important;
+}
+.text-hover-warning:hover .svg-icon {
+ color: var(--bs-text-warning) !important;
+}
+
+.text-active-warning {
+ transition: color 0.2s ease;
+}
+.text-active-warning i {
+ transition: color 0.2s ease;
+}
+.text-active-warning.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-warning) !important;
+}
+.text-active-warning.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-warning) !important;
+}
+.text-active-warning.active .svg-icon {
+ color: var(--bs-text-warning) !important;
+}
+
+.text-danger {
+ color: var(--bs-text-danger) !important;
+}
+
+.text-inverse-danger {
+ color: var(--bs-danger-inverse) !important;
+}
+
+.text-light-danger {
+ color: var(--bs-danger-light) !important;
+}
+
+.text-hover-danger {
+ transition: color 0.2s ease;
+}
+.text-hover-danger i {
+ transition: color 0.2s ease;
+}
+.text-hover-danger:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-danger) !important;
+}
+.text-hover-danger:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-danger) !important;
+}
+.text-hover-danger:hover .svg-icon {
+ color: var(--bs-text-danger) !important;
+}
+
+.text-active-danger {
+ transition: color 0.2s ease;
+}
+.text-active-danger i {
+ transition: color 0.2s ease;
+}
+.text-active-danger.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-danger) !important;
+}
+.text-active-danger.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-danger) !important;
+}
+.text-active-danger.active .svg-icon {
+ color: var(--bs-text-danger) !important;
+}
+
+.text-dark {
+ color: var(--bs-text-dark) !important;
+}
+
+.text-inverse-dark {
+ color: var(--bs-dark-inverse) !important;
+}
+
+.text-light-dark {
+ color: var(--bs-dark-light) !important;
+}
+
+.text-hover-dark {
+ transition: color 0.2s ease;
+}
+.text-hover-dark i {
+ transition: color 0.2s ease;
+}
+.text-hover-dark:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-dark) !important;
+}
+.text-hover-dark:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-dark) !important;
+}
+.text-hover-dark:hover .svg-icon {
+ color: var(--bs-text-dark) !important;
+}
+
+.text-active-dark {
+ transition: color 0.2s ease;
+}
+.text-active-dark i {
+ transition: color 0.2s ease;
+}
+.text-active-dark.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-dark) !important;
+}
+.text-active-dark.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-dark) !important;
+}
+.text-active-dark.active .svg-icon {
+ color: var(--bs-text-dark) !important;
+}
+
+.text-muted {
+ color: var(--bs-text-muted) !important;
+}
+
+.text-hover-muted {
+ transition: color 0.2s ease;
+}
+.text-hover-muted i {
+ transition: color 0.2s ease;
+}
+.text-hover-muted:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-muted) !important;
+}
+.text-hover-muted:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-muted) !important;
+}
+.text-hover-muted:hover .svg-icon {
+ color: var(--bs-text-muted) !important;
+}
+
+.text-active-muted {
+ transition: color 0.2s ease;
+}
+.text-active-muted i {
+ transition: color 0.2s ease;
+}
+.text-active-muted.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-muted) !important;
+}
+.text-active-muted.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-muted) !important;
+}
+.text-active-muted.active .svg-icon {
+ color: var(--bs-text-muted) !important;
+}
+
+.text-gray-100 {
+ color: var(--bs-text-gray-100) !important;
+}
+
+.text-hover-gray-100 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-100 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-100:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-100) !important;
+}
+.text-hover-gray-100:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-100) !important;
+}
+.text-hover-gray-100:hover .svg-icon {
+ color: var(--bs-text-gray-100) !important;
+}
+
+.text-active-gray-100 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-100 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-100.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-100) !important;
+}
+.text-active-gray-100.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-100) !important;
+}
+.text-active-gray-100.active .svg-icon {
+ color: var(--bs-text-gray-100) !important;
+}
+
+.text-gray-200 {
+ color: var(--bs-text-gray-200) !important;
+}
+
+.text-hover-gray-200 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-200 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-200:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-200) !important;
+}
+.text-hover-gray-200:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-200) !important;
+}
+.text-hover-gray-200:hover .svg-icon {
+ color: var(--bs-text-gray-200) !important;
+}
+
+.text-active-gray-200 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-200 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-200.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-200) !important;
+}
+.text-active-gray-200.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-200) !important;
+}
+.text-active-gray-200.active .svg-icon {
+ color: var(--bs-text-gray-200) !important;
+}
+
+.text-gray-300 {
+ color: var(--bs-text-gray-300) !important;
+}
+
+.text-hover-gray-300 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-300 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-300:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-300) !important;
+}
+.text-hover-gray-300:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-300) !important;
+}
+.text-hover-gray-300:hover .svg-icon {
+ color: var(--bs-text-gray-300) !important;
+}
+
+.text-active-gray-300 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-300 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-300.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-300) !important;
+}
+.text-active-gray-300.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-300) !important;
+}
+.text-active-gray-300.active .svg-icon {
+ color: var(--bs-text-gray-300) !important;
+}
+
+.text-gray-400 {
+ color: var(--bs-text-gray-400) !important;
+}
+
+.text-hover-gray-400 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-400 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-400:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-400) !important;
+}
+.text-hover-gray-400:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-400) !important;
+}
+.text-hover-gray-400:hover .svg-icon {
+ color: var(--bs-text-gray-400) !important;
+}
+
+.text-active-gray-400 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-400 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-400.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-400) !important;
+}
+.text-active-gray-400.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-400) !important;
+}
+.text-active-gray-400.active .svg-icon {
+ color: var(--bs-text-gray-400) !important;
+}
+
+.text-gray-500 {
+ color: var(--bs-text-gray-500) !important;
+}
+
+.text-hover-gray-500 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-500 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-500:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-500) !important;
+}
+.text-hover-gray-500:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-500) !important;
+}
+.text-hover-gray-500:hover .svg-icon {
+ color: var(--bs-text-gray-500) !important;
+}
+
+.text-active-gray-500 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-500 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-500.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-500) !important;
+}
+.text-active-gray-500.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-500) !important;
+}
+.text-active-gray-500.active .svg-icon {
+ color: var(--bs-text-gray-500) !important;
+}
+
+.text-gray-600 {
+ color: var(--bs-text-gray-600) !important;
+}
+
+.text-hover-gray-600 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-600 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-600:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-600) !important;
+}
+.text-hover-gray-600:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-600) !important;
+}
+.text-hover-gray-600:hover .svg-icon {
+ color: var(--bs-text-gray-600) !important;
+}
+
+.text-active-gray-600 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-600 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-600.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-600) !important;
+}
+.text-active-gray-600.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-600) !important;
+}
+.text-active-gray-600.active .svg-icon {
+ color: var(--bs-text-gray-600) !important;
+}
+
+.text-gray-700 {
+ color: var(--bs-text-gray-700) !important;
+}
+
+.text-hover-gray-700 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-700 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-700:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-700) !important;
+}
+.text-hover-gray-700:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-700) !important;
+}
+.text-hover-gray-700:hover .svg-icon {
+ color: var(--bs-text-gray-700) !important;
+}
+
+.text-active-gray-700 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-700 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-700.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-700) !important;
+}
+.text-active-gray-700.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-700) !important;
+}
+.text-active-gray-700.active .svg-icon {
+ color: var(--bs-text-gray-700) !important;
+}
+
+.text-gray-800 {
+ color: var(--bs-text-gray-800) !important;
+}
+
+.text-hover-gray-800 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-800 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-800:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-800) !important;
+}
+.text-hover-gray-800:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-800) !important;
+}
+.text-hover-gray-800:hover .svg-icon {
+ color: var(--bs-text-gray-800) !important;
+}
+
+.text-active-gray-800 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-800 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-800.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-800) !important;
+}
+.text-active-gray-800.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-800) !important;
+}
+.text-active-gray-800.active .svg-icon {
+ color: var(--bs-text-gray-800) !important;
+}
+
+.text-gray-900 {
+ color: var(--bs-text-gray-900) !important;
+}
+
+.text-hover-gray-900 {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-900 i {
+ transition: color 0.2s ease;
+}
+.text-hover-gray-900:hover {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-900) !important;
+}
+.text-hover-gray-900:hover i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-900) !important;
+}
+.text-hover-gray-900:hover .svg-icon {
+ color: var(--bs-text-gray-900) !important;
+}
+
+.text-active-gray-900 {
+ transition: color 0.2s ease;
+}
+.text-active-gray-900 i {
+ transition: color 0.2s ease;
+}
+.text-active-gray-900.active {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-900) !important;
+}
+.text-active-gray-900.active i {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-900) !important;
+}
+.text-active-gray-900.active .svg-icon {
+ color: var(--bs-text-gray-900) !important;
+}
+
+.parent-hover .parent-hover-white {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-white {
+ transition: color 0.2s ease;
+ color: var(--bs-text-white) !important;
+}
+.parent-hover .parent-hover-primary {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-primary {
+ transition: color 0.2s ease;
+ color: var(--bs-text-primary) !important;
+}
+.parent-hover .parent-hover-secondary {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-secondary {
+ transition: color 0.2s ease;
+ color: var(--bs-text-secondary) !important;
+}
+.parent-hover .parent-hover-light {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-light {
+ transition: color 0.2s ease;
+ color: var(--bs-text-light) !important;
+}
+.parent-hover .parent-hover-success {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-success {
+ transition: color 0.2s ease;
+ color: var(--bs-text-success) !important;
+}
+.parent-hover .parent-hover-info {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-info {
+ transition: color 0.2s ease;
+ color: var(--bs-text-info) !important;
+}
+.parent-hover .parent-hover-warning {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-warning {
+ transition: color 0.2s ease;
+ color: var(--bs-text-warning) !important;
+}
+.parent-hover .parent-hover-danger {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-danger {
+ transition: color 0.2s ease;
+ color: var(--bs-text-danger) !important;
+}
+.parent-hover .parent-hover-dark {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-dark {
+ transition: color 0.2s ease;
+ color: var(--bs-text-dark) !important;
+}
+.parent-hover .parent-hover-muted {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-muted {
+ transition: color 0.2s ease;
+ color: var(--bs-text-muted) !important;
+}
+.parent-hover .parent-hover-gray-100 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-100 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-100) !important;
+}
+.parent-hover .parent-hover-gray-200 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-200 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-200) !important;
+}
+.parent-hover .parent-hover-gray-300 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-300 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-300) !important;
+}
+.parent-hover .parent-hover-gray-400 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-400 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-400) !important;
+}
+.parent-hover .parent-hover-gray-500 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-500 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-500) !important;
+}
+.parent-hover .parent-hover-gray-600 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-600 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-600) !important;
+}
+.parent-hover .parent-hover-gray-700 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-700 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-700) !important;
+}
+.parent-hover .parent-hover-gray-800 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-800 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-800) !important;
+}
+.parent-hover .parent-hover-gray-900 {
+ transition: color 0.2s ease;
+}
+.parent-hover:hover .parent-hover-gray-900 {
+ transition: color 0.2s ease;
+ color: var(--bs-text-gray-900) !important;
+}
+
+.text-transparent {
+ color: transparent;
+}
+
+.cursor-pointer {
+ cursor: pointer;
+}
+
+.cursor-default {
+ cursor: default;
+}
+
+.cursor-move {
+ cursor: move;
+}
+
+i.bi, i[class^=fonticon-], i[class*=" fonticon-"], i[class^=fa-], i[class*=" fa-"], i[class^=la-], i[class*=" la-"] {
+ line-height: 1;
+ font-size: 1rem;
+ color: var(--bs-text-muted);
+}
+
+a {
+ transition: color 0.2s ease;
+}
+a:hover {
+ transition: color 0.2s ease;
+}
+
+.opacity-active-0.active {
+ opacity: 0 !important;
+}
+
+.opacity-state-0:hover, .opacity-state-0.active {
+ opacity: 0 !important;
+}
+
+.opacity-active-5.active {
+ opacity: 0.05 !important;
+}
+
+.opacity-state-5:hover, .opacity-state-5.active {
+ opacity: 0.05 !important;
+}
+
+.opacity-active-10.active {
+ opacity: 0.1 !important;
+}
+
+.opacity-state-10:hover, .opacity-state-10.active {
+ opacity: 0.1 !important;
+}
+
+.opacity-active-15.active {
+ opacity: 0.15 !important;
+}
+
+.opacity-state-15:hover, .opacity-state-15.active {
+ opacity: 0.15 !important;
+}
+
+.opacity-active-20.active {
+ opacity: 0.2 !important;
+}
+
+.opacity-state-20:hover, .opacity-state-20.active {
+ opacity: 0.2 !important;
+}
+
+.opacity-active-25.active {
+ opacity: 0.25 !important;
+}
+
+.opacity-state-25:hover, .opacity-state-25.active {
+ opacity: 0.25 !important;
+}
+
+.opacity-active-50.active {
+ opacity: 0.5 !important;
+}
+
+.opacity-state-50:hover, .opacity-state-50.active {
+ opacity: 0.5 !important;
+}
+
+.opacity-active-75.active {
+ opacity: 0.75 !important;
+}
+
+.opacity-state-75:hover, .opacity-state-75.active {
+ opacity: 0.75 !important;
+}
+
+.opacity-active-100.active {
+ opacity: 1 !important;
+}
+
+.opacity-state-100:hover, .opacity-state-100.active {
+ opacity: 1 !important;
+}
+
+.transform-90 {
+ transform: rotate(90deg);
+ transform-origin: right top;
+}
+
+.stepper.stepper-pills.stepper-multistep {
+ --bs-stepper-pills-size: 46px;
+ --bs-stepper-icon-border-radius: 9px;
+ --bs-stepper-icon-check-size: 1.25rem;
+ --bs-stepper-icon-bg-color: rgba(255, 255, 255, 0.03);
+ --bs-stepper-icon-bg-color-current: var(--bs-success);
+ --bs-stepper-icon-bg-color-completed: rgba(255, 255, 255, 0.03);
+ --bs-stepper-icon-border: 1px dashed rgba(255, 255, 255, 0.3);
+ --bs-stepper-icon-border-current: 0;
+ --bs-stepper-icon-border-completed: 1px dashed rgba(255, 255, 255, 0.3);
+ --bs-stepper-icon-number-color: var(--bs-white);
+ --bs-stepper-icon-number-color-current: var(--bs-white);
+ --bs-stepper-icon-number-color-completed: var(--bs-white);
+ --bs-stepper-icon-check-color-completed: var(--bs-success);
+ --bs-stepper-label-title-opacity: 0.7;
+ --bs-stepper-label-title-opacity-current: 1;
+ --bs-stepper-label-title-opacity-completed: 1;
+ --bs-stepper-label-title-color: var(--bs-white);
+ --bs-stepper-label-title-color-current: var(--bs-white);
+ --bs-stepper-label-title-color-completed: var(--bs-white);
+ --bs-stepper-label-desc-opacity: 0.7;
+ --bs-stepper-label-desc-opacity-current: 0.7;
+ --bs-stepper-label-desc-opacity-completed: 0.7;
+ --bs-stepper-label-desc-color: var(--bs-white);
+ --bs-stepper-label-desc-color-current: var(--bs-white);
+ --bs-stepper-label-desc-color-completed: var(--bs-white);
+ --bs-stepper-line-border: 1px dashed rgba(255, 255, 255, 0.3);
+}
+
+.landing-dark-bg {
+ background-color: #13263C;
+}
+
+.landing-dark-color {
+ color: #13263C;
+}
+
+.landing-dark-border {
+ border: 1px dashed #2C3F5B;
+}
+
+.landing-dark-separator {
+ border-top: 1px dashed #2C3F5B;
+}
+
+.landing-curve {
+ position: relative;
+}
+.landing-curve svg {
+ position: relative;
+ top: 0;
+ display: block;
+}
+
+.landing-header {
+ display: flex;
+ align-items: center;
+ height: 100px;
+}
+.landing-header .logo-default {
+ display: block;
+}
+.landing-header .logo-sticky {
+ display: none;
+}
+.landing-header .menu .menu-link.active {
+ color: #ffffff;
+}
+[data-kt-sticky-landing-header=on] .landing-header .menu .menu-link.active {
+ color: #009ef7;
+ background-color: rgba(239, 242, 245, 0.4);
+}
+[data-kt-sticky-landing-header=on] .landing-header {
+ padding: 0;
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 100;
+ background-color: #ffffff;
+ box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);
+ height: 70px;
+}
+[data-kt-sticky-landing-header=on] .landing-header .logo-sticky {
+ display: block;
+}
+[data-kt-sticky-landing-header=on] .landing-header .logo-default {
+ display: none;
+}
+
+body[data-kt-sticky-landing-header=on] {
+ padding-top: 100px;
+}
+
+@media (max-width: 991.98px) {
+ .landing-header {
+ height: 70px;
+ }
+ .landing-header .landing-menu-wrapper {
+ position: relative;
+ overflow: auto;
+ }
+ [data-kt-sticky-landing-header=on] .landing-header {
+ height: 70px;
+ }
+ .landing-header .menu .menu-link.active {
+ color: #009ef7;
+ background-color: rgba(239, 242, 245, 0.4);
+ }
+ body[data-kt-sticky-landing-header=on] {
+ padding-top: 70px;
+ }
+}
+[data-bs-theme=light] {
+ --bs-app-bg-color: #f5f8fa;
+ --bs-app-blank-bg-color: #ffffff;
+ --bs-app-header-base-bg-color: #ffffff;
+ --bs-app-header-base-box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);
+ --bs-app-toolbar-base-bg-color: #ffffff;
+ --bs-app-toolbar-base-box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);
+ --bs-app-toolbar-base-border-top: 1px solid #F4F4F4;
+ --bs-app-footer-bg-color: #ffffff;
+ --bs-app-footer-box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);
+}
+
+[data-bs-theme=dark] {
+ --bs-app-bg-color: #151521;
+ --bs-app-blank-bg-color: #151521;
+ --bs-app-header-base-bg-color: #1e1e2d;
+ --bs-app-header-base-box-shadow: none;
+ --bs-app-toolbar-base-bg-color: #1a1a27;
+ --bs-app-toolbar-base-box-shadow: none;
+ --bs-app-toolbar-base-border-top: 0;
+ --bs-app-footer-bg-color: #1e1e2d;
+ --bs-app-footer-box-shadow: none;
+}
+
+html {
+ font-family: sans-serif;
+ text-size-adjust: 100%;
+}
+
+html,
+body {
+ height: 100%;
+ margin: 0px;
+ padding: 0px;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-size: 13px !important;
+ font-weight: 400;
+ font-family: Inter, Helvetica, "sans-serif";
+}
+@media (max-width: 991.98px) {
+ html,
+body {
+ font-size: 12px !important;
+ }
+}
+@media (max-width: 767.98px) {
+ html,
+body {
+ font-size: 12px !important;
+ }
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+}
+body a:hover,
+body a:active,
+body a:focus {
+ text-decoration: none !important;
+}
+
+canvas {
+ user-select: none;
+}
+
+router-outlet {
+ display: none;
+}
+
+body,
+.app-default {
+ background-color: var(--bs-app-bg-color);
+}
+
+.app-blank {
+ background-color: var(--bs-app-blank-bg-color);
+}
+
+[data-kt-app-reset-transition=true] * {
+ transition: none !important;
+}
+
+.app-page {
+ display: flex;
+}
+
+[data-kt-app-page-loading=on] {
+ overflow: hidden;
+}
+
+[data-kt-app-page-loading=on] * {
+ transition: none !important;
+}
+
+.app-page-loader {
+ background: var(--bs-body-bg);
+ color: var(--bs-body-color);
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 10000;
+ display: none;
+}
+[data-kt-app-page-loading=on] .app-page-loader {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+@media (min-width: 992px) {
+ .app-container {
+ padding-left: 30px !important;
+ padding-right: 30px !important;
+ }
+ .app-container-fit-desktop {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .app-container {
+ max-width: none;
+ padding-left: 20px !important;
+ padding-right: 20px !important;
+ }
+ .app-container-fit-mobile {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+}
+@media print {
+ .app-print-content-only {
+ padding: 0 !important;
+ background: none !important;
+ }
+ .app-print-content-only .app-wrapper,
+.app-print-content-only .app-page,
+.app-print-content-only .app-page-title,
+.app-print-content-only .app-content,
+.app-print-content-only .app-container {
+ background: none !important;
+ padding: 0 !important;
+ margin: 0 !important;
+ }
+ .app-print-content-only .app-aside,
+.app-print-content-only .app-aside-panel,
+.app-print-content-only .app-sidebar,
+.app-print-content-only .app-sidebar-panel,
+.app-print-content-only .app-header,
+.app-print-content-only .app-footer,
+.app-print-content-only .app-toolbar,
+.app-print-content-only .drawer,
+.app-print-content-only .scrolltop,
+.app-print-content-only .btn {
+ display: none !important;
+ }
+}
+.app-navbar {
+ display: flex;
+ align-items: stretch;
+}
+.app-navbar .app-navbar-item {
+ display: flex;
+ align-items: center;
+}
+.app-navbar.app-navbar-stretch .app-navbar-item {
+ align-items: stretch;
+}
+
+.app-header {
+ transition: none;
+ display: flex;
+ align-items: stretch;
+ background-color: var(--bs-app-header-base-bg-color);
+ box-shadow: var(--bs-app-header-base-box-shadow);
+ border-bottom: var(--bs-app-header-base-border-bottom);
+}
+
+@media (min-width: 992px) {
+ :root {
+ --bs-app-header-height: 70px;
+ --bs-app-header-height-actual: 70px;
+ }
+ [data-kt-app-header-sticky=on] {
+ --bs-app-header-height: 70px;
+ --bs-app-header-height-actual: 70px;
+ }
+ [data-kt-app-header-sticky=on][data-kt-app-header-stacked=true] {
+ --bs-app-header-height: calc(var(--bs-app-header-primary-height, 0px) + var(--bs-app-header-secondary-height, 0px) + var(--bs-app-header-tertiary-height, 0px));
+ --bs-app-header-height-actual: calc(70px + 70px + 70px);
+ }
+ [data-kt-app-header-minimize=on] {
+ --bs-app-header-height: 70px;
+ }
+ .app-header {
+ height: var(--bs-app-header-height);
+ }
+ [data-kt-app-header-fixed=true] .app-header {
+ z-index: 100;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ }
+ [data-kt-app-header-static=true] .app-header {
+ position: relative;
+ }
+ [data-kt-app-header-stacked=true] .app-header {
+ flex-direction: column;
+ height: calc(var(--bs-app-header-primary-height) + var(--bs-app-header-secondary-height, 0px) + var(--bs-app-header-tertiary-height, 0px));
+ }
+ [data-kt-app-header-sticky=on] .app-header {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ z-index: 100;
+ background-color: var(--bs-app-header-sticky-bg-color);
+ box-shadow: var(--bs-app-header-sticky-box-shadow);
+ border-bottom: var(--bs-app-header-sticky-border-bottom);
+ }
+ [data-kt-app-header-minimize=on] .app-header {
+ transition: none;
+ z-index: 100;
+ background-color: var(--bs-app-header-minimize-bg-color);
+ box-shadow: var(--bs-app-header-minimize-box-shadow);
+ border-bottom: var(--bs-app-header-minimize-border-bottom);
+ }
+ .app-header .app-header-mobile-drawer {
+ display: flex;
+ }
+ [data-kt-app-header-fixed=true][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] .app-header, [data-kt-app-header-fixed=true][data-kt-app-sidebar-sticky=on][data-kt-app-sidebar-push-header=true] .app-header {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ body:not([data-kt-app-header-fixed=true])[data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] .app-header, body:not([data-kt-app-header-fixed=true])[data-kt-app-sidebar-sticky=on][data-kt-app-sidebar-push-header=true] .app-header {
+ margin-left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-header-fixed=true][data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-header=true] .app-header, [data-kt-app-header-fixed=true][data-kt-app-sidebar-panel-sticky=on][data-kt-app-sidebar-panel-push-header=true] .app-header {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+ body:not([data-kt-app-header-fixed=true])[data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-header=true] .app-header, body:not([data-kt-app-header-fixed=true])[data-kt-app-sidebar-panel-sticky=on][data-kt-app-sidebar-panel-push-header=true] .app-header {
+ margin-left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+ [data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true] .app-header {
+ box-shadow: none;
+ }
+}
+@media (max-width: 991.98px) {
+ :root {
+ --bs-app-header-height: 60px;
+ }
+ [data-kt-app-header-sticky=on] {
+ --bs-app-header-height: 70px;
+ --bs-app-header-height-actual: 70px;
+ }
+ [data-kt-app-header-minimize=on] {
+ --bs-app-header-height: 70px;
+ --bs-app-header-height-actual: 70px;
+ }
+ .app-header {
+ height: var(--bs-app-header-height);
+ align-items: stretch;
+ }
+ .app-header .app-header-mobile-drawer {
+ display: none;
+ }
+ [data-kt-app-header-stacked=true] .app-header {
+ flex-direction: column;
+ height: calc(var(--bs-app-header-primary-height) + var(--bs-app-header-secondary-height, 0px) + var(--bs-app-header-tertiary-height, 0px));
+ }
+ [data-kt-app-header-fixed-mobile=true] .app-header {
+ z-index: 100;
+ transition: none;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ }
+ [data-kt-app-header-sticky=on] .app-header {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ z-index: 100;
+ background-color: var(--bs-app-header-sticky-bg-color);
+ box-shadow: var(--bs-app-header-sticky-box-shadow);
+ border-bottom: var(--bs-app-header-sticky-border-bottom);
+ }
+ [data-kt-app-header-minimize=on] .app-header {
+ z-index: 100;
+ transition: none;
+ background-color: var(--bs-app-header-minimize-bg-color);
+ box-shadow: var(--bs-app-header-minimize-box-shadow);
+ border-bottom: var(--bs-app-header-minimize-border-bottom);
+ }
+ [data-kt-app-header-fixed-mobile=true][data-kt-app-toolbar-fixed-mobile=true] .app-header {
+ box-shadow: none;
+ }
+ [data-kt-app-header-fixed-mobile=true][data-kt-app-toolbar-sticky=on] .app-header {
+ box-shadow: none;
+ }
+}
+.app-header-primary {
+ transition: none;
+ display: flex;
+ align-items: stretch;
+}
+
+@media (min-width: 992px) {
+ .app-header-primary {
+ background-color: var(--bs-app-header-primary-base-bg-color);
+ box-shadow: var(--bs-app-header-primary-base-box-shadow);
+ border-bottom: var(--bs-app-header-primary-base-border-bottom);
+ }
+ [data-kt-app-header-primary-enabled=true] {
+ --bs-app-header-primary-height: 70px;
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-header-sticky=on] {
+ --bs-app-header-primary-height: 70px;
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-header-minimize=on] {
+ --bs-app-header-primary-height: 70px;
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-header-sticky=on][data-kt-app-header-primary-sticky-hide=true] {
+ --bs-app-header-primary-height: 0;
+ }
+ .app-header-primary {
+ height: var(--bs-app-header-primary-height);
+ }
+ [data-kt-app-header-primary-fixed=true] .app-header-primary {
+ z-index: 100;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ }
+ [data-kt-app-header-primary-static=true] .app-header-primary {
+ position: relative;
+ }
+ [data-kt-app-header-primary-sticky=on] .app-header-primary {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ height: 70px;
+ z-index: 100;
+ background-color: var(--bs-app-header-primary-sticky-bg-color);
+ box-shadow: var(--bs-app-header-primary-sticky-box-shadow);
+ border-bottom: var(--bs-app-header-primary-sticky-border-bottom);
+ }
+ [data-kt-app-header-primary-minimize=on] .app-header-primary {
+ transition: none;
+ height: 70px;
+ z-index: 100;
+ background-color: var(--bs-app-header-primary-minimize-bg-color);
+ box-shadow: var(--bs-app-header-primary-minimize-box-shadow);
+ border-bottom: var(--bs-app-header-primary-minimize-border-bottom);
+ }
+ [data-kt-app-header-sticky=on][data-kt-app-header-primary-sticky-hide=true] .app-header-primary {
+ display: none !important;
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] .app-header-primary {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-header=true] .app-header-primary {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ .app-header .app-header-primary {
+ flex-grow: 1;
+ height: var(--bs-app-header-primary-height);
+ border-bottom: var(--bs-app-header-primary-base-border-bottom);
+ box-shadow: var(--bs-app-header-primary-base-box-shadow);
+ }
+ .app-header-primary {
+ background-color: var(--bs-app-header-primary-base-bg-color);
+ }
+ [data-kt-app-header-primary-enabled=true] {
+ --bs-app-header-primary-height: 60px;
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-header-sticky=on] {
+ --bs-app-header-primary-height: 60px;
+ }
+ [data-kt-app-header-primary-enabled=true][data-kt-app-header-minimize=on] {
+ --bs-app-header-primary-height: 60px;
+ }
+}
+.app-header-secondary {
+ transition: none;
+ display: flex;
+ align-items: stretch;
+}
+
+@media (min-width: 992px) {
+ .app-header-secondary {
+ background-color: var(--bs-app-header-secondary-base-bg-color);
+ box-shadow: var(--bs-app-header-secondary-base-box-shadow);
+ border-top: var(--bs-app-header-secondary-base-border-top);
+ border-bottom: var(--bs-app-header-secondary-base-border-bottom);
+ }
+ [data-kt-app-header-secondary-enabled=true] {
+ --bs-app-header-secondary-height: 70px;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-header-sticky=on] {
+ --bs-app-header-secondary-height: 70px;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-header-minimize=on] {
+ --bs-app-header-secondary-height: 70px;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-header-sticky=on][data-kt-app-header-secondary-sticky-hide=true] {
+ --bs-app-header-secondary-height: 0;
+ }
+ .app-header-secondary {
+ height: var(--bs-app-header-secondary-height);
+ }
+ [data-kt-app-header-secondary-fixed=true] .app-header-secondary {
+ z-index: 100;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ }
+ [data-kt-app-header-secondary-static=true] .app-header-secondary {
+ position: static;
+ }
+ [data-kt-app-header-secondary-sticky=on] .app-header-secondary {
+ transition: none;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ height: 70px;
+ z-index: 100;
+ background-color: var(--bs-app-header-secondary-sticky-bg-color);
+ box-shadow: var(--bs-app-header-secondary-sticky-box-shadow);
+ border-bottom: var(--bs-app-header-secondary-sticky-border-bottom);
+ }
+ [data-kt-app-header-secondary-minimize=on] .app-header-secondary {
+ transition: none;
+ height: 70px;
+ z-index: 100;
+ background-color: var(--bs-app-header-secondary-minimize-bg-color);
+ box-shadow: var(--bs-app-header-secondary-minimize-box-shadow);
+ border-bottom: var(--bs-app-header-secondary-minimize-border-bottom);
+ }
+ [data-kt-app-header-sticky=on][data-kt-app-header-secondary-sticky-hide=true] .app-header-secondary {
+ display: none !important;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] .app-header-secondary {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-header=true] .app-header-secondary {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ .app-header .app-header-secondary {
+ flex-grow: 1;
+ height: var(--bs-app-header-secondary-height);
+ box-shadow: var(--bs-app-header-secondary-base-box-shadow);
+ border-top: var(--bs-app-header-secondary-base-border-top);
+ border-bottom: var(--bs-app-header-secondary-base-border-bottom);
+ }
+ .app-header-secondary {
+ background-color: var(--bs-app-header-secondary-base-bg-color);
+ }
+ [data-kt-app-header-secondary-enabled=true] {
+ --bs-app-header-secondary-height: 60px;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-header-sticky=on] {
+ --bs-app-header-secondary-height: 60px;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-header-minimize=on] {
+ --bs-app-header-secondary-height: 60px;
+ }
+}
+.app-header-tertiary {
+ transition: none;
+ display: flex;
+ align-items: stretch;
+}
+
+@media (min-width: 992px) {
+ .app-header-tertiary {
+ background-color: var(--bs-app-header-tertiary-base-bg-color);
+ box-shadow: var(--bs-app-header-tertiary-base-box-shadow);
+ border-top: var(--bs-app-header-tertiary-base-border-top);
+ border-bottom: var(--bs-app-header-tertiary-base-border-bottom);
+ }
+ [data-kt-app-header-tertiary-enabled=true] {
+ --bs-app-header-tertiary-height: 70px;
+ }
+ [data-kt-app-header-tertiary-enabled=true][data-kt-app-header-sticky=on] {
+ --bs-app-header-tertiary-height: 70px;
+ }
+ [data-kt-app-header-tertiary-enabled=true][data-kt-app-header-minimize=on] {
+ --bs-app-header-tertiary-height: 70px;
+ }
+ [data-kt-app-header-tertiary-enabled=true][data-kt-app-header-sticky=on][data-kt-app-header-tertiary-sticky-hide=true] {
+ --bs-app-header-tertiary-height: 0;
+ }
+ .app-header-tertiary {
+ height: var(--bs-app-header-tertiary-height);
+ }
+ [data-kt-app-header-tertiary-fixed=true] .app-header-tertiary {
+ z-index: 100;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ }
+ [data-kt-app-header-tertiary-static=true] .app-header-tertiary {
+ position: static;
+ }
+ [data-kt-app-header-tertiary-sticky=on] .app-header-tertiary {
+ transition: none;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ height: 70px;
+ z-index: 100;
+ background-color: var(--bs-app-header-tertiary-sticky-bg-color);
+ box-shadow: var(--bs-app-header-tertiary-sticky-box-shadow);
+ border-bottom: var(--bs-app-header-tertiary-sticky-border-bottom);
+ }
+ [data-kt-app-header-tertiary-minimize=on] .app-header-tertiary {
+ transition: none;
+ height: 70px;
+ z-index: 100;
+ background-color: var(--bs-app-header-tertiary-minimize-bg-color);
+ box-shadow: var(--bs-app-header-tertiary-minimize-box-shadow);
+ border-bottom: var(--bs-app-header-tertiary-minimize-border-bottom);
+ }
+ [data-kt-app-header-sticky=on][data-kt-app-header-tertiary-sticky-hide=true] .app-header-tertiary {
+ display: none !important;
+ }
+ [data-kt-app-header-tertiary-enabled=true][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] .app-header-tertiary {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-header-tertiary-enabled=true][data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-header=true] .app-header-tertiary {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ .app-header .app-header-tertiary {
+ flex-grow: 1;
+ height: var(--bs-app-header-tertiary-height);
+ border-top: var(--bs-app-header-tertiary-base-border-top);
+ box-shadow: var(--bs-app-header-tertiary-base-box-shadow);
+ }
+ .app-header-tertiary {
+ background-color: var(--bs-app-header-tertiary-base-bg-color);
+ }
+ [data-kt-app-header-tertiary-enabled=true] {
+ --bs-app-header-tertiary-height: 70px;
+ }
+ [data-kt-app-header-tertiary-enabled=true][data-kt-app-header-sticky=on] {
+ --bs-app-header-tertiary-height: 60px;
+ }
+ [data-kt-app-header-secondary-enabled=true][data-kt-app-header-minimize=on] {
+ --bs-app-header-tertiary-height: 60px;
+ }
+}
+.app-toolbar {
+ display: flex;
+ align-items: stretch;
+ background-color: var(--bs-app-toolbar-base-bg-color);
+ box-shadow: var(--bs-app-toolbar-base-box-shadow);
+ border-top: var(--bs-app-toolbar-base-border-top);
+ border-bottom: var(--bs-app-toolbar-base-border-bottom);
+}
+.app-toolbar.app-toolbar-minimize {
+ transition: none;
+}
+
+@media (min-width: 992px) {
+ :root {
+ --bs-app-toolbar-height: 55px;
+ --bs-app-toolbar-height-actual: 55px;
+ }
+ [data-kt-app-toolbar-sticky=on] {
+ --bs-app-toolbar-height: 70px;
+ }
+ [data-kt-app-toolbar-minimize=on] {
+ --bs-app-toolbar-height: 70px;
+ }
+ .app-toolbar {
+ height: var(--bs-app-toolbar-height);
+ }
+ [data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true] .app-toolbar {
+ z-index: 99;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ }
+ [data-kt-app-toolbar-sticky=on] .app-toolbar {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ box-shadow: var(--bs-app-toolbar-sticky-box-shadow);
+ background-color: var(--bs-app-toolbar-sticky-bg-color);
+ border-top: var(--bs-app-toolbar-sticky-border-top);
+ border-bottom: var(--bs-app-toolbar-sticky-border-bottom);
+ z-index: 99;
+ }
+ [data-kt-app-toolbar-minimize=on] .app-toolbar {
+ transition: none;
+ box-shadow: var(--bs-app-toolbar-minimize-box-shadow);
+ background-color: var(--bs-app-toolbar-minimize-bg-color);
+ border-top: var(--bs-app-toolbar-minimize-border-top);
+ border-bottom: var(--bs-app-toolbar-minimize-border-bottom);
+ z-index: 99;
+ }
+ [data-kt-app-toolbar-fixed=true][data-kt-app-header-fixed=true] .app-toolbar {
+ top: var(--bs-app-header-height);
+ }
+ [data-kt-app-toolbar-sticky=on][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-toolbar=true] .app-toolbar, [data-kt-app-toolbar-fixed=true][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-toolbar=true] .app-toolbar {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-toolbar-sticky=on][data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-toolbar=true] .app-toolbar, [data-kt-app-toolbar-fixed=true][data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-toolbar=true] .app-toolbar {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+ [data-kt-app-toolbar-sticky=on][data-kt-app-aside-fixed=true][data-kt-app-aside-push-toolbar=true] .app-toolbar, [data-kt-app-toolbar-fixed=true][data-kt-app-aside-fixed=true][data-kt-app-aside-push-toolbar=true] .app-toolbar {
+ right: calc(var(--bs-app-aside-width) + var(--bs-app-aside-gap-start, 0px) + var(--bs-app-aside-gap-end, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ :root {
+ --bs-app-toolbar-height: ;
+ }
+ [data-kt-app-toolbar-sticky=on] {
+ --bs-app-toolbar-height: 70px;
+ }
+ [data-kt-app-toolbar-minimize=on] {
+ --bs-app-toolbar-height: 70px;
+ }
+ .app-toolbar {
+ height: var(--bs-app-toolbar-height);
+ }
+ [data-kt-app-header-fixed-mobile=true][data-kt-app-toolbar-fixed-mobile=true] .app-toolbar {
+ z-index: 99;
+ position: fixed;
+ top: calc(var(--bs-app-header-height, 0px) + var(--bs-app-header-mobile-height, 0px));
+ left: 0;
+ right: 0;
+ }
+ [data-kt-app-toolbar-sticky=on] .app-toolbar {
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: var(--bs-app-header-height, 0px);
+ box-shadow: var(--bs-app-toolbar-sticky-box-shadow);
+ background-color: var(--bs-app-toolbar-sticky-bg-color);
+ border-top: var(--bs-app-toolbar-sticky-border-top);
+ border-bottom: var(--bs-app-toolbar-sticky-border-bottom);
+ z-index: 99;
+ }
+ [data-kt-app-toolbar-minimize=on] .app-toolbar {
+ transition: none;
+ box-shadow: var(--bs-app-toolbar-minimize-box-shadow);
+ background-color: var(--bs-app-toolbar-minimize-bg-color);
+ border-top: var(--bs-app-toolbar-minimize-border-top);
+ border-bottom: var(--bs-app-toolbar-minimize-border-bottom);
+ z-index: 99;
+ }
+}
+.app-hero {
+ display: flex;
+ align-items: stretch;
+ background-color: var(--bs-app-hero-bg-color);
+ box-shadow: var(--bs-app-hero-box-shadow);
+ border-top: var(--bs-app-hero-border-top);
+ border-bottom: var(--bs-app-hero-border-bottom);
+}
+
+.app-sidebar {
+ transition: width 0.3s ease;
+ background-color: var(--bs-app-sidebar-base-bg-color);
+ box-shadow: var(--bs-app-sidebar-base-box-shadow);
+ border-left: var(--bs-app-sidebar-base-border-start);
+ border-right: var(--bs-app-sidebar-base-border-end);
+}
+
+.app-sidebar-minimize-d-flex,
+.app-sidebar-sticky-d-flex,
+.app-sidebar-collapse-d-flex,
+.app-sidebar-minimize-mobile-d-flex,
+.app-sidebar-collapse-mobile-d-flex {
+ display: none;
+}
+
+@media (min-width: 992px) {
+ .app-sidebar {
+ display: flex;
+ flex-shrink: 0;
+ width: var(--bs-app-sidebar-width);
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-sidebar-width: 265px;
+ --bs-app-sidebar-width-actual: 265px;
+ --bs-app-sidebar-gap-start: 0px;
+ --bs-app-sidebar-gap-end: 0px;
+ --bs-app-sidebar-gap-top: 0px;
+ --bs-app-sidebar-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-stacked=true] {
+ --bs-app-sidebar-width: calc(var(--bs-app-sidebar-primary-width) + var(--bs-app-sidebar-secondary-width, 0px));
+ }
+ [data-kt-app-sidebar-minimize=on] {
+ --bs-app-sidebar-width: 75px;
+ --bs-app-sidebar-gap-start: 0px;
+ --bs-app-sidebar-gap-end: 0px;
+ --bs-app-sidebar-gap-top: 0px;
+ --bs-app-sidebar-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-sticky=on] {
+ --bs-app-sidebar-width: 300px;
+ --bs-app-sidebar-gap-start: 0px;
+ --bs-app-sidebar-gap-end: 0px;
+ --bs-app-sidebar-gap-top: 0px;
+ --bs-app-sidebar-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-collapse=on] {
+ --bs-app-sidebar-width: 0px;
+ }
+ [data-kt-app-sidebar-static=true] .app-sidebar {
+ position: relative;
+ }
+ [data-kt-app-sidebar-offcanvas=true] .app-sidebar {
+ display: none;
+ }
+ [data-kt-app-sidebar-fixed=true] .app-sidebar {
+ position: fixed;
+ z-index: 105;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ }
+ [data-kt-app-sidebar-stacked=true] .app-sidebar {
+ align-items: stretch;
+ }
+ [data-kt-app-sidebar-sticky=on] .app-sidebar {
+ position: fixed;
+ transition: width 0.3s ease;
+ top: auto;
+ bottom: auto;
+ left: auto;
+ z-index: 105;
+ box-shadow: var(--bs-app-sidebar-sticky-box-shadow);
+ border-left: var(--bs-app-sidebar-sticky-border-start);
+ border-right: var(--bs-app-sidebar-sticky-border-end);
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-minimize=on] .app-sidebar {
+ transition: width 0.3s ease;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-hoverable=true] .app-sidebar .app-sidebar-wrapper {
+ width: var(--bs-app-sidebar-width-actual);
+ }
+ [data-kt-app-sidebar-hoverable=true][data-kt-app-sidebar-minimize=on] .app-sidebar:hover:not(.animating) {
+ transition: width 0.3s ease;
+ width: var(--bs-app-sidebar-width-actual);
+ }
+ [data-kt-app-sidebar-collapse=on] .app-sidebar {
+ transition: width 0.3s ease;
+ width: var(--bs-app-sidebar-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-width-actual));
+ }
+ [data-kt-app-sidebar-minimize=on] .app-sidebar-minimize-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-minimize=on] .app-sidebar-minimize-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-sticky=on] .app-sidebar-sticky-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-sticky=on] .app-sidebar-sticky-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-collapse=on] .app-sidebar-collapse-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-collapse=on] .app-sidebar-collapse-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-header-fixed=true]:not([data-kt-app-sidebar-push-header=true]) .app-sidebar {
+ top: var(--bs-app-header-height);
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true]:not([data-kt-app-sidebar-push-toolbar=true]) .app-sidebar {
+ top: calc(var(--bs-app-header-height) + var(--bs-app-toolbar-height, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ .app-sidebar {
+ display: none;
+ width: var(--bs-app-sidebar-width);
+ z-index: 106;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-sidebar-width: 250px;
+ --bs-app-sidebar-width-actual: 250px;
+ --bs-app-sidebar-gap-start: 0px;
+ --bs-app-sidebar-gap-end: 0px;
+ --bs-app-sidebar-gap-top: 0px;
+ --bs-app-sidebar-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-stacked=true] {
+ --bs-app-sidebar-width: calc(var(--bs-app-sidebar-primary-width) + var(--bs-app-sidebar-secondary-width, 0));
+ }
+ [data-kt-app-sidebar-minimize-mobile=on] {
+ --bs-app-sidebar-width: 75px;
+ --bs-app-sidebar-gap-start: 0px;
+ --bs-app-sidebar-gap-end: 0px;
+ --bs-app-sidebar-gap-top: 0px;
+ --bs-app-sidebar-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-collapse-mobile=on] {
+ --bs-app-sidebar-width: 0px;
+ }
+ [data-kt-app-sidebar-stacked=true] .app-sidebar {
+ align-items: stretch;
+ }
+ [data-kt-app-sidebar-minimize-mobile=on] .app-sidebar {
+ transition: width 0.3s ease;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-hoverable-mobile=true] .app-sidebar .app-sidebar-wrapper {
+ width: var(--bs-app-sidebar-width-actual);
+ }
+ [data-kt-app-sidebar-hoverable-mobile=true][data-kt-app-sidebar-minimize-mobile=on] .app-sidebar:hover:not(.animating) {
+ transition: width 0.3s ease;
+ width: var(--bs-app-sidebar-width-actual);
+ box-shadow: var(--bs-app-sidebar-minimize-hover-box-shadow-mobile);
+ }
+ [data-kt-app-sidebar-collapse-mobile=on] .app-sidebar {
+ transition: width 0.3s ease;
+ width: var(--bs-app-sidebar-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-width-actual));
+ }
+ [data-kt-app-sidebar-minimize-mobile=on] .app-sidebar-minimize-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-minimize-mobile=on] .app-sidebar-minimize-mobile-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-collapse-mobile=on] .app-sidebar-collapse-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-collapse-mobile=on] .app-sidebar-collapse-mobile-d-flex {
+ display: flex !important;
+ }
+}
+.app-sidebar-primary {
+ transition: none;
+ position: relative;
+ flex-shrink: 0;
+ background-color: var(--bs-app-sidebar-primary-base-bg-color);
+ box-shadow: var(--bs-app-sidebar-primary-base-box-shadow);
+ border-left: var(--bs-app-sidebar-primary-base-border-start);
+ border-right: var(--bs-app-sidebar-primary-base-border-end);
+}
+
+.app-sidebar-primary-collapse-d-flex,
+.app-sidebar-primary-minimize-d-flex,
+.app-sidebar-primary-collapse-mobile-d-flex,
+.app-sidebar-primary-minimize-mobile-d-flex {
+ display: none;
+}
+
+@media (min-width: 992px) {
+ .app-sidebar-primary {
+ z-index: 1;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-sidebar-primary-width-actual: 100px;
+ }
+ [data-kt-app-sidebar-stacked=true] {
+ --bs-app-sidebar-primary-width: 100px;
+ --bs-app-sidebar-primary-gap-start: 0px;
+ --bs-app-sidebar-primary-gap-end: 0px;
+ --bs-app-sidebar-primary-gap-top: 0px;
+ --bs-app-sidebar-primary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-primary-minimize=on] {
+ --bs-app-sidebar-primary-width: 75px;
+ --bs-app-sidebar-primary-gap-start: 0px;
+ --bs-app-sidebar-primary-gap-end: 0px;
+ --bs-app-sidebar-primary-gap-top: 0px;
+ --bs-app-sidebar-primary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-primary-collapse=on] {
+ --bs-app-sidebar-primary-width: 0px;
+ }
+ .app-sidebar-primary {
+ width: var(--bs-app-sidebar-primary-width);
+ }
+ [data-kt-app-sidebar-primary-collapse=on] .app-sidebar-primary {
+ transition: none;
+ width: var(--bs-app-sidebar-primary-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-primary-width-actual));
+ }
+ [data-kt-app-sidebar-primary-minimize=on] .app-sidebar-primary {
+ transition: none;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-primary-hoverable=true] .app-sidebar-primary .app-sidebar-primary-hoverable {
+ width: var(--bs-app-sidebar-primary-width-actual);
+ }
+ [data-kt-app-sidebar-primary-hoverable=true][data-kt-app-sidebar-primary-minimize=on] .app-sidebar-primary:hover:not(.animating) {
+ transition: none;
+ width: var(--bs-app-sidebar-primary-width-actual);
+ box-shadow: var(--bs-app-sidebar-primary-minimize-hover-box-shadow);
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-header-fixed=true][data-kt-app-sidebar-primary-below-header=true] .app-sidebar-primary {
+ top: var(--bs-app-header-height);
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true][data-kt-app-sidebar-primary-below-toolbar=true] .app-sidebar-primary {
+ top: calc(var(--bs-app-header-height) + var(--bs-app-toolbar-height, 0));
+ }
+ [data-kt-app-sidebar-primary-minimize=on] .app-sidebar-primary-minimize-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-primary-minimize=on] .app-sidebar-primary-minimize-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-primary-collapse=on] .app-sidebar-primary-collapse-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-primary-collapse=on] .app-sidebar-primary-collapse-d-flex {
+ display: flex !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .app-sidebar-primary {
+ z-index: 1;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-sidebar-primary-width-actual: 100px;
+ }
+ [data-kt-app-sidebar-stacked=true] {
+ --bs-app-sidebar-primary-width: 100px;
+ --bs-app-sidebar-primary-gap-start: 0px;
+ --bs-app-sidebar-primary-gap-end: 0px;
+ --bs-app-sidebar-primary-gap-top: 0px;
+ --bs-app-sidebar-primary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-primary-minimize-mobile=on] {
+ --bs-app-sidebar-primary-width: 75px;
+ --bs-app-sidebar-primary-gap-start: 0px;
+ --bs-app-sidebar-primary-gap-end: 0px;
+ --bs-app-sidebar-primary-gap-top: 0px;
+ --bs-app-sidebar-primary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-primary-collapse-mobile=on] {
+ --bs-app-sidebar-primary-width: 0px;
+ }
+ .app-sidebar-primary {
+ width: var(--bs-app-sidebar-primary-width);
+ }
+ [data-kt-app-sidebar-primary-collapse-mobile=on] .app-sidebar-primary {
+ transition: none;
+ width: var(--bs-app-sidebar-primary-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-primary-width-actual));
+ }
+ [data-kt-app-sidebar-primary-minimize-mobile=on] .app-sidebar-primary {
+ transition: none;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-primary-hoverable-mobile=true] .app-sidebar-primary .app-sidebar-primary-hoverable {
+ width: var(--bs-app-sidebar-primary-width-actual);
+ }
+ [data-kt-app-sidebar-primary-hoverable-mobile=true][data-kt-app-sidebar-primary-minimize-mobile=on] .app-sidebar-primary:hover:not(.animating) {
+ transition: none;
+ width: var(--bs-app-sidebar-primary-width-actual);
+ box-shadow: var(--bs-app-sidebar-primary-minimize-hover-box-shadow-mobile);
+ }
+ [data-kt-app-sidebar-primary-minimize-mobile=on] .app-sidebar-primary-minimize-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-primary-minimize-mobile=on] .app-sidebar-primary-minimize-mobile-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-primary-collapse-mobile=on] .app-sidebar-primary-collapse-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-primary-collapse-mobile=on] .app-sidebar-primary-collapse-mobile-d-flex {
+ display: flex !important;
+ }
+}
+.app-sidebar-secondary {
+ transition: width 0.3s ease, margin 0.3s ease;
+ position: relative;
+ flex-shrink: 0;
+ background-color: var(--bs-app-sidebar-secondary-base-bg-color);
+ box-shadow: var(--bs-app-sidebar-secondary-base-box-shadow);
+ border-left: var(--bs-app-sidebar-secondary-base-border-start);
+ border-right: var(--bs-app-sidebar-secondary-base-border-end);
+}
+
+.app-sidebar-secondary-collapse-d-flex,
+.app-sidebar-secondary-minimize-d-flex,
+.app-sidebar-secondary-collapse-mobile-d-flex,
+.app-sidebar-secondary-minimize-mobile-d-flex {
+ display: none;
+}
+
+@media (min-width: 992px) {
+ .app-sidebar-secondary {
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true] {
+ --bs-app-sidebar-secondary-width-actual: calc(
+ 265px -
+ 100px -
+ 0px -
+ 0px -
+ 0px -
+ 0px
+ );
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-stacked=true] {
+ --bs-app-sidebar-secondary-width: calc(
+ 265px -
+ 100px -
+ 0px -
+ 0px -
+ 0px -
+ 0px
+ );
+ --bs-app-sidebar-secondary-gap-start: 0px;
+ --bs-app-sidebar-secondary-gap-end: 0px;
+ --bs-app-sidebar-secondary-gap-top: 0px;
+ --bs-app-sidebar-secondary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-minimize=on] {
+ --bs-app-sidebar-secondary-width: 75px;
+ --bs-app-sidebar-secondary-gap-start: 0px;
+ --bs-app-sidebar-secondary-gap-end: 0px;
+ --bs-app-sidebar-secondary-gap-top: 0px;
+ --bs-app-sidebar-secondary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-collapse=on] {
+ --bs-app-sidebar-secondary-width-actual: calc(
+ 265px -
+ 100px -
+ 0px -
+ 0px -
+ 0px -
+ 0px
+ );
+ --bs-app-sidebar-secondary-width: 0px;
+ }
+ .app-sidebar-secondary {
+ width: var(--bs-app-sidebar-secondary-width);
+ }
+ [data-kt-app-sidebar-secondary-collapse=on] .app-sidebar-secondary {
+ transition: width 0.3s ease, margin 0.3s ease;
+ width: var(--bs-app-sidebar-secondary-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-secondary-width-actual));
+ }
+ [data-kt-app-sidebar-secondary-minimize=on] .app-sidebar-secondary {
+ transition: width 0.3s ease, margin 0.3s ease;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-hoverable=true] .app-sidebar-secondary .app-sidebar-secondary-hoverable {
+ width: var(--bs-app-sidebar-secondary-width-actual);
+ }
+ [data-kt-app-sidebar-secondary-hoverable=true][data-kt-app-sidebar-secondary-minimize=on] .app-sidebar-secondary:hover:not(.animating) {
+ transition: width 0.3s ease, margin 0.3s ease;
+ width: var(--bs-app-sidebar-secondary-width-actual);
+ box-shadow: var(--bs-app-sidebar-secondary-minimize-hover-box-shadow);
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-header-fixed=true][data-kt-app-sidebar-secondary-below-header=true] .app-sidebar-secondary {
+ top: var(--bs-app-header-height);
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true][data-kt-app-sidebar-secondary-below-toolbar=true] .app-sidebar-secondary {
+ top: calc(var(--bs-app-header-height) + var(--bs-app-toolbar-height, 0));
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-minimize=on] .app-sidebar-secondary-minimize-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-minimize=on] .app-sidebar-secondary-minimize-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-collapse=on] .app-sidebar-secondary-collapse-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-collapse=on] .app-sidebar-secondary-collapse-d-flex {
+ display: flex !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .app-sidebar-secondary {
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true] {
+ --bs-app-sidebar-secondary-width-actual: calc(
+ 250px -
+ 100px -
+ 0px -
+ 0px -
+ 0px -
+ 0px
+ );
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-stacked=true] {
+ --bs-app-sidebar-secondary-width: calc(
+ 250px -
+ 100px -
+ 0px -
+ 0px -
+ 0px -
+ 0px
+ );
+ --bs-app-sidebar-secondary-gap-start: 0px;
+ --bs-app-sidebar-secondary-gap-end: 0px;
+ --bs-app-sidebar-secondary-gap-top: 0px;
+ --bs-app-sidebar-secondary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-minimize-mobile=on] {
+ --bs-app-sidebar-secondary-width: 75px;
+ --bs-app-sidebar-secondary-gap-start: 0px;
+ --bs-app-sidebar-secondary-gap-end: 0px;
+ --bs-app-sidebar-secondary-gap-top: 0px;
+ --bs-app-sidebar-secondary-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-collapse-mobile=on] {
+ --bs-app-sidebar-secondary-width-actual: calc(
+ 250px -
+ 100px -
+ 0px -
+ 0px -
+ 0px -
+ 0px
+ );
+ --bs-app-sidebar-secondary-width: 0px;
+ }
+ .app-sidebar-secondary {
+ width: var(--bs-app-sidebar-secondary-width);
+ }
+ [data-kt-app-sidebar-secondary-collapse-mobile=on] .app-sidebar-secondary {
+ transition: width 0.3s ease, margin 0.3s ease;
+ width: var(--bs-app-sidebar-secondary-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-secondary-width-actual));
+ }
+ [data-kt-app-sidebar-secondary-minimize-mobile=on] .app-sidebar-secondary {
+ transition: width 0.3s ease, margin 0.3s ease;
+ background-color: var(--bs-app-sidebar-secondary-minimize-bg-color-mobile);
+ box-shadow: var(--bs-app-sidebar-secondary-minimize-box-shadow-mobile);
+ border-left: var(--bs-app-sidebar-secondary-minimize-border-start-mobile);
+ border-right: var(--bs-app-sidebar-secondary-minimize-border-end-mobile);
+ }
+ [data-kt-app-sidebar-secondary-hoverable-mobile=true] .app-sidebar-secondary .app-sidebar-secondary-hoverable {
+ width: var(--bs-app-sidebar-secondary-width-actual);
+ }
+ [data-kt-app-sidebar-secondary-hoverable-mobile=true][data-kt-app-sidebar-secondary-minimize-mobile=on] .app-sidebar-secondary:hover:not(.animating) {
+ transition: width 0.3s ease, margin 0.3s ease;
+ width: var(--bs-app-sidebar-secondary-width-actual);
+ box-shadow: var(--bs-app-sidebar-secondary-minimize-hover-box-shadow-mobile);
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-minimize-mobile=on] .app-sidebar-secondary-minimize-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-minimize-mobile=on] .app-sidebar-secondary-minimize-mobile-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-collapse=on] .app-sidebar-secondary-collapse-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-secondary-enabled=true][data-kt-app-sidebar-secondary-collapse=on] .app-sidebar-secondary-collapse-mobile-d-flex {
+ display: flex !important;
+ }
+}
+.app-sidebar-panel {
+ transition: none;
+ background-color: var(--bs-app-sidebar-panel-base-bg-color);
+ box-shadow: var(--bs-app-sidebar-panel-base-box-shadow);
+ border-left: var(--bs-app-sidebar-panel-base-border-start);
+ border-right: var(--bs-app-sidebar-panel-base-border-end);
+}
+
+.app-sidebar-panel-minimize-d-flex,
+.app-sidebar-panel-sticky-d-flex,
+.app-sidebar-panel-collapse-d-flex,
+.app-sidebar-panel-minimize-mobile-d-flex,
+.app-sidebar-panel-collapse-mobile-d-flex {
+ display: none;
+}
+
+@media (min-width: 992px) {
+ .app-sidebar-panel {
+ display: flex;
+ flex-shrink: 0;
+ width: var(--bs-app-sidebar-panel-width);
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-sidebar-panel-width: 300px;
+ --bs-app-sidebar-panel-width-actual: 300px;
+ --bs-app-sidebar-panel-gap-start: 0px;
+ --bs-app-sidebar-panel-gap-end: 0px;
+ --bs-app-sidebar-panel-gap-top: 0px;
+ --bs-app-sidebar-panel-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-minimize=on] {
+ --bs-app-sidebar-panel-width: 75px;
+ --bs-app-sidebar-panel-gap-start: 0px;
+ --bs-app-sidebar-panel-gap-end: 0px;
+ --bs-app-sidebar-panel-gap-top: 0px;
+ --bs-app-sidebar-panel-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-sticky=on] {
+ --bs-app-sidebar-panel-width: 300px;
+ --bs-app-sidebar-panel-gap-start: 0px;
+ --bs-app-sidebar-panel-gap-end: 0px;
+ --bs-app-sidebar-panel-gap-top: 0px;
+ --bs-app-sidebar-panel-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-collapse=on] {
+ --bs-app-sidebar-panel-width-actual: 300px;
+ --bs-app-sidebar-panel-width: 0px;
+ }
+ [data-kt-app-sidebar-panel-static=true] .app-sidebar-panel {
+ position: relative;
+ }
+ [data-kt-app-sidebar-panel-offcanvas=true] .app-sidebar-panel {
+ display: none;
+ }
+ [data-kt-app-sidebar-panel-fixed=true] .app-sidebar-panel {
+ z-index: 104;
+ position: fixed;
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ top: 0;
+ bottom: 0;
+ }
+ [data-kt-app-sidebar-panel-sticky=on] .app-sidebar-panel {
+ position: fixed;
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ top: 0;
+ bottom: 0;
+ transition: none;
+ z-index: 104;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-minimize=on] .app-sidebar-panel {
+ transition: none;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-hoverable=true] .app-sidebar-panel .app-sidebar-panel-hoverable {
+ width: var(--bs-app-sidebar-panel-width-actual);
+ }
+ [data-kt-app-sidebar-panel-hoverable=true][data-kt-app-sidebar-panel-minimize=on] .app-sidebar-panel:hover:not(.animating) {
+ transition: none;
+ width: var(--bs-app-sidebar-panel-width-actual);
+ box-shadow: var(--bs-app-sidebar-panel-minimize-hover-box-shadow);
+ }
+ [data-kt-app-sidebar-panel-collapse=on] .app-sidebar-panel {
+ transition: none;
+ width: var(--bs-app-sidebar-panel-width-actual);
+ margin-left: calc(-1 * (var(--bs-app-sidebar-panel-width-actual) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px)));
+ }
+ [data-kt-app-sidebar-panel-fixed=true][data-kt-app-header-fixed=true]:not([data-kt-app-sidebar-panel-push-header=true]) .app-sidebar-panel {
+ top: var(--bs-app-header-height);
+ }
+ [data-kt-app-sidebar-panel-fixed=true][data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true]:not([data-kt-app-sidebar-panel-push-toolbar=true]) .app-sidebar-panel {
+ top: calc(var(--bs-app-header-height) + var(--bs-app-toolbar-height, 0));
+ }
+ [data-kt-app-sidebar-panel-minimize=on] .app-sidebar-panel-minimize-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-panel-minimize=on] .app-sidebar-panel-minimize-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-panel-sticky=on] .app-sidebar-panel-sticky-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-panel-sticky=on] .app-sidebar-panel-sticky-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-panel-collapse=on] .app-sidebar-panel-collapse-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-panel-collapse=on] .app-sidebar-panel-collapse-d-flex {
+ display: flex !important;
+ }
+}
+@media (max-width: 991.98px) {
+ .app-sidebar-panel {
+ display: none;
+ width: var(--bs-app-sidebar-panel-width);
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-sidebar-panel-gap-start: 0px;
+ --bs-app-sidebar-panel-gap-end: 0px;
+ --bs-app-sidebar-panel-gap-top: 0px;
+ --bs-app-sidebar-panel-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-minimize-mobile=on] {
+ --bs-app-sidebar-panel-width: 75px;
+ --bs-app-sidebar-panel-gap-start: 0px;
+ --bs-app-sidebar-panel-gap-end: 0px;
+ --bs-app-sidebar-panel-gap-top: 0px;
+ --bs-app-sidebar-panel-gap-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-collapse-mobile=on] {
+ --bs-app-sidebar-panel-width-actual: 300px;
+ --bs-app-sidebar-panel-width: 0px;
+ }
+ [data-kt-app-sidebar-panel-minimize-mobile=on] .app-sidebar-panel {
+ transition: none;
+ background-color: var(--bs-app-sidebar-panel-minimize-bg-color-mobile);
+ box-shadow: var(--bs-app-sidebar-panel-minimize-box-shadow-mobile);
+ border-left: var(--bs-app-sidebar-panel-minimize-border-start-mobile);
+ border-right: var(--bs-app-sidebar-panel-minimize-border-end-mobile);
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-sidebar-panel-hoverable-mobile=true] .app-sidebar-panel .app-sidebar-panel-hoverable {
+ width: var(--bs-app-sidebar-panel-width-actual);
+ }
+ [data-kt-app-sidebar-panel-hoverable-mobile=true][data-kt-app-sidebar-panel-minimize-mobile=on] .app-sidebar-panel:hover:not(.animating) {
+ transition: none;
+ width: var(--bs-app-sidebar-panel-width-actual);
+ box-shadow: var(--bs-app-sidebar-panel-minimize-hover-box-shadow-mobile);
+ }
+ [data-kt-app-sidebar-panel-collapse-mobile=on] .app-sidebar-panel {
+ transition: none;
+ width: var(--bs-app-sidebar-panel-width-actual);
+ margin-left: calc(-1 * var(--bs-app-sidebar-panel-width-actual));
+ }
+ [data-kt-app-sidebar-panel-minimize-mobile=on] .app-sidebar-panel-minimize-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-panel-minimize-mobile=on] .app-sidebar-panel-minimize-mobile-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-sidebar-panel-collapse-mobile=on] .app-sidebar-panel-collapse-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-sidebar-panel-collapse-mobile=on] .app-sidebar-panel-collapse-mobile-d-flex {
+ display: flex !important;
+ }
+}
+.app-aside {
+ transition: none;
+ background-color: var(--bs-app-aside-base-bg-color);
+ box-shadow: var(--bs-app-aside-base-box-shadow);
+ border-left: var(--bs-app-aside-base-border-left);
+ border-right: var(--bs-app-aside-base-border-right);
+}
+
+.app-aside-minimize-d-flex,
+.app-aside-sticky-d-flex,
+.app-aside-collapse-d-flex,
+.app-aside-minimize-mobile-d-flex,
+.app-aside-collapse-mobile-d-flex {
+ display: none;
+}
+
+@media (min-width: 992px) {
+ .app-aside {
+ display: flex;
+ flex-shrink: 0;
+ width: var(--bs-app-aside-width);
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-aside-width: 300px;
+ --bs-app-aside-width-actual: 300px;
+ --bs-app-aside-gap-start: 0px;
+ --bs-app-aside-gap-end: 0px;
+ --bs-app-aside-gap-top: 0px;
+ --bs-app-aside-gap-bottom: 0px;
+ }
+ [data-kt-app-aside-stacked=true] {
+ --bs-app-aside-width: calc(var(--bs-app-aside-primary-width) + var(--bs-app-aside-secondary-width));
+ }
+ [data-kt-app-aside-minimize=on] {
+ --bs-app-aside-width: 75px;
+ --bs-app-aside-gap-start: 0px;
+ --bs-app-aside-gap-end: 0px;
+ --bs-app-aside-gap-top: 0px;
+ --bs-app-aside-gap-bottom: 0px;
+ }
+ [data-kt-app-aside-sticky=on] {
+ --bs-app-aside-width: 300px;
+ --bs-app-aside-gap-start: 0px;
+ --bs-app-aside-gap-end: 0px;
+ --bs-app-aside-gap-top: 0px;
+ --bs-app-aside-gap-bottom: 0px;
+ }
+ [data-kt-app-aside-collapse=on] {
+ --bs-app-aside-width: 0px;
+ }
+ [data-kt-app-aside-static=true] .app-aside {
+ position: relative;
+ }
+ [data-kt-app-aside-offcanvas=true] .app-aside {
+ display: none;
+ }
+ [data-kt-app-aside-fixed=true] .app-aside {
+ position: fixed;
+ z-index: 105;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ }
+ [data-kt-app-aside-stacked=true] .app-aside {
+ align-items: stretch;
+ }
+ [data-kt-app-aside-sticky=on] .app-aside {
+ position: fixed;
+ transition: none;
+ box-shadow: var(--bs-app-aside-sticky-box-shadow);
+ border-left: var(--bs-aside-sticky-border-start);
+ border-right: var(--bs-app-aside-sticky-border-end);
+ top: auto;
+ bottom: auto;
+ left: auto;
+ z-index: 105;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-aside-minimize=on] .app-aside {
+ transition: none;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-aside-hoverable=true] .app-aside .app-aside-wrapper {
+ width: var(--bs-app-aside-width-actual);
+ }
+ [data-kt-app-aside-hoverable=true][data-kt-app-aside-minimize=on] .app-aside:hover:not(.animating) {
+ transition: none;
+ width: var(--bs-app-aside-width-actual);
+ box-shadow: var(--bs-app-aside-minimize-hover-box-shadow);
+ }
+ [data-kt-app-aside-collapse=on] .app-aside {
+ transition: none;
+ width: var(--bs-app-aside-width-actual);
+ margin-right: calc(-1 * var(--bs-app-aside-width-actual));
+ }
+ [data-kt-app-aside-minimize=on] .app-aside-minimize-d-none {
+ display: none !important;
+ }
+ [data-kt-app-aside-minimize=on] .app-aside-minimize-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-aside-sticky=on] .app-aside-sticky-d-none {
+ display: none !important;
+ }
+ [data-kt-app-aside-sticky=on] .app-aside-sticky-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-aside-collapse=on] .app-aside-collapse-d-none {
+ display: none !important;
+ }
+ [data-kt-app-aside-collapse=on] .app-aside-collapse-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-aside-fixed=true][data-kt-app-header-fixed=true]:not([data-kt-app-aside-push-header=true]) .app-aside {
+ top: var(--bs-app-header-height);
+ }
+ [data-kt-app-aside-fixed=true][data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true]:not([data-kt-app-aside-push-toolbar=true]) .app-aside {
+ top: calc(var(--bs-app-header-height) + var(--bs-app-toolbar-height, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ .app-aside {
+ display: none;
+ width: var(--bs-app-aside-width);
+ z-index: 106;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ :root {
+ --bs-app-aside-width: 275px;
+ --bs-app-aside-width-actual: 275px;
+ --bs-app-aside-gap-start: 0px;
+ --bs-app-aside-gap-end: 0px;
+ --bs-app-aside-gap-top: 0px;
+ --bs-app-aside-gap-bottom: 0px;
+ }
+ [data-kt-app-aside-minimize-mobile=on] {
+ --bs-app-aside-width: 75px;
+ --bs-app-aside-gap-start: 0px;
+ --bs-app-aside-gap-end: 0px;
+ --bs-app-aside-gap-top: 0px;
+ --bs-app-aside-gap-bottom: 0px;
+ }
+ [data-kt-app-aside-collapse-mobile=on] {
+ --bs-app-aside-width: 0px;
+ }
+ [data-kt-app-aside-stacked=true] .app-aside {
+ align-items: stretch;
+ }
+ [data-kt-app-aside-minimize-mobile=on] .app-aside {
+ transition: none;
+ margin-left: 0px;
+ margin-right: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ }
+ [data-kt-app-aside-hoverable-mobile=true] .app-aside .app-aside-wrapper {
+ width: var(--bs-app-aside-width-actual);
+ }
+ [data-kt-app-aside-hoverable-mobile=true][data-kt-app-aside-minimize-mobile=on] .app-aside:hover:not(.animating) {
+ transition: none;
+ width: var(--bs-app-aside-width-actual);
+ box-shadow: var(--bs-app-aside-minimize-hover-box-shadow-mobile);
+ }
+ [data-kt-app-aside-collapse-mobile=on] .app-aside {
+ transition: none;
+ width: var(--bs-app-aside-width-actual);
+ margin-right: calc(-1 * var(--bs-app-aside-width-actual));
+ }
+ [data-kt-app-aside-minimize-mobile=on] .app-aside-minimize-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-aside-minimize-mobile=on] .app-aside-minimize-mobile-d-flex {
+ display: flex !important;
+ }
+ [data-kt-app-aside-collapse-mobile=on] .app-aside-collapse-mobile-d-none {
+ display: none !important;
+ }
+ [data-kt-app-aside-collapse-mobile=on] .app-aside-collapse-mobile-d-flex {
+ display: flex !important;
+ }
+}
+.app-wrapper {
+ display: flex;
+}
+
+@media (min-width: 992px) {
+ .app-wrapper {
+ transition: margin-left 0.3s ease, margin-right 0.3s ease;
+ }
+ [data-kt-app-header-sticky=on] .app-wrapper {
+ margin-top: var(--bs-app-header-height-actual);
+ }
+ [data-kt-app-header-fixed=true] .app-wrapper {
+ margin-top: var(--bs-app-header-height);
+ }
+ [data-kt-app-toolbar-sticky=on] .app-wrapper {
+ margin-top: var(--bs-app-toolbar-height);
+ }
+ [data-kt-app-header-fixed=true][data-kt-app-toolbar-sticky=on] .app-wrapper {
+ margin-top: calc(var(--bs-app-header-height-actual) + var(--bs-app-toolbar-height-actual));
+ }
+ [data-kt-app-header-fixed=true][data-kt-app-toolbar-fixed=true] .app-wrapper {
+ margin-top: calc(var(--bs-app-header-height) + var(--bs-app-toolbar-height));
+ }
+ [data-kt-app-sidebar-fixed=true] .app-wrapper {
+ margin-left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-sidebar-panel-fixed=true] .app-wrapper {
+ margin-left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+ [data-kt-app-aside-fixed=true] .app-wrapper {
+ margin-right: calc(var(--bs-app-aside-width) + var(--bs-app-aside-gap-start, 0px) + var(--bs-app-aside-gap-end, 0px));
+ }
+ [data-kt-app-footer-fixed=true] .app-wrapper {
+ margin-bottom: var(--bs-app-footer-height);
+ }
+}
+@media (max-width: 991.98px) {
+ .app-wrapper {
+ transition: margin-left 0.3s ease, margin-right 0.3s ease;
+ }
+ [data-kt-app-header-sticky=on] .app-wrapper {
+ margin-top: var(--bs-app-header-height-actual);
+ }
+ [data-kt-app-header-fixed-mobile=true] .app-wrapper {
+ margin-top: var(--bs-app-header-height);
+ }
+ [data-kt-app-header-fixed-mobile=true][data-kt-app-toolbar-sticky=on] .app-wrapper {
+ margin-top: calc(var(--bs-app-header-height-actual) + var(--bs-app-toolbar-height-actual));
+ }
+ [data-kt-app-footer-fixed-mobile=true] .app-wrapper {
+ margin-bottom: var(--bs-app-footer-height);
+ }
+}
+.app-main {
+ display: flex;
+}
+
+@media (min-width: 992px) {
+ .app-main {
+ transition: margin 0.3s ease;
+ }
+ [data-kt-app-sidebar-sticky=true] .app-main {
+ margin-left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-sidebar-panel-sticky=true] .app-main {
+ margin-left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+ [data-kt-app-aside-sticky=true] .app-main {
+ margin-right: calc(var(--bs-app-aside-width) + var(--bs-app-aside-gap-start, 0px) + var(--bs-app-aside-gap-end, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ .app-main {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+@media (min-width: 992px) {
+ .app-content {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+@media (max-width: 991.98px) {
+ .app-content {
+ max-width: none;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+.app-footer {
+ transition: left 0.3s ease, right 0.3s ease;
+ display: flex;
+ align-items: center;
+ background-color: var(--bs-app-footer-bg-color);
+ border-top: var(--bs-app-footer-border-top);
+}
+
+@media (min-width: 992px) {
+ :root {
+ --bs-app-footer-height: 60px;
+ }
+ .app-footer {
+ height: var(--bs-app-footer-height);
+ }
+ [data-kt-app-footer-fixed=true] .app-footer {
+ z-index: 100;
+ box-shadow: var(--bs-app-footer-box-shadow);
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ }
+ [data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-footer=true] .app-footer {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px));
+ }
+ [data-kt-app-sidebar-panel-fixed=true][data-kt-app-sidebar-panel-push-footer=true] .app-footer {
+ left: calc(var(--bs-app-sidebar-width) + var(--bs-app-sidebar-gap-start, 0px) + var(--bs-app-sidebar-gap-end, 0px) + var(--bs-app-sidebar-panel-width) + var(--bs-app-sidebar-panel-gap-start, 0px) + var(--bs-app-sidebar-panel-gap-end, 0px));
+ }
+ [data-kt-app-aside-fixed=true][data-kt-app-aside-push-footer=true] .app-footer {
+ right: calc(var(--bs-app-aside-width) + var(--bs-app-aside-gap-start, 0px) + var(--bs-app-aside-gap-end, 0px));
+ }
+}
+@media (max-width: 991.98px) {
+ body {
+ --bs-app-footer-height: auto;
+ }
+ .app-footer {
+ height: var(--bs-app-footer-height);
+ }
+ [data-kt-app-footer-fixed-mobile=true] .app-footer {
+ z-index: 100;
+ box-shadow: var(--bs-app-footer-box-shadow);
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ }
+}
+.app-layout-builder-toggle {
+ position: fixed;
+ z-index: 105;
+ bottom: 40px;
+ right: 50px;
+}
+
+@media (max-width: 991.98px) {
+ .app-layout-builder-toggle {
+ bottom: 20px;
+ right: 40px;
+ }
+}
+[data-bs-theme=light] {
+ --bs-app-header-base-menu-link-bg-color-active: #F4F6FA;
+ --bs-app-header-light-separator-color: #E4E6EF;
+ --bs-app-sidebar-base-toggle-btn-box-shadow: 0px 0px 10px rgba(113, 121, 136, 0.1);
+ --bs-app-sidebar-base-toggle-btn-bg-color: #ffffff;
+ --bs-app-sidebar-light-bg-color: #ffffff;
+ --bs-app-sidebar-light-box-shadow: 0 0 28px 0 rgba(82, 63, 105, 0.05);
+ --bs-app-sidebar-light-separator-color: #E4E6EF;
+ --bs-app-sidebar-light-scrollbar-color: #F4F4F4;
+ --bs-app-sidebar-light-scrollbar-color-hover: #F4F4F4;
+ --bs-app-sidebar-light-menu-heading-color: #B5B5C3;
+ --bs-app-sidebar-light-menu-link-bg-color-active: #F4F6FA;
+ --bs-app-sidebar-light-header-menu-link-bg-color-active: #EAEEF2;
+}
+
+[data-bs-theme=dark] {
+ --bs-app-header-base-menu-link-bg-color-active: #2A2A3C;
+ --bs-app-header-light-separator-color: #2B2B40;
+ --bs-app-sidebar-base-toggle-btn-box-shadow: none;
+ --bs-app-sidebar-base-toggle-btn-bg-color: #2A2A3C;
+ --bs-app-sidebar-light-bg-color: #1e1e2d;
+ --bs-app-sidebar-light-box-shadow: none;
+ --bs-app-sidebar-light-separator-color: #2B2B40;
+ --bs-app-sidebar-light-scrollbar-color: #2B2B40;
+ --bs-app-sidebar-light-scrollbar-color-hover: #2B2B40;
+ --bs-app-sidebar-light-menu-heading-color: #565674;
+ --bs-app-sidebar-light-menu-link-bg-color-active: #2A2A3C;
+ --bs-app-sidebar-light-header-menu-link-bg-color-active: #1b1b29;
+}
+
+@media (min-width: 992px) {
+ .app-sidebar-toggle {
+ box-shadow: var(--bs-app-sidebar-base-toggle-btn-box-shadow) !important;
+ background-color: var(--bs-app-sidebar-base-toggle-btn-bg-color) !important;
+ }
+ .app-sidebar-toggle .active .svg-icon {
+ transform: rotateZ(0deg) !important;
+ }
+ [dir=rtl] .app-sidebar-toggle .svg-icon {
+ transform: rotateZ(180deg);
+ }
+ [dir=rtl] .app-sidebar-toggle.active .svg-icon {
+ transform: rotateZ(0deg) !important;
+ }
+ .app-sidebar-logo {
+ height: var(--bs-app-header-height);
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ position: relative;
+ flex-shrink: 0;
+ }
+ .app-sidebar-menu .menu > .menu-item {
+ margin-left: 0.115rem;
+ }
+}
+@media (max-width: 991.98px) {
+ .app-sidebar-logo {
+ display: none;
+ }
+}
+.app-sidebar-logo-minimize {
+ display: none;
+}
+
+.app-sidebar-footer .btn-custom .btn-icon {
+ display: none;
+}
+
+@media (min-width: 992px) {
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-logo .app-sidebar-logo-default {
+ display: none;
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-logo .app-sidebar-logo-minimize {
+ display: inline-block;
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-wrapper {
+ width: var(--bs-app-sidebar-width-actual);
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-menu .menu-content,
+[data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-menu .menu-title {
+ opacity: 0;
+ transition: opacity 0.3s ease !important;
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-menu .menu-item.show > .menu-sub {
+ height: 0;
+ overflow: hidden;
+ transition: height 0.3s ease !important;
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-footer .btn-custom {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-footer .btn-custom .btn-label {
+ width: 0;
+ display: none;
+ }
+ [data-kt-app-sidebar-minimize=on]:not([data-kt-app-sidebar-hoverable=true]) .app-sidebar .app-sidebar-footer .btn-custom .btn-icon {
+ width: auto;
+ display: block;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-logo .app-sidebar-logo-default {
+ display: none;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-logo .app-sidebar-logo-minimize {
+ display: inline-block;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-wrapper {
+ width: var(--bs-app-sidebar-width-actual);
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-menu .menu-content,
+[data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-menu .menu-title {
+ opacity: 0;
+ transition: opacity 0.3s ease !important;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-menu .menu-item.show > .menu-sub {
+ height: 0;
+ overflow: hidden;
+ transition: height 0.3s ease !important;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-footer .btn-custom {
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-footer .btn-custom .btn-label {
+ width: 0;
+ display: none;
+ }
+ [data-kt-app-sidebar-minimize=on][data-kt-app-sidebar-hoverable=true] .app-sidebar:not(:hover) .app-sidebar-footer .btn-custom .btn-icon {
+ width: auto;
+ display: block;
+ }
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar {
+ background-color: #1e1e2d;
+ border-right: 0 !important;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .hover-scroll-overlay-y {
+ scrollbar-color: #323248 transparent;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .hover-scroll-overlay-y::-webkit-scrollbar-thumb {
+ background-color: #323248;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .hover-scroll-overlay-y::-webkit-scrollbar-corner {
+ background-color: transparent;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .hover-scroll-overlay-y:hover {
+ scrollbar-color: #323248 transparent;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .hover-scroll-overlay-y:hover::-webkit-scrollbar-thumb {
+ background-color: #323248;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .hover-scroll-overlay-y:hover::-webkit-scrollbar-corner {
+ background-color: transparent;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .app-sidebar-logo {
+ border-bottom: 1px dashed #393945;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom {
+ color: #B5B5C3;
+ background-color: rgba(63, 66, 84, 0.35);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom i,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom .svg-icon {
+ color: #B5B5C3;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom.dropdown-toggle:after {
+ color: #B5B5C3;
+}
+.btn-check:checked + [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom, .btn-check:active + [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom, [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom:focus:not(.btn-active), [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom:hover:not(.btn-active), [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom:active:not(.btn-active), [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom.active, [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom.show, .show > [data-kt-app-layout=dark-sidebar] .app-sidebar .btn-custom {
+ color: #B5B5C3;
+ background-color: rgba(63, 66, 84, 0.35) !important;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-heading {
+ color: #646477 !important;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link {
+ color: #9D9DA6;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-title {
+ color: #9D9DA6;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-icon i {
+ color: #C5C5D8;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-bullet .bullet {
+ background-color: #787887;
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: #787887;
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: #787887;
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), [data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, [data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, [data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, [data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, [data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: #2A2A3C;
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-icon .svg-icon,
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+}
+[data-kt-app-layout=dark-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+@media (min-width: 992px) {
+ [data-kt-app-layout=dark-sidebar] .app-sidebar .menu-sub-lg-dropdown {
+ background-color: #1e1e2d;
+ }
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar {
+ background-color: var(--bs-app-sidebar-light-bg-color);
+ border-right: 0 !important;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .hover-scroll-overlay-y {
+ scrollbar-color: var(--bs-app-sidebar-light-scrollbar-color) transparent;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .hover-scroll-overlay-y::-webkit-scrollbar-thumb {
+ background-color: var(--bs-app-sidebar-light-scrollbar-color);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .hover-scroll-overlay-y::-webkit-scrollbar-corner {
+ background-color: transparent;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .hover-scroll-overlay-y:hover {
+ scrollbar-color: var(--bs-app-sidebar-light-scrollbar-color-hover) transparent;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .hover-scroll-overlay-y:hover::-webkit-scrollbar-thumb {
+ background-color: var(--bs-app-sidebar-light-scrollbar-color-hover);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .hover-scroll-overlay-y:hover::-webkit-scrollbar-corner {
+ background-color: transparent;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .app-sidebar-logo {
+ border-bottom: 1px solid var(--bs-app-sidebar-light-separator-color);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu {
+ font-weight: 500;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-heading {
+ color: var(--bs-app-sidebar-light-menu-heading-color) !important;
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link {
+ color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-500);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-500);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), [data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ color: var(--bs-gray-900);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, [data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-gray-900);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, [data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, [data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, [data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-gray-900);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-gray-900);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-gray-900);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-gray-900);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-700);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-700);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-700%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-app-sidebar-light-menu-link-bg-color-active);
+ color: var(--bs-primary);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+[data-kt-app-layout=light-sidebar] .app-sidebar .menu .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+
+[data-kt-app-layout=light-sidebar][data-kt-app-header-fixed=true] .app-header {
+ background-color: var(--bs-app-bg-color);
+ box-shadow: none;
+ border-bottom: 1px dashed var(--bs-app-sidebar-light-separator-color);
+}
+[data-kt-app-layout=light-sidebar][data-kt-app-header-fixed=true] .app-sidebar .app-sidebar-logo {
+ border-bottom: 1px dashed var(--bs-app-sidebar-light-separator-color);
+}
+
+.app-header-menu .menu .menu-item .menu-link {
+ color: var(--bs-gray-700);
+}
+.app-header-menu .menu .menu-item .menu-link .menu-title {
+ color: var(--bs-gray-700);
+}
+.app-header-menu .menu .menu-item .menu-link .menu-icon,
+.app-header-menu .menu .menu-item .menu-link .menu-icon .svg-icon,
+.app-header-menu .menu .menu-item .menu-link .menu-icon i {
+ color: var(--bs-gray-500);
+}
+.app-header-menu .menu .menu-item .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-gray-500);
+}
+.app-header-menu .menu .menu-item .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-gray-500);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-gray-500%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), .app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-active);
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, .app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, .app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+.app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+.app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, .app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, .app-header-menu .menu .menu-item:not(.here) .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.app-header-menu .menu .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.show > .menu-link .menu-icon,
+.app-header-menu .menu .menu-item.show > .menu-link .menu-icon .svg-icon,
+.app-header-menu .menu .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.app-header-menu .menu .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-active);
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.here > .menu-link .menu-icon,
+.app-header-menu .menu .menu-item.here > .menu-link .menu-icon .svg-icon,
+.app-header-menu .menu .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.app-header-menu .menu .menu-item .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-menu-link-bg-color-active);
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item .menu-link.active .menu-title {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item .menu-link.active .menu-icon,
+.app-header-menu .menu .menu-item .menu-link.active .menu-icon .svg-icon,
+.app-header-menu .menu .menu-item .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+}
+.app-header-menu .menu .menu-item .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+}
+.app-header-menu .menu-extended {
+ --bs-menu-link-bg-color-active: rgba(var(--bs-gray-100-rgb), 0.7);
+ --bs-menu-link-bg-color-hover: rgba(var(--bs-gray-100-rgb), 0.7);
+}
+.app-header-menu .menu-extended .menu-custom-icon {
+ background-color: var(--bs-gray-100);
+}
+.app-header-menu .menu-extended .menu-link.active .menu-custom-icon, .app-header-menu .menu-extended .menu-link:hover .menu-custom-icon {
+ background-color: var(--bs-gray-200);
+}
+
+@media (min-width: 992px) {
+ .app-header-menu .menu > .menu-item {
+ margin-right: 0.5rem;
+ }
+ .app-header-menu .menu > .menu-item > .menu-link {
+ padding-top: 0.775rem;
+ padding-bottom: 0.775rem;
+ font-weight: 500;
+ }
+ .app-header-menu .menu > .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-app-header-base-menu-link-bg-color-active);
+ color: var(--bs-primary);
+ }
+ .app-header-menu .menu > .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+ }
+ .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon,
+.app-header-menu .menu > .menu-item.here > .menu-link .menu-icon .svg-icon,
+.app-header-menu .menu > .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+ }
+ .app-header-menu .menu > .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+ }
+ .app-header-menu .menu > .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+}
+@media (max-width: 991.98px) {
+ .app-header .page-title {
+ display: none !important;
+ }
+}
+[data-kt-app-layout=dark-header] .app-header {
+ background-color: #1e1e2d;
+ border-bottom: 0 !important;
+}
+[data-kt-app-layout=dark-header] .app-header .btn-custom {
+ color: #B5B5C3;
+}
+[data-kt-app-layout=dark-header] .app-header .btn-custom i,
+[data-kt-app-layout=dark-header] .app-header .btn-custom .svg-icon {
+ color: #B5B5C3;
+}
+[data-kt-app-layout=dark-header] .app-header .btn-custom.dropdown-toggle:after {
+ color: #B5B5C3;
+}
+.btn-check:checked + [data-kt-app-layout=dark-header] .app-header .btn-custom, .btn-check:active + [data-kt-app-layout=dark-header] .app-header .btn-custom, [data-kt-app-layout=dark-header] .app-header .btn-custom:focus:not(.btn-active), [data-kt-app-layout=dark-header] .app-header .btn-custom:hover:not(.btn-active), [data-kt-app-layout=dark-header] .app-header .btn-custom:active:not(.btn-active), [data-kt-app-layout=dark-header] .app-header .btn-custom.active, [data-kt-app-layout=dark-header] .app-header .btn-custom.show, .show > [data-kt-app-layout=dark-header] .app-header .btn-custom {
+ color: #B5B5C3;
+ background-color: rgba(63, 66, 84, 0.35) !important;
+}
+.btn-check:checked + [data-kt-app-layout=dark-header] .app-header .btn-custom i,
+.btn-check:checked + [data-kt-app-layout=dark-header] .app-header .btn-custom .svg-icon, .btn-check:active + [data-kt-app-layout=dark-header] .app-header .btn-custom i,
+.btn-check:active + [data-kt-app-layout=dark-header] .app-header .btn-custom .svg-icon, [data-kt-app-layout=dark-header] .app-header .btn-custom:focus:not(.btn-active) i,
+[data-kt-app-layout=dark-header] .app-header .btn-custom:focus:not(.btn-active) .svg-icon, [data-kt-app-layout=dark-header] .app-header .btn-custom:hover:not(.btn-active) i,
+[data-kt-app-layout=dark-header] .app-header .btn-custom:hover:not(.btn-active) .svg-icon, [data-kt-app-layout=dark-header] .app-header .btn-custom:active:not(.btn-active) i,
+[data-kt-app-layout=dark-header] .app-header .btn-custom:active:not(.btn-active) .svg-icon, [data-kt-app-layout=dark-header] .app-header .btn-custom.active i,
+[data-kt-app-layout=dark-header] .app-header .btn-custom.active .svg-icon, [data-kt-app-layout=dark-header] .app-header .btn-custom.show i,
+[data-kt-app-layout=dark-header] .app-header .btn-custom.show .svg-icon, .show > [data-kt-app-layout=dark-header] .app-header .btn-custom i,
+.show > [data-kt-app-layout=dark-header] .app-header .btn-custom .svg-icon {
+ color: var(--bs-primary);
+}
+.btn-check:checked + [data-kt-app-layout=dark-header] .app-header .btn-custom.dropdown-toggle:after, .btn-check:active + [data-kt-app-layout=dark-header] .app-header .btn-custom.dropdown-toggle:after, [data-kt-app-layout=dark-header] .app-header .btn-custom:focus:not(.btn-active).dropdown-toggle:after, [data-kt-app-layout=dark-header] .app-header .btn-custom:hover:not(.btn-active).dropdown-toggle:after, [data-kt-app-layout=dark-header] .app-header .btn-custom:active:not(.btn-active).dropdown-toggle:after, [data-kt-app-layout=dark-header] .app-header .btn-custom.active.dropdown-toggle:after, [data-kt-app-layout=dark-header] .app-header .btn-custom.show.dropdown-toggle:after, .show > [data-kt-app-layout=dark-header] .app-header .btn-custom.dropdown-toggle:after {
+ color: var(--bs-primary);
+}
+@media (min-width: 992px) {
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link {
+ color: #9D9DA6;
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link .menu-title {
+ color: #9D9DA6;
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link .menu-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link .menu-icon i {
+ color: #C5C5D8;
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link .menu-bullet .bullet {
+ background-color: #787887;
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: #787887;
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: #787887;
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='%23787887'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here), [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) {
+ transition: color 0.2s ease;
+ background-color: #2A2A3C;
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-title, [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-title {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-icon i, [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon .svg-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-icon i {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-bullet .bullet, [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.hover:not(.here) > .menu-link:not(.disabled):not(.active):not(.here) .menu-arrow:after, [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item:not(.here) > .menu-link:hover:not(.disabled):not(.active):not(.here) .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link {
+ transition: color 0.2s ease;
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link .menu-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.show > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: #2A2A3C;
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: #2A2A3C;
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active .menu-title {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active .menu-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active .menu-icon .svg-icon,
+[data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active .menu-icon i {
+ color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary-inverse);
+ }
+ [data-kt-app-layout=dark-header] .app-header-menu .menu > .menu-item > .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary-inverse);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary-inverse%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+}
+
+@media (min-width: 992px) {
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link {
+ transition: color 0.2s ease;
+ background-color: var(--bs-app-sidebar-light-header-menu-link-bg-color-active);
+ color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link .menu-title {
+ color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link .menu-icon i {
+ color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item.here > .menu-link .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active {
+ transition: color 0.2s ease;
+ background-color: var(--bs-app-sidebar-light-header-menu-link-bg-color-active);
+ color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active .menu-title {
+ color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active .menu-icon,
+[data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active .menu-icon .svg-icon,
+[data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active .menu-icon i {
+ color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active .menu-bullet .bullet {
+ background-color: var(--bs-primary);
+ }
+ [data-kt-app-layout=light-sidebar] .app-header-menu .menu > .menu-item > .menu-link.active .menu-arrow:after {
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M2.72011 2.76429L4.46358 1.02083C4.63618 0.848244 4.63617 0.568419 4.46358 0.395831C4.29099 0.223244 4.01118 0.223244 3.83861 0.395831L1.52904 2.70537C1.36629 2.86808 1.36629 3.13191 1.52904 3.29462L3.83861 5.60419C4.01117 5.77675 4.29099 5.77675 4.46358 5.60419C4.63617 5.43156 4.63617 5.15175 4.46358 4.97919L2.72011 3.23571C2.58994 3.10554 2.58994 2.89446 2.72011 2.76429Z'/%3e%3c/svg%3e");
+ /*rtl:begin:remove*/
+ mask-repeat: no-repeat;
+ mask-position: center;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-position: center;
+ background-color: var(--bs-primary);
+ -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 6' fill='var%28--bs-primary%29'%3e%3cpath d='M3.27989 3.23571L1.53642 4.97917C1.36382 5.15176 1.36383 5.43158 1.53642 5.60417C1.70901 5.77676 1.98882 5.77676 2.16139 5.60417L4.47096 3.29463C4.63371 3.13192 4.63371 2.86809 4.47096 2.70538L2.16139 0.395812C1.98883 0.22325 1.70901 0.22325 1.53642 0.395812C1.36383 0.568437 1.36383 0.84825 1.53642 1.02081L3.27989 2.76429C3.41006 2.89446 3.41006 3.10554 3.27989 3.23571Z'/%3e%3c/svg%3e");
+ /*rtl:end:remove*/
+ }
+}
+
+@media (min-width: 992px) {
+ [data-kt-app-layout=light-sidebar]:not([data-kt-app-header-fixed=true]) .app-header {
+ background-color: transparent;
+ box-shadow: none;
+ border-bottom: 1px solid var(--bs-app-sidebar-light-separator-color);
+ }
+}
+@media (max-width: 991.98px) {
+ [data-kt-app-layout=light-sidebar]:not([data-kt-app-header-fixed-mobile=true]) .app-header {
+ background-color: transparent;
+ box-shadow: none;
+ border-bottom: 1px solid var(--bs-app-sidebar-light-separator-color);
+ }
+}
+@media (min-width: 992px) {
+ [data-kt-app-toolbar-enabled=true]:not([data-kt-app-toolbar-fixed=true]) .app-content {
+ padding-top: 0;
+ }
+}
+@media (max-width: 991.98px) {
+ [data-kt-app-toolbar-enabled=true]:not([data-kt-app-toolbar-fixed-mobile=true]) .app-content {
+ padding-top: 0;
+ }
+}
+:is([data-kt-app-layout=light-sidebar], [data-kt-app-layout=light-header], [data-kt-app-layout=dark-header]) .app-toolbar .form-select.form-select {
+ background-color: var(--bs-body-bg) !important;
+}
+
+@media (min-width: 992px) {
+ body:not([data-kt-app-toolbar-fixed=true]) .app-toolbar {
+ height: auto;
+ background-color: transparent;
+ border-top: 0;
+ border-bottom: 0;
+ box-shadow: none;
+ }
+}
+@media (max-width: 991.98px) {
+ body:not([data-kt-app-toolbar-fixed-mobile=true]) .app-toolbar {
+ height: auto;
+ background-color: transparent;
+ border-top: 0;
+ border-bottom: 0;
+ box-shadow: none;
+ }
+}
+@media (min-width: 992px) {
+ [data-kt-app-layout=dark-header] .app-header .page-heading {
+ color: #ffffff !important;
+ }
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/api-keys/api-keys.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/api-keys/api-keys.js
new file mode 100644
index 0000000..f4743ce
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/api-keys/api-keys.js
@@ -0,0 +1,68 @@
+"use strict";
+
+// Class definition
+var KTAccountAPIKeys = function () {
+ // Private functions
+ var initLicenceCopy = function() {
+ KTUtil.each(document.querySelectorAll('#kt_api_keys_table [data-action="copy"]'), function(button) {
+ var tr = button.closest('tr');
+ var license = KTUtil.find(tr, '[data-bs-target="license"]');
+
+ var clipboard = new ClipboardJS(button, {
+ target: license,
+ text: function() {
+ return license.innerHTML;
+ }
+ });
+
+ clipboard.on('success', function(e) {
+ // Icons
+ var svgIcon = button.querySelector('.svg-icon');
+ var checkIcon = button.querySelector('.bi.bi-check');
+
+ // exit if check icon is already shown
+ if (checkIcon) {
+ return;
+ }
+
+ // Create check icon
+ checkIcon = document.createElement('i');
+ checkIcon.classList.add('bi');
+ checkIcon.classList.add('bi-check');
+ checkIcon.classList.add('fs-2x');
+
+ // Append check icon
+ button.appendChild(checkIcon);
+
+ // Highlight target
+ license.classList.add('text-success');
+
+ // Hide copy icon
+ svgIcon.classList.add('d-none');
+
+ // Set 3 seconds timeout to hide the check icon and show copy icon back
+ setTimeout(function() {
+ // Remove check icon
+ svgIcon.classList.remove('d-none');
+ // Show check icon back
+ button.removeChild(checkIcon);
+
+ // Remove highlight
+ license.classList.remove('text-success');
+ }, 3000);
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initLicenceCopy();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountAPIKeys.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/billing/general.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/billing/general.js
new file mode 100644
index 0000000..f8265fe
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/billing/general.js
@@ -0,0 +1,138 @@
+"use strict";
+
+// Class definition
+var KTAccountBillingGeneral = function () {
+ // Private variables
+ var cancelSubscriptionButton;
+
+ // Private functions
+ var handlePlan = function () {
+ cancelSubscriptionButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ swal.fire({
+ text: "Are you sure you would like to cancel your subscription ?",
+ icon: "warning",
+ buttonsStyling: false,
+ showDenyButton: true,
+ confirmButtonText: "Yes",
+ denyButtonText: 'No',
+ customClass: {
+ confirmButton: "btn btn-primary",
+ denyButton: "btn btn-light-danger"
+ }
+ }).then((result) => {
+ if (result.isConfirmed) {
+ Swal.fire({
+ text: 'Your subscription has been canceled.',
+ icon: 'success',
+ confirmButtonText: "Ok",
+ buttonsStyling: false,
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ })
+ }
+ });
+ });
+ }
+
+ var handleCardDelete = function() {
+ KTUtil.on(document.body, '[data-kt-billing-action="card-delete"]', 'click', function(e) {
+ e.preventDefault();
+
+ var el = this;
+
+ swal.fire({
+ text: "Are you sure you would like to delete selected card ?",
+ icon: "warning",
+ buttonsStyling: false,
+ showDenyButton: true,
+ confirmButtonText: "Yes",
+ denyButtonText: 'No',
+ customClass: {
+ confirmButton: "btn btn-primary",
+ denyButton: "btn btn-light-danger"
+ }
+ }).then((result) => {
+ if (result.isConfirmed) {
+ el.setAttribute('data-kt-indicator', 'on');
+ el.disabled = true;
+
+ setTimeout(function() {
+ Swal.fire({
+ text: 'Your selected card has been successfully deleted',
+ icon: 'success',
+ confirmButtonText: "Ok",
+ buttonsStyling: false,
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ }).then((result) => {
+ el.closest('[data-kt-billing-element="card"]').remove();
+ });
+ }, 2000);
+ }
+ });
+ });
+ }
+
+ var handleAddressDelete = function() {
+ KTUtil.on(document.body, '[data-kt-billing-action="address-delete"]', 'click', function(e) {
+ e.preventDefault();
+
+ var el = this;
+
+ swal.fire({
+ text: "Are you sure you would like to delete selected address ?",
+ icon: "warning",
+ buttonsStyling: false,
+ showDenyButton: true,
+ confirmButtonText: "Yes",
+ denyButtonText: 'No',
+ customClass: {
+ confirmButton: "btn btn-primary",
+ denyButton: "btn btn-light-danger"
+ }
+ }).then((result) => {
+ if (result.isConfirmed) {
+ el.setAttribute('data-kt-indicator', 'on');
+ el.disabled = true;
+
+ setTimeout(function() {
+ Swal.fire({
+ text: 'Your selected address has been successfully deleted',
+ icon: 'success',
+ confirmButtonText: "Ok",
+ buttonsStyling: false,
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ }).then((result) => {
+ el.closest('[data-kt-billing-element="address"]').remove();
+ });
+ }, 2000);
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ cancelSubscriptionButton = document.querySelector('#kt_account_billing_cancel_subscription_btn');
+
+ if ( cancelSubscriptionButton ) {
+ handlePlan();
+ }
+
+ handleCardDelete();
+ handleAddressDelete();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountBillingGeneral.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/orders/classic.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/orders/classic.js
new file mode 100644
index 0000000..143e2e6
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/orders/classic.js
@@ -0,0 +1,108 @@
+"use strict";
+
+// Class definition
+var KTDatatablesClassic = function () {
+ // Private functions
+
+ var initClassic = function () {
+
+ // Set date data order
+ const table = document.getElementById('kt_orders_classic');
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[1].innerHTML, "MMM D, YYYY").format('x');
+ dateRow[1].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ const datatable = $(table).DataTable({
+ "info": false,
+ 'order': []
+ });
+
+ // Filter dropdown elements
+ const filterOrders = document.getElementById('kt_filter_orders');
+ const filterYear = document.getElementById('kt_filter_year');
+
+ // Filter by order status --- official docs reference: https://datatables.net/reference/api/search()
+ filterOrders.addEventListener('change', function (e) {
+ datatable.column(3).search(e.target.value).draw();
+ });
+
+ // Filter by date --- official docs reference: https://momentjs.com/docs/
+ var minDate;
+ var maxDate;
+ filterYear.addEventListener('change', function (e) {
+ const value = e.target.value;
+ switch (value) {
+ case 'thisyear': {
+ minDate = moment().startOf('year').format('x');
+ maxDate = moment().endOf('year').format('x');
+ datatable.draw();
+ break;
+ }
+ case 'thismonth': {
+ minDate = moment().startOf('month').format('x');
+ maxDate = moment().endOf('month').format('x');
+ datatable.draw();
+ break;
+ }
+ case 'lastmonth': {
+ minDate = moment().subtract(1, 'months').startOf('month').format('x');
+ maxDate = moment().subtract(1, 'months').endOf('month').format('x');
+ datatable.draw();
+ break;
+ }
+ case 'last90days': {
+ minDate = moment().subtract(30, 'days').format('x');
+ maxDate = moment().format('x');
+ datatable.draw();
+ break;
+ }
+ default: {
+ minDate = moment().subtract(100, 'years').startOf('month').format('x');
+ maxDate = moment().add(1, 'months').endOf('month').format('x');
+ datatable.draw();
+ break;
+ }
+ }
+ });
+
+ // Date range filter --- offical docs reference: https://datatables.net/examples/plug-ins/range_filtering.html
+ $.fn.dataTable.ext.search.push(
+ function (settings, data, dataIndex) {
+ var min = minDate;
+ var max = maxDate;
+ var date = parseFloat(moment(data[1]).format('x')) || 0; // use data for the age column
+
+ if ((isNaN(min) && isNaN(max)) ||
+ (isNaN(min) && date <= max) ||
+ (min <= date && isNaN(max)) ||
+ (min <= date && date <= max)) {
+ return true;
+ }
+ return false;
+ }
+ );
+
+ // Search --- official docs reference: https://datatables.net/reference/api/search()
+ var filterSearch = document.getElementById('kt_filter_search');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initClassic();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTDatatablesClassic.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/referrals/referral-program.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/referrals/referral-program.js
new file mode 100644
index 0000000..94d09e8
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/referrals/referral-program.js
@@ -0,0 +1,43 @@
+"use strict";
+
+// Class definition
+var KTAccountReferralsReferralProgram = function () {
+ // Private functions
+
+ var initReferralProgrammClipboard = function() {
+ var button = document.querySelector('#kt_referral_program_link_copy_btn');
+ var input = document.querySelector('#kt_referral_link_input');
+ var clipboard = new ClipboardJS(button);
+
+ clipboard.on('success', function(e) {
+ var buttonCaption = button.innerHTML;
+ //Add bgcolor
+ input.classList.add('bg-success');
+ input.classList.add('text-inverse-success');
+
+ button.innerHTML = 'Copied!';
+
+ setTimeout(function() {
+ button.innerHTML = buttonCaption;
+
+ // Remove bgcolor
+ input.classList.remove('bg-success');
+ input.classList.remove('text-inverse-success');
+ }, 3000); // 3seconds
+
+ e.clearSelection();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initReferralProgrammClipboard();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountReferralsReferralProgram.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/security/license-usage.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/security/license-usage.js
new file mode 100644
index 0000000..ac5983c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/security/license-usage.js
@@ -0,0 +1,68 @@
+"use strict";
+
+// Class definition
+var KTAccountSecurityLicenseUsage = function () {
+ // Private functions
+ var initLicenceCopy = function() {
+ KTUtil.each(document.querySelectorAll('#kt_security_license_usage_table [data-action="copy"]'), function(button) {
+ var tr = button.closest('tr');
+ var license = KTUtil.find(tr, '[data-bs-target="license"]');
+
+ var clipboard = new ClipboardJS(button, {
+ target: license,
+ text: function() {
+ return license.innerHTML;
+ }
+ });
+
+ clipboard.on('success', function(e) {
+ // Icons
+ var svgIcon = button.querySelector('.svg-icon');
+ var checkIcon = button.querySelector('.bi.bi-check');
+
+ // exit if check icon is already shown
+ if (checkIcon) {
+ return;
+ }
+
+ // Create check icon
+ checkIcon = document.createElement('i');
+ checkIcon.classList.add('bi');
+ checkIcon.classList.add('bi-check');
+ checkIcon.classList.add('fs-2x');
+
+ // Append check icon
+ button.appendChild(checkIcon);
+
+ // Highlight target
+ license.classList.add('text-success');
+
+ // Hide copy icon
+ svgIcon.classList.add('d-none');
+
+ // Set 3 seconds timeout to hide the check icon and show copy icon back
+ setTimeout(function() {
+ // Remove check icon
+ svgIcon.classList.remove('d-none');
+ // Show check icon back
+ button.removeChild(checkIcon);
+
+ // Remove highlight
+ license.classList.remove('text-success');
+ }, 3000);
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initLicenceCopy();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountSecurityLicenseUsage.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/security/security-summary.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/security/security-summary.js
new file mode 100644
index 0000000..3a0f586
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/security/security-summary.js
@@ -0,0 +1,155 @@
+"use strict";
+
+// Class definition
+var KTAccountSecuritySummary = function () {
+ // Private functions
+ var initChart = function(tabSelector, chartSelector, data1, data2, initByDefault) {
+ var element = document.querySelector(chartSelector);
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if (!element) {
+ return;
+ }
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: data1
+ }, {
+ name: 'Revenue',
+ data: data2
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'bar',
+ height: height,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ['35%'],
+ borderRadius: 6
+ }
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue('--bs-gray-400'),
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue('--bs-gray-400'),
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ opacity: 1
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [KTUtil.getCssVariableValue('--bs-primary'), KTUtil.getCssVariableValue('--bs-gray-200')],
+ grid: {
+ borderColor: KTUtil.getCssVariableValue('--bs-gray-200'),
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+
+ var init = false;
+ var tab = document.querySelector(tabSelector);
+
+ if (initByDefault === true) {
+ setTimeout(function() {
+ chart.render();
+ init = true;
+ }, 500);
+ }
+
+ tab.addEventListener('shown.bs.tab', function (event) {
+ if (init == false) {
+ chart.render();
+ init = true;
+ }
+ })
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initChart('#kt_security_summary_tab_hours_agents', '#kt_security_summary_chart_hours_agents', [50, 70, 90, 117, 80, 65, 80, 90, 115, 95, 70, 84], [50, 70, 90, 117, 80, 65, 70, 90, 115, 95, 70, 84], true);
+ initChart('#kt_security_summary_tab_hours_clients', '#kt_security_summary_chart_hours_clients', [50, 70, 90, 117, 80, 65, 80, 90, 115, 95, 70, 84], [50, 70, 90, 117, 80, 65, 80, 90, 115, 95, 70, 84], false);
+
+ initChart('#kt_security_summary_tab_day', '#kt_security_summary_chart_day_agents', [50, 70, 80, 100, 90, 65, 80, 90, 115, 95, 70, 84], [50, 70, 90, 117, 60, 65, 80, 90, 100, 95, 70, 84], false);
+ initChart('#kt_security_summary_tab_day_clients', '#kt_security_summary_chart_day_clients', [50, 70, 100, 90, 80, 65, 80, 90, 115, 95, 70, 84], [50, 70, 90, 115, 80, 65, 80, 90, 115, 95, 70, 84], false);
+
+ initChart('#kt_security_summary_tab_week', '#kt_security_summary_chart_week_agents', [50, 70, 75, 117, 80, 65, 80, 90, 115, 95, 50, 84], [50, 60, 90, 117, 80, 65, 80, 90, 115, 95, 70, 84], false);
+ initChart('#kt_security_summary_tab_week_clients', '#kt_security_summary_chart_week_clients', [50, 70, 90, 117, 80, 65, 80, 90, 100, 80, 70, 84], [50, 70, 90, 117, 80, 65, 80, 90, 100, 95, 70, 84], false);
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountSecuritySummary.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/deactivate-account.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/deactivate-account.js
new file mode 100644
index 0000000..08a50ce
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/deactivate-account.js
@@ -0,0 +1,116 @@
+"use strict";
+
+// Class definition
+var KTAccountSettingsDeactivateAccount = function () {
+ // Private variables
+ var form;
+ var validation;
+ var submitButton;
+
+ // Private functions
+ var initValidation = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validation = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ deactivate: {
+ validators: {
+ notEmpty: {
+ message: 'Please check the box to deactivate your account'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ submitButton: new FormValidation.plugins.SubmitButton(),
+ //defaultSubmit: new FormValidation.plugins.DefaultSubmit(), // Uncomment this line to enable normal button submit after form validation
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ var handleForm = function () {
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ validation.validate().then(function (status) {
+ if (status == 'Valid') {
+
+ swal.fire({
+ text: "Are you sure you would like to deactivate your account?",
+ icon: "warning",
+ buttonsStyling: false,
+ showDenyButton: true,
+ confirmButtonText: "Yes",
+ denyButtonText: 'No',
+ customClass: {
+ confirmButton: "btn btn-light-primary",
+ denyButton: "btn btn-danger"
+ }
+ }).then((result) => {
+ if (result.isConfirmed) {
+ Swal.fire({
+ text: 'Your account has been deactivated.',
+ icon: 'success',
+ confirmButtonText: "Ok",
+ buttonsStyling: false,
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ })
+ } else if (result.isDenied) {
+ Swal.fire({
+ text: 'Account not deactivated.',
+ icon: 'info',
+ confirmButtonText: "Ok",
+ buttonsStyling: false,
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ })
+ }
+ });
+
+ } else {
+ swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ form = document.querySelector('#kt_account_deactivate_form');
+
+ if (!form) {
+ return;
+ }
+
+ submitButton = document.querySelector('#kt_account_deactivate_account_submit');
+
+ initValidation();
+ handleForm();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountSettingsDeactivateAccount.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/overview.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/overview.js
new file mode 100644
index 0000000..9c47829
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/overview.js
@@ -0,0 +1,21 @@
+"use strict";
+
+// Class definition
+var KTAccountSettingsOverview = function () {
+ // Private functions
+ var initSettings = function() {
+
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initSettings();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountSettingsOverview.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/profile-details.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/profile-details.js
new file mode 100644
index 0000000..d70ab38
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/profile-details.js
@@ -0,0 +1,155 @@
+"use strict";
+
+// Class definition
+var KTAccountSettingsProfileDetails = function () {
+ // Private variables
+ var form;
+ var submitButton;
+ var validation;
+
+ // Private functions
+ var initValidation = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validation = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ fname: {
+ validators: {
+ notEmpty: {
+ message: 'First name is required'
+ }
+ }
+ },
+ lname: {
+ validators: {
+ notEmpty: {
+ message: 'Last name is required'
+ }
+ }
+ },
+ company: {
+ validators: {
+ notEmpty: {
+ message: 'Company name is required'
+ }
+ }
+ },
+ phone: {
+ validators: {
+ notEmpty: {
+ message: 'Contact phone number is required'
+ }
+ }
+ },
+ country: {
+ validators: {
+ notEmpty: {
+ message: 'Please select a country'
+ }
+ }
+ },
+ timezone: {
+ validators: {
+ notEmpty: {
+ message: 'Please select a timezone'
+ }
+ }
+ },
+ 'communication[]': {
+ validators: {
+ notEmpty: {
+ message: 'Please select at least one communication method'
+ }
+ }
+ },
+ language: {
+ validators: {
+ notEmpty: {
+ message: 'Please select a language'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ submitButton: new FormValidation.plugins.SubmitButton(),
+ //defaultSubmit: new FormValidation.plugins.DefaultSubmit(), // Uncomment this line to enable normal button submit after form validation
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Select2 validation integration
+ $(form.querySelector('[name="country"]')).on('change', function() {
+ // Revalidate the color field when an option is chosen
+ validation.revalidateField('country');
+ });
+
+ $(form.querySelector('[name="language"]')).on('change', function() {
+ // Revalidate the color field when an option is chosen
+ validation.revalidateField('language');
+ });
+
+ $(form.querySelector('[name="timezone"]')).on('change', function() {
+ // Revalidate the color field when an option is chosen
+ validation.revalidateField('timezone');
+ });
+ }
+
+ var handleForm = function () {
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ validation.validate().then(function (status) {
+ if (status == 'Valid') {
+
+ swal.fire({
+ text: "Thank you! You've updated your basic info",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-light-primary"
+ }
+ });
+
+ } else {
+ swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-light-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ form = document.getElementById('kt_account_profile_details_form');
+
+ if (!form) {
+ return;
+ }
+
+ submitButton = form.querySelector('#kt_account_profile_details_submit');
+
+ initValidation();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountSettingsProfileDetails.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/signin-methods.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/signin-methods.js
new file mode 100644
index 0000000..39fc01e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/account/settings/signin-methods.js
@@ -0,0 +1,236 @@
+"use strict";
+
+// Class definition
+var KTAccountSettingsSigninMethods = function () {
+ var signInForm;
+ var signInMainEl;
+ var signInEditEl;
+ var passwordMainEl;
+ var passwordEditEl;
+ var signInChangeEmail;
+ var signInCancelEmail;
+ var passwordChange;
+ var passwordCancel;
+
+ var toggleChangeEmail = function () {
+ signInMainEl.classList.toggle('d-none');
+ signInChangeEmail.classList.toggle('d-none');
+ signInEditEl.classList.toggle('d-none');
+ }
+
+ var toggleChangePassword = function () {
+ passwordMainEl.classList.toggle('d-none');
+ passwordChange.classList.toggle('d-none');
+ passwordEditEl.classList.toggle('d-none');
+ }
+
+ // Private functions
+ var initSettings = function () {
+ if (!signInMainEl) {
+ return;
+ }
+
+ // toggle UI
+ signInChangeEmail.querySelector('button').addEventListener('click', function () {
+ toggleChangeEmail();
+ });
+
+ signInCancelEmail.addEventListener('click', function () {
+ toggleChangeEmail();
+ });
+
+ passwordChange.querySelector('button').addEventListener('click', function () {
+ toggleChangePassword();
+ });
+
+ passwordCancel.addEventListener('click', function () {
+ toggleChangePassword();
+ });
+ }
+
+ var handleChangeEmail = function (e) {
+ var validation;
+
+ if (!signInForm) {
+ return;
+ }
+
+ validation = FormValidation.formValidation(
+ signInForm,
+ {
+ fields: {
+ emailaddress: {
+ validators: {
+ notEmpty: {
+ message: 'Email is required'
+ },
+ emailAddress: {
+ message: 'The value is not a valid email address'
+ }
+ }
+ },
+
+ confirmemailpassword: {
+ validators: {
+ notEmpty: {
+ message: 'Password is required'
+ }
+ }
+ }
+ },
+
+ plugins: { //Learn more: https://formvalidation.io/guide/plugins
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row'
+ })
+ }
+ }
+ );
+
+ signInForm.querySelector('#kt_signin_submit').addEventListener('click', function (e) {
+ e.preventDefault();
+ console.log('click');
+
+ validation.validate().then(function (status) {
+ if (status == 'Valid') {
+ swal.fire({
+ text: "Sent password reset. Please check your email",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn font-weight-bold btn-light-primary"
+ }
+ }).then(function(){
+ signInForm.reset();
+ validation.resetForm(); // Reset formvalidation --- more info: https://formvalidation.io/guide/api/reset-form/
+ toggleChangeEmail();
+ });
+ } else {
+ swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn font-weight-bold btn-light-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ var handleChangePassword = function (e) {
+ var validation;
+
+ // form elements
+ var passwordForm = document.getElementById('kt_signin_change_password');
+
+ if (!passwordForm) {
+ return;
+ }
+
+ validation = FormValidation.formValidation(
+ passwordForm,
+ {
+ fields: {
+ currentpassword: {
+ validators: {
+ notEmpty: {
+ message: 'Current Password is required'
+ }
+ }
+ },
+
+ newpassword: {
+ validators: {
+ notEmpty: {
+ message: 'New Password is required'
+ }
+ }
+ },
+
+ confirmpassword: {
+ validators: {
+ notEmpty: {
+ message: 'Confirm Password is required'
+ },
+ identical: {
+ compare: function() {
+ return passwordForm.querySelector('[name="newpassword"]').value;
+ },
+ message: 'The password and its confirm are not the same'
+ }
+ }
+ },
+ },
+
+ plugins: { //Learn more: https://formvalidation.io/guide/plugins
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row'
+ })
+ }
+ }
+ );
+
+ passwordForm.querySelector('#kt_password_submit').addEventListener('click', function (e) {
+ e.preventDefault();
+ console.log('click');
+
+ validation.validate().then(function (status) {
+ if (status == 'Valid') {
+ swal.fire({
+ text: "Sent password reset. Please check your email",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn font-weight-bold btn-light-primary"
+ }
+ }).then(function(){
+ passwordForm.reset();
+ validation.resetForm(); // Reset formvalidation --- more info: https://formvalidation.io/guide/api/reset-form/
+ toggleChangePassword();
+ });
+ } else {
+ swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn font-weight-bold btn-light-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ signInForm = document.getElementById('kt_signin_change_email');
+ signInMainEl = document.getElementById('kt_signin_email');
+ signInEditEl = document.getElementById('kt_signin_email_edit');
+ passwordMainEl = document.getElementById('kt_signin_password');
+ passwordEditEl = document.getElementById('kt_signin_password_edit');
+ signInChangeEmail = document.getElementById('kt_signin_email_button');
+ signInCancelEmail = document.getElementById('kt_signin_cancel');
+ passwordChange = document.getElementById('kt_signin_password_button');
+ passwordCancel = document.getElementById('kt_password_cancel');
+
+ initSettings();
+ handleChangeEmail();
+ handleChangePassword();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAccountSettingsSigninMethods.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/calendar/calendar.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/calendar/calendar.js
new file mode 100644
index 0000000..7faaf52
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/calendar/calendar.js
@@ -0,0 +1,831 @@
+"use strict";
+
+// Class definition
+var KTAppCalendar = function () {
+ // Shared variables
+ // Calendar variables
+ var calendar;
+ var data = {
+ id: '',
+ eventName: '',
+ eventDescription: '',
+ eventLocation: '',
+ startDate: '',
+ endDate: '',
+ allDay: false
+ };
+
+ // Add event variables
+ var eventName;
+ var eventDescription;
+ var eventLocation;
+ var startDatepicker;
+ var startFlatpickr;
+ var endDatepicker;
+ var endFlatpickr;
+ var startTimepicker;
+ var startTimeFlatpickr;
+ var endTimepicker
+ var endTimeFlatpickr;
+ var modal;
+ var modalTitle;
+ var form;
+ var validator;
+ var addButton;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+
+ // View event variables
+ var viewEventName;
+ var viewAllDay;
+ var viewEventDescription;
+ var viewEventLocation;
+ var viewStartDate;
+ var viewEndDate;
+ var viewModal;
+ var viewEditButton;
+ var viewDeleteButton;
+
+
+ // Private functions
+ var initCalendarApp = function () {
+ // Define variables
+ var calendarEl = document.getElementById('kt_calendar_app');
+ var todayDate = moment().startOf('day');
+ var YM = todayDate.format('YYYY-MM');
+ var YESTERDAY = todayDate.clone().subtract(1, 'day').format('YYYY-MM-DD');
+ var TODAY = todayDate.format('YYYY-MM-DD');
+ var TOMORROW = todayDate.clone().add(1, 'day').format('YYYY-MM-DD');
+
+ // Init calendar --- more info: https://fullcalendar.io/docs/initialize-globals
+ calendar = new FullCalendar.Calendar(calendarEl, {
+ //locale: 'es', // Set local --- more info: https://fullcalendar.io/docs/locale
+ headerToolbar: {
+ left: 'prev,next today',
+ center: 'title',
+ right: 'dayGridMonth,timeGridWeek,timeGridDay'
+ },
+ initialDate: TODAY,
+ navLinks: true, // can click day/week names to navigate views
+ selectable: true,
+ selectMirror: true,
+
+ // Select dates action --- more info: https://fullcalendar.io/docs/select-callback
+ select: function (arg) {
+ formatArgs(arg);
+ handleNewEvent();
+ },
+
+ // Click event --- more info: https://fullcalendar.io/docs/eventClick
+ eventClick: function (arg) {
+ formatArgs({
+ id: arg.event.id,
+ title: arg.event.title,
+ description: arg.event.extendedProps.description,
+ location: arg.event.extendedProps.location,
+ startStr: arg.event.startStr,
+ endStr: arg.event.endStr,
+ allDay: arg.event.allDay
+ });
+
+ handleViewEvent();
+ },
+
+ editable: true,
+ dayMaxEvents: true, // allow "more" link when too many events
+ events: [
+ {
+ id: uid(),
+ title: 'All Day Event',
+ start: YM + '-01',
+ end: YM + '-02',
+ description: 'Toto lorem ipsum dolor sit incid idunt ut',
+ className: "fc-event-danger fc-event-solid-warning",
+ location: 'Federation Square'
+ },
+ {
+ id: uid(),
+ title: 'Reporting',
+ start: YM + '-14T13:30:00',
+ description: 'Lorem ipsum dolor incid idunt ut labore',
+ end: YM + '-14T14:30:00',
+ className: "fc-event-success",
+ location: 'Meeting Room 7.03'
+ },
+ {
+ id: uid(),
+ title: 'Company Trip',
+ start: YM + '-02',
+ description: 'Lorem ipsum dolor sit tempor incid',
+ end: YM + '-03',
+ className: "fc-event-primary",
+ location: 'Seoul, Korea'
+
+ },
+ {
+ id: uid(),
+ title: 'ICT Expo 2021 - Product Release',
+ start: YM + '-03',
+ description: 'Lorem ipsum dolor sit tempor inci',
+ end: YM + '-05',
+ className: "fc-event-light fc-event-solid-primary",
+ location: 'Melbourne Exhibition Hall'
+ },
+ {
+ id: uid(),
+ title: 'Dinner',
+ start: YM + '-12',
+ description: 'Lorem ipsum dolor sit amet, conse ctetur',
+ end: YM + '-13',
+ location: 'Squire\'s Loft'
+ },
+ {
+ id: uid(),
+ title: 'Repeating Event',
+ start: YM + '-09T16:00:00',
+ end: YM + '-09T17:00:00',
+ description: 'Lorem ipsum dolor sit ncididunt ut labore',
+ className: "fc-event-danger",
+ location: 'General Area'
+ },
+ {
+ id: uid(),
+ title: 'Repeating Event',
+ description: 'Lorem ipsum dolor sit amet, labore',
+ start: YM + '-16T16:00:00',
+ end: YM + '-16T17:00:00',
+ location: 'General Area'
+ },
+ {
+ id: uid(),
+ title: 'Conference',
+ start: YESTERDAY,
+ end: TOMORROW,
+ description: 'Lorem ipsum dolor eius mod tempor labore',
+ className: "fc-event-primary",
+ location: 'Conference Hall A'
+ },
+ {
+ id: uid(),
+ title: 'Meeting',
+ start: TODAY + 'T10:30:00',
+ end: TODAY + 'T12:30:00',
+ description: 'Lorem ipsum dolor eiu idunt ut labore',
+ location: 'Meeting Room 11.06'
+ },
+ {
+ id: uid(),
+ title: 'Lunch',
+ start: TODAY + 'T12:00:00',
+ end: TODAY + 'T14:00:00',
+ className: "fc-event-info",
+ description: 'Lorem ipsum dolor sit amet, ut labore',
+ location: 'Cafeteria'
+ },
+ {
+ id: uid(),
+ title: 'Meeting',
+ start: TODAY + 'T14:30:00',
+ end: TODAY + 'T15:30:00',
+ className: "fc-event-warning",
+ description: 'Lorem ipsum conse ctetur adipi scing',
+ location: 'Meeting Room 11.10'
+ },
+ {
+ id: uid(),
+ title: 'Happy Hour',
+ start: TODAY + 'T17:30:00',
+ end: TODAY + 'T21:30:00',
+ className: "fc-event-info",
+ description: 'Lorem ipsum dolor sit amet, conse ctetur',
+ location: 'The English Pub'
+ },
+ {
+ id: uid(),
+ title: 'Dinner',
+ start: TOMORROW + 'T18:00:00',
+ end: TOMORROW + 'T21:00:00',
+ className: "fc-event-solid-danger fc-event-light",
+ description: 'Lorem ipsum dolor sit ctetur adipi scing',
+ location: 'New York Steakhouse'
+ },
+ {
+ id: uid(),
+ title: 'Birthday Party',
+ start: TOMORROW + 'T12:00:00',
+ end: TOMORROW + 'T14:00:00',
+ className: "fc-event-primary",
+ description: 'Lorem ipsum dolor sit amet, scing',
+ location: 'The English Pub'
+ },
+ {
+ id: uid(),
+ title: 'Site visit',
+ start: YM + '-28',
+ end: YM + '-29',
+ className: "fc-event-solid-info fc-event-light",
+ description: 'Lorem ipsum dolor sit amet, labore',
+ location: '271, Spring Street'
+ }
+ ],
+
+ // Handle changing calendar views --- more info: https://fullcalendar.io/docs/datesSet
+ datesSet: function(){
+ // do some stuff
+ }
+ });
+
+ calendar.render();
+ }
+
+ // Init validator
+ const initValidator = () => {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'calendar_event_name': {
+ validators: {
+ notEmpty: {
+ message: 'Event name is required'
+ }
+ }
+ },
+ 'calendar_event_start_date': {
+ validators: {
+ notEmpty: {
+ message: 'Start date is required'
+ }
+ }
+ },
+ 'calendar_event_end_date': {
+ validators: {
+ notEmpty: {
+ message: 'End date is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ // Initialize datepickers --- more info: https://flatpickr.js.org/
+ const initDatepickers = () => {
+ startFlatpickr = flatpickr(startDatepicker, {
+ enableTime: false,
+ dateFormat: "Y-m-d",
+ });
+
+ endFlatpickr = flatpickr(endDatepicker, {
+ enableTime: false,
+ dateFormat: "Y-m-d",
+ });
+
+ startTimeFlatpickr = flatpickr(startTimepicker, {
+ enableTime: true,
+ noCalendar: true,
+ dateFormat: "H:i",
+ });
+
+ endTimeFlatpickr = flatpickr(endTimepicker, {
+ enableTime: true,
+ noCalendar: true,
+ dateFormat: "H:i",
+ });
+ }
+
+ // Handle add button
+ const handleAddButton = () => {
+ addButton.addEventListener('click', e => {
+ // Reset form data
+ data = {
+ id: '',
+ eventName: '',
+ eventDescription: '',
+ startDate: new Date(),
+ endDate: new Date(),
+ allDay: false
+ };
+ handleNewEvent();
+ });
+ }
+
+ // Handle add new event
+ const handleNewEvent = () => {
+ // Update modal title
+ modalTitle.innerText = "Add a New Event";
+
+ modal.show();
+
+ // Select datepicker wrapper elements
+ const datepickerWrappers = form.querySelectorAll('[data-kt-calendar="datepicker"]');
+
+ // Handle all day toggle
+ const allDayToggle = form.querySelector('#kt_calendar_datepicker_allday');
+ allDayToggle.addEventListener('click', e => {
+ if (e.target.checked) {
+ datepickerWrappers.forEach(dw => {
+ dw.classList.add('d-none');
+ });
+ } else {
+ endFlatpickr.setDate(data.startDate, true, 'Y-m-d');
+ datepickerWrappers.forEach(dw => {
+ dw.classList.remove('d-none');
+ });
+ }
+ });
+
+ populateForm(data);
+
+ // Handle submit form
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Simulate form submission
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "New event added to calendar!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Detect if is all day event
+ let allDayEvent = false;
+ if (allDayToggle.checked) { allDayEvent = true; }
+ if (startTimeFlatpickr.selectedDates.length === 0) { allDayEvent = true; }
+
+ // Merge date & time
+ var startDateTime = moment(startFlatpickr.selectedDates[0]).format();
+ var endDateTime = moment(endFlatpickr.selectedDates[endFlatpickr.selectedDates.length - 1]).format();
+ if (!allDayEvent) {
+ const startDate = moment(startFlatpickr.selectedDates[0]).format('YYYY-MM-DD');
+ const endDate = startDate;
+ const startTime = moment(startTimeFlatpickr.selectedDates[0]).format('HH:mm:ss');
+ const endTime = moment(endTimeFlatpickr.selectedDates[0]).format('HH:mm:ss');
+
+ startDateTime = startDate + 'T' + startTime;
+ endDateTime = endDate + 'T' + endTime;
+ }
+
+ // Add new event to calendar
+ calendar.addEvent({
+ id: uid(),
+ title: eventName.value,
+ description: eventDescription.value,
+ location: eventLocation.value,
+ start: startDateTime,
+ end: endDateTime,
+ allDay: allDayEvent
+ });
+ calendar.render();
+
+ // Reset form for demo purposes only
+ form.reset();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Handle edit event
+ const handleEditEvent = () => {
+ // Update modal title
+ modalTitle.innerText = "Edit an Event";
+
+ modal.show();
+
+ // Select datepicker wrapper elements
+ const datepickerWrappers = form.querySelectorAll('[data-kt-calendar="datepicker"]');
+
+ // Handle all day toggle
+ const allDayToggle = form.querySelector('#kt_calendar_datepicker_allday');
+ allDayToggle.addEventListener('click', e => {
+ if (e.target.checked) {
+ datepickerWrappers.forEach(dw => {
+ dw.classList.add('d-none');
+ });
+ } else {
+ endFlatpickr.setDate(data.startDate, true, 'Y-m-d');
+ datepickerWrappers.forEach(dw => {
+ dw.classList.remove('d-none');
+ });
+ }
+ });
+
+ populateForm(data);
+
+ // Handle submit form
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Simulate form submission
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "New event added to calendar!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Remove old event
+ calendar.getEventById(data.id).remove();
+
+ // Detect if is all day event
+ let allDayEvent = false;
+ if (allDayToggle.checked) { allDayEvent = true; }
+ if (startTimeFlatpickr.selectedDates.length === 0) { allDayEvent = true; }
+
+ // Merge date & time
+ var startDateTime = moment(startFlatpickr.selectedDates[0]).format();
+ var endDateTime = moment(endFlatpickr.selectedDates[endFlatpickr.selectedDates.length - 1]).format();
+ if (!allDayEvent) {
+ const startDate = moment(startFlatpickr.selectedDates[0]).format('YYYY-MM-DD');
+ const endDate = startDate;
+ const startTime = moment(startTimeFlatpickr.selectedDates[0]).format('HH:mm:ss');
+ const endTime = moment(endTimeFlatpickr.selectedDates[0]).format('HH:mm:ss');
+
+ startDateTime = startDate + 'T' + startTime;
+ endDateTime = endDate + 'T' + endTime;
+ }
+
+ // Add new event to calendar
+ calendar.addEvent({
+ id: uid(),
+ title: eventName.value,
+ description: eventDescription.value,
+ location: eventLocation.value,
+ start: startDateTime,
+ end: endDateTime,
+ allDay: allDayEvent
+ });
+ calendar.render();
+
+ // Reset form for demo purposes only
+ form.reset();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Handle view event
+ const handleViewEvent = () => {
+ viewModal.show();
+
+ // Detect all day event
+ var eventNameMod;
+ var startDateMod;
+ var endDateMod;
+
+ // Generate labels
+ if (data.allDay) {
+ eventNameMod = 'All Day';
+ startDateMod = moment(data.startDate).format('Do MMM, YYYY');
+ endDateMod = moment(data.endDate).format('Do MMM, YYYY');
+ } else {
+ eventNameMod = '';
+ startDateMod = moment(data.startDate).format('Do MMM, YYYY - h:mm a');
+ endDateMod = moment(data.endDate).format('Do MMM, YYYY - h:mm a');
+ }
+
+ // Populate view data
+ viewEventName.innerText = data.eventName;
+ viewAllDay.innerText = eventNameMod;
+ viewEventDescription.innerText = data.eventDescription ? data.eventDescription : '--';
+ viewEventLocation.innerText = data.eventLocation ? data.eventLocation : '--';
+ viewStartDate.innerText = startDateMod;
+ viewEndDate.innerText = endDateMod;
+ }
+
+ // Handle delete event
+ const handleDeleteEvent = () => {
+ viewDeleteButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to delete this event?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ calendar.getEventById(data.id).remove();
+
+ viewModal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your event was not deleted!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Handle edit button
+ const handleEditButton = () => {
+ viewEditButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ viewModal.hide();
+ handleEditEvent();
+ });
+ }
+
+ // Handle cancel button
+ const handleCancelButton = () => {
+ // Edit event modal cancel button
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Handle close button
+ const handleCloseButton = () => {
+ // Edit event modal close button
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Handle view button
+ const handleViewButton = () => {
+ const viewButton = document.querySelector('#kt_calendar_event_view_button');
+ viewButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ hidePopovers();
+ handleViewEvent();
+ });
+ }
+
+ // Helper functions
+
+ // Reset form validator on modal close
+ const resetFormValidator = (element) => {
+ // Target modal hidden event --- For more info: https://getbootstrap.com/docs/5.0/components/modal/#events
+ element.addEventListener('hidden.bs.modal', e => {
+ if (validator) {
+ // Reset form validator. For more info: https://formvalidation.io/guide/api/reset-form
+ validator.resetForm(true);
+ }
+ });
+ }
+
+ // Populate form
+ const populateForm = () => {
+ eventName.value = data.eventName ? data.eventName : '';
+ eventDescription.value = data.eventDescription ? data.eventDescription : '';
+ eventLocation.value = data.eventLocation ? data.eventLocation : '';
+ startFlatpickr.setDate(data.startDate, true, 'Y-m-d');
+
+ // Handle null end dates
+ const endDate = data.endDate ? data.endDate : moment(data.startDate).format();
+ endFlatpickr.setDate(endDate, true, 'Y-m-d');
+
+ const allDayToggle = form.querySelector('#kt_calendar_datepicker_allday');
+ const datepickerWrappers = form.querySelectorAll('[data-kt-calendar="datepicker"]');
+ if (data.allDay) {
+ allDayToggle.checked = true;
+ datepickerWrappers.forEach(dw => {
+ dw.classList.add('d-none');
+ });
+ } else {
+ startTimeFlatpickr.setDate(data.startDate, true, 'Y-m-d H:i');
+ endTimeFlatpickr.setDate(data.endDate, true, 'Y-m-d H:i');
+ endFlatpickr.setDate(data.startDate, true, 'Y-m-d');
+ allDayToggle.checked = false;
+ datepickerWrappers.forEach(dw => {
+ dw.classList.remove('d-none');
+ });
+ }
+ }
+
+ // Format FullCalendar reponses
+ const formatArgs = (res) => {
+ data.id = res.id;
+ data.eventName = res.title;
+ data.eventDescription = res.description;
+ data.eventLocation = res.location;
+ data.startDate = res.startStr;
+ data.endDate = res.endStr;
+ data.allDay = res.allDay;
+ }
+
+ // Generate unique IDs for events
+ const uid = () => {
+ return Date.now().toString() + Math.floor(Math.random() * 1000).toString();
+ }
+
+ return {
+ // Public Functions
+ init: function () {
+ // Define variables
+ // Add event modal
+ const element = document.getElementById('kt_modal_add_event');
+ form = element.querySelector('#kt_modal_add_event_form');
+ eventName = form.querySelector('[name="calendar_event_name"]');
+ eventDescription = form.querySelector('[name="calendar_event_description"]');
+ eventLocation = form.querySelector('[name="calendar_event_location"]');
+ startDatepicker = form.querySelector('#kt_calendar_datepicker_start_date');
+ endDatepicker = form.querySelector('#kt_calendar_datepicker_end_date');
+ startTimepicker = form.querySelector('#kt_calendar_datepicker_start_time');
+ endTimepicker = form.querySelector('#kt_calendar_datepicker_end_time');
+ addButton = document.querySelector('[data-kt-calendar="add"]');
+ submitButton = form.querySelector('#kt_modal_add_event_submit');
+ cancelButton = form.querySelector('#kt_modal_add_event_cancel');
+ closeButton = element.querySelector('#kt_modal_add_event_close');
+ modalTitle = form.querySelector('[data-kt-calendar="title"]');
+ modal = new bootstrap.Modal(element);
+
+ // View event modal
+ const viewElement = document.getElementById('kt_modal_view_event');
+ viewModal = new bootstrap.Modal(viewElement);
+ viewEventName = viewElement.querySelector('[data-kt-calendar="event_name"]');
+ viewAllDay = viewElement.querySelector('[data-kt-calendar="all_day"]');
+ viewEventDescription = viewElement.querySelector('[data-kt-calendar="event_description"]');
+ viewEventLocation = viewElement.querySelector('[data-kt-calendar="event_location"]');
+ viewStartDate = viewElement.querySelector('[data-kt-calendar="event_start_date"]');
+ viewEndDate = viewElement.querySelector('[data-kt-calendar="event_end_date"]');
+ viewEditButton = viewElement.querySelector('#kt_modal_view_event_edit');
+ viewDeleteButton = viewElement.querySelector('#kt_modal_view_event_delete');
+
+ initCalendarApp();
+ initValidator();
+ initDatepickers();
+ handleEditButton();
+ handleAddButton();
+ handleDeleteEvent();
+ handleCancelButton();
+ handleCloseButton();
+ resetFormValidator(element);
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppCalendar.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/chat/chat.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/chat/chat.js
new file mode 100644
index 0000000..f591103
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/chat/chat.js
@@ -0,0 +1,72 @@
+"use strict";
+
+// Class definition
+var KTAppChat = function () {
+ // Private functions
+ var handeSend = function (element) {
+ if (!element) {
+ return;
+ }
+
+ // Handle send
+ KTUtil.on(element, '[data-kt-element="input"]', 'keydown', function(e) {
+ if (e.keyCode == 13) {
+ handeMessaging(element);
+ e.preventDefault();
+
+ return false;
+ }
+ });
+
+ KTUtil.on(element, '[data-kt-element="send"]', 'click', function(e) {
+ handeMessaging(element);
+ });
+ }
+
+ var handeMessaging = function(element) {
+ var messages = element.querySelector('[data-kt-element="messages"]');
+ var input = element.querySelector('[data-kt-element="input"]');
+
+ if (input.value.length === 0 ) {
+ return;
+ }
+
+ var messageOutTemplate = messages.querySelector('[data-kt-element="template-out"]');
+ var messageInTemplate = messages.querySelector('[data-kt-element="template-in"]');
+ var message;
+
+ // Show example outgoing message
+ message = messageOutTemplate.cloneNode(true);
+ message.classList.remove('d-none');
+ message.querySelector('[data-kt-element="message-text"]').innerText = input.value;
+ input.value = '';
+ messages.appendChild(message);
+ messages.scrollTop = messages.scrollHeight;
+
+
+ setTimeout(function() {
+ // Show example incoming message
+ message = messageInTemplate.cloneNode(true);
+ message.classList.remove('d-none');
+ message.querySelector('[data-kt-element="message-text"]').innerText = 'Thank you for your awesome support!';
+ messages.appendChild(message);
+ messages.scrollTop = messages.scrollHeight;
+ }, 2000);
+ }
+
+ // Public methods
+ return {
+ init: function(element) {
+ handeSend(element);
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ // Init inline chat messenger
+ KTAppChat.init(document.querySelector('#kt_chat_messenger'));
+
+ // Init drawer chat messenger
+ KTAppChat.init(document.querySelector('#kt_drawer_chat_messenger'));
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/contacts/edit-contact.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/contacts/edit-contact.js
new file mode 100644
index 0000000..0ca663c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/contacts/edit-contact.js
@@ -0,0 +1,160 @@
+"use strict";
+
+// Class definition
+var KTAppContactEdit = function () {
+ // Shared variables
+
+
+ // Private functions
+ const initForm = () => {
+ // Select form
+ const form = document.getElementById('kt_ecommerce_settings_general_form');
+
+ if (!form) {
+ return;
+ }
+
+ // Dynamically create validation non-empty rule
+ const requiredFields = form.querySelectorAll('.required');
+ var detectedField;
+ var validationFields = {
+ fields: {},
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+
+ // Detect required fields
+ requiredFields.forEach(el => {
+ const input = el.closest('.fv-row').querySelector('input');
+ if (input) {
+ detectedField = input;
+ }
+
+ const select = el.closest('.fv-row').querySelector('select');
+ if (select) {
+ detectedField = select;
+ }
+
+ // Add validation rule
+ const name = detectedField.getAttribute('name');
+ validationFields.fields[name] = {
+ validators: {
+ notEmpty: {
+ message: el.innerText + ' is required'
+ }
+ }
+ }
+ });
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ validationFields
+ );
+
+ // Submit button handler
+ const submitButton = form.querySelector('[data-kt-contacts-type="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup error
+ Swal.fire({
+ text: "Oops! There are some error(s) detected.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Init Select2 with flags
+ const initSelect2Flags = () => {
+ // Format options
+ var optionFormat = function(item) {
+ if ( !item.id ) {
+ return item.text;
+ }
+
+ var span = document.createElement('span');
+ var template = '';
+
+ template += '
';
+ template += item.text;
+
+ span.innerHTML = template;
+
+ return $(span);
+ }
+
+ // Init Select2 --- more info: https://select2.org/
+ $('[data-kt-ecommerce-settings-type="select2_flags"]').select2({
+ placeholder: "Select a country",
+ minimumResultsForSearch: Infinity,
+ templateSelection: optionFormat,
+ templateResult: optionFormat
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+
+ initForm();
+ initSelect2Flags();
+
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppContactEdit.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/contacts/view-contact.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/contacts/view-contact.js
new file mode 100644
index 0000000..325b61f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/contacts/view-contact.js
@@ -0,0 +1,74 @@
+"use strict";
+
+// Class definition
+var KTAppContactView = function () {
+ // Private functions
+ const handleDeleteButton = () => {
+ // Select form
+ const deleteButton = document.getElementById('kt_contact_delete');
+
+ if (!deleteButton) {
+ return;
+ }
+
+ deleteButton.addEventListener('click', e => {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Delete contact confirmation",
+ icon: "warning",
+ buttonsStyling: false,
+ showCancelButton: true,
+ confirmButtonText: "Yes, delete it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-danger",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "Contact has been deleted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ // Redirect to customers list page
+ window.location = deleteButton.getAttribute("data-kt-redirect");
+ }
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Contact has not been deleted!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+
+ handleDeleteButton();
+
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppContactView.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/add.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/add.js
new file mode 100644
index 0000000..df35986
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/add.js
@@ -0,0 +1,238 @@
+"use strict";
+
+// Class definition
+var KTModalCustomersAdd = function () {
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'Customer name is required'
+ }
+ }
+ },
+ 'email': {
+ validators: {
+ notEmpty: {
+ message: 'Customer email is required'
+ }
+ }
+ },
+ 'first-name': {
+ validators: {
+ notEmpty: {
+ message: 'First name is required'
+ }
+ }
+ },
+ 'last-name': {
+ validators: {
+ notEmpty: {
+ message: 'Last name is required'
+ }
+ }
+ },
+ 'country': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ },
+ 'address1': {
+ validators: {
+ notEmpty: {
+ message: 'Address 1 is required'
+ }
+ }
+ },
+ 'city': {
+ validators: {
+ notEmpty: {
+ message: 'City is required'
+ }
+ }
+ },
+ 'state': {
+ validators: {
+ notEmpty: {
+ message: 'State is required'
+ }
+ }
+ },
+ 'postcode': {
+ validators: {
+ notEmpty: {
+ message: 'Postcode is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="country"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('country');
+ });
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Hide modal
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Redirect to customers list page
+ window.location = form.getAttribute("data-kt-redirect");
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function(e){
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ })
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modal = new bootstrap.Modal(document.querySelector('#kt_modal_add_customer'));
+
+ form = document.querySelector('#kt_modal_add_customer_form');
+ submitButton = form.querySelector('#kt_modal_add_customer_submit');
+ cancelButton = form.querySelector('#kt_modal_add_customer_cancel');
+ closeButton = form.querySelector('#kt_modal_add_customer_close');
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalCustomersAdd.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/list/export.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/list/export.js
new file mode 100644
index 0000000..257159e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/list/export.js
@@ -0,0 +1,189 @@
+"use strict";
+
+// Class definition
+var KTCustomersExport = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'date': {
+ validators: {
+ notEmpty: {
+ message: 'Date range is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Customer list has been successfully exported!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function(e){
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ var initForm = function () {
+ const datepicker = form.querySelector("[name=date]");
+
+ // Handle datepicker range -- For more info on flatpickr plugin, please visit: https://flatpickr.js.org/
+ $(datepicker).flatpickr({
+ altInput: true,
+ altFormat: "F j, Y",
+ dateFormat: "Y-m-d",
+ mode: "range"
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_customers_export_modal');
+ modal = new bootstrap.Modal(element);
+
+ form = document.querySelector('#kt_customers_export_form');
+ submitButton = form.querySelector('#kt_customers_export_submit');
+ cancelButton = form.querySelector('#kt_customers_export_cancel');
+ closeButton = element.querySelector('#kt_customers_export_close');
+
+ handleForm();
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomersExport.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/list/list.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/list/list.js
new file mode 100644
index 0000000..82ae7d5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/list/list.js
@@ -0,0 +1,282 @@
+"use strict";
+
+// Class definition
+var KTCustomersList = function () {
+ // Define shared variables
+ var datatable;
+ var filterMonth;
+ var filterPayment;
+ var table
+
+ // Private functions
+ var initCustomerList = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[5].innerHTML, "DD MMM YYYY, LT").format(); // select date from 5th column in table
+ dateRow[5].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 6 }, // Disable ordering on column 6 (actions)
+ ]
+ });
+
+ // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw
+ datatable.on('draw', function () {
+ initToggleToolbar();
+ handleDeleteRows();
+ toggleToolbars();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-customer-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Filter Datatable
+ var handleFilterDatatable = () => {
+ // Select filter options
+ filterMonth = $('[data-kt-customer-table-filter="month"]');
+ filterPayment = document.querySelectorAll('[data-kt-customer-table-filter="payment_type"] [name="payment_type"]');
+ const filterButton = document.querySelector('[data-kt-customer-table-filter="filter"]');
+
+ // Filter datatable on submit
+ filterButton.addEventListener('click', function () {
+ // Get filter values
+ const monthValue = filterMonth.val();
+ let paymentValue = '';
+
+ // Get payment value
+ filterPayment.forEach(r => {
+ if (r.checked) {
+ paymentValue = r.value;
+ }
+
+ // Reset payment value if "All" is selected
+ if (paymentValue === 'all') {
+ paymentValue = '';
+ }
+ });
+
+ // Build filter string from filter options
+ const filterString = monthValue + ' ' + paymentValue;
+
+ // Filter datatable --- official docs reference: https://datatables.net/reference/api/search()
+ datatable.search(filterString).draw();
+ });
+ }
+
+ // Delete customer
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-customer-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const customerName = parent.querySelectorAll('td')[1].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + customerName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + customerName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Reset Filter
+ var handleResetForm = () => {
+ // Select reset button
+ const resetButton = document.querySelector('[data-kt-customer-table-filter="reset"]');
+
+ // Reset datatable
+ resetButton.addEventListener('click', function () {
+ // Reset month
+ filterMonth.val(null).trigger('change');
+
+ // Reset payment type
+ filterPayment[0].checked = true;
+
+ // Reset datatable --- official docs reference: https://datatables.net/reference/api/search()
+ datatable.search('').draw();
+ });
+ }
+
+ // Init toggle toolbar
+ var initToggleToolbar = () => {
+ // Toggle selected action toolbar
+ // Select all checkboxes
+ const checkboxes = table.querySelectorAll('[type="checkbox"]');
+
+ // Select elements
+ const deleteSelected = document.querySelector('[data-kt-customer-table-select="delete_selected"]');
+
+ // Toggle delete selected toolbar
+ checkboxes.forEach(c => {
+ // Checkbox on click event
+ c.addEventListener('click', function () {
+ setTimeout(function () {
+ toggleToolbars();
+ }, 50);
+ });
+ });
+
+ // Deleted selected rows
+ deleteSelected.addEventListener('click', function () {
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete selected customers?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted all selected customers!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove all selected customers
+ checkboxes.forEach(c => {
+ if (c.checked) {
+ datatable.row($(c.closest('tbody tr'))).remove().draw();
+ }
+ });
+
+ // Remove header checked box
+ const headerCheckbox = table.querySelectorAll('[type="checkbox"]')[0];
+ headerCheckbox.checked = false;
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Selected customers was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Toggle toolbars
+ const toggleToolbars = () => {
+ // Define variables
+ const toolbarBase = document.querySelector('[data-kt-customer-table-toolbar="base"]');
+ const toolbarSelected = document.querySelector('[data-kt-customer-table-toolbar="selected"]');
+ const selectedCount = document.querySelector('[data-kt-customer-table-select="selected_count"]');
+
+ // Select refreshed checkbox DOM elements
+ const allCheckboxes = table.querySelectorAll('tbody [type="checkbox"]');
+
+ // Detect checkboxes state & count
+ let checkedState = false;
+ let count = 0;
+
+ // Count checked boxes
+ allCheckboxes.forEach(c => {
+ if (c.checked) {
+ checkedState = true;
+ count++;
+ }
+ });
+
+ // Toggle toolbars
+ if (checkedState) {
+ selectedCount.innerHTML = count;
+ toolbarBase.classList.add('d-none');
+ toolbarSelected.classList.remove('d-none');
+ } else {
+ toolbarBase.classList.remove('d-none');
+ toolbarSelected.classList.add('d-none');
+ }
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_customers_table');
+
+ if (!table) {
+ return;
+ }
+
+ initCustomerList();
+ initToggleToolbar();
+ handleSearchDatatable();
+ handleFilterDatatable();
+ handleDeleteRows();
+ handleResetForm();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomersList.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/update.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/update.js
new file mode 100644
index 0000000..64613b1
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/update.js
@@ -0,0 +1,131 @@
+"use strict";
+
+// Class definition
+var KTModalUpdateCustomer = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var initForm = function () {
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Simulate form submission
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_modal_update_customer');
+ modal = new bootstrap.Modal(element);
+
+ form = element.querySelector('#kt_modal_update_customer_form');
+ submitButton = form.querySelector('#kt_modal_update_customer_submit');
+ cancelButton = form.querySelector('#kt_modal_update_customer_cancel');
+ closeButton = element.querySelector('#kt_modal_update_customer_close');
+
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalUpdateCustomer.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/add-payment.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/add-payment.js
new file mode 100644
index 0000000..89a6ecd
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/add-payment.js
@@ -0,0 +1,207 @@
+"use strict";
+
+// Class definition
+var KTModalAddPayment = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var newBalance;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var initForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'invoice': {
+ validators: {
+ notEmpty: {
+ message: 'Invoice number is required'
+ }
+ }
+ },
+ 'status': {
+ validators: {
+ notEmpty: {
+ message: 'Invoice status is required'
+ }
+ }
+ },
+ 'amount': {
+ validators: {
+ notEmpty: {
+ message: 'Invoice amount is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="status"]')).on('change', function () {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('status');
+ });
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Simulate form submission
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Reset form for demo purposes only
+ form.reset();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_modal_add_payment');
+ modal = new bootstrap.Modal(element);
+
+ form = element.querySelector('#kt_modal_add_payment_form');
+ submitButton = form.querySelector('#kt_modal_add_payment_submit');
+ cancelButton = form.querySelector('#kt_modal_add_payment_cancel');
+ closeButton = element.querySelector('#kt_modal_add_payment_close');
+
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalAddPayment.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/adjust-balance.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/adjust-balance.js
new file mode 100644
index 0000000..10af46d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/adjust-balance.js
@@ -0,0 +1,241 @@
+"use strict";
+
+// Class definition
+var KTModalAdjustBalance = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var maskInput;
+ var newBalance;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var initForm = function () {
+ // Init inputmask plugin --- For more info please refer to the official documentation here: https://github.com/RobinHerbots/Inputmask
+ Inputmask("US$ 9,999,999.99", {
+ "numericInput": true
+ }).mask("#kt_modal_inputmask");
+ }
+
+ var handleBalanceCalculator = function () {
+ // Select elements
+ const currentBalance = element.querySelector('[kt-modal-adjust-balance="current_balance"]');
+ newBalance = element.querySelector('[kt-modal-adjust-balance="new_balance"]');
+ maskInput = document.getElementById('kt_modal_inputmask');
+
+ // Get current balance value
+ const isNegative = currentBalance.innerHTML.includes('-');
+ let currentValue = parseFloat(currentBalance.innerHTML.replace(/[^0-9.]/g, '').replace(',', ''));
+ currentValue = isNegative ? currentValue * -1 : currentValue;
+
+ // On change event for inputmask
+ let maskValue;
+ maskInput.addEventListener('focusout', function (e) {
+ // Get inputmask value on change
+ maskValue = parseFloat(e.target.value.replace(/[^0-9.]/g, '').replace(',', ''));
+
+ // Set mask value as 0 when NaN detected
+ if(isNaN(maskValue)){
+ maskValue = 0;
+ }
+
+ // Calculate & set new balance value
+ newBalance.innerHTML = 'US$ ' + (maskValue + currentValue).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function () {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'adjustment': {
+ validators: {
+ notEmpty: {
+ message: 'Adjustment type is required'
+ }
+ }
+ },
+ 'amount': {
+ validators: {
+ notEmpty: {
+ message: 'Amount is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="adjustment"]')).on('change', function () {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('adjustment');
+ });
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Simulate form submission
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Reset form for demo purposes only
+ form.reset();
+ newBalance.innerHTML = "--";
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_modal_adjust_balance');
+ modal = new bootstrap.Modal(element);
+
+ form = element.querySelector('#kt_modal_adjust_balance_form');
+ submitButton = form.querySelector('#kt_modal_adjust_balance_submit');
+ cancelButton = form.querySelector('#kt_modal_adjust_balance_cancel');
+ closeButton = element.querySelector('#kt_modal_adjust_balance_close');
+
+ initForm();
+ handleBalanceCalculator();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalAdjustBalance.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/invoices.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/invoices.js
new file mode 100644
index 0000000..ab22f20
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/invoices.js
@@ -0,0 +1,129 @@
+"use strict";
+
+// Class definition
+var KTCustomerViewInvoices = function () {
+
+ // Private functions
+ // Init current year datatable
+ var initInvoiceYearCurrent = function () {
+ // Define table element
+ const id = '#kt_customer_details_invoices_table_1';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Init year 2020 datatable
+ var initInvoiceYear2020 = function () {
+ // Define table element
+ const id = '#kt_customer_details_invoices_table_2';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Init year 2019 datatable
+ var initInvoiceYear2019 = function () {
+ // Define table element
+ const id = '#kt_customer_details_invoices_table_3';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Init year 2018 datatable
+ var initInvoiceYear2018 = function () {
+ // Define table element
+ const id = '#kt_customer_details_invoices_table_4';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initInvoiceYearCurrent();
+ initInvoiceYear2020();
+ initInvoiceYear2019();
+ initInvoiceYear2018();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomerViewInvoices.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/payment-method.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/payment-method.js
new file mode 100644
index 0000000..f63d912
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/payment-method.js
@@ -0,0 +1,110 @@
+"use strict";
+
+// Class definition
+var KTCustomerViewPaymentMethod = function () {
+
+ // Private functions
+ var initPaymentMethod = function () {
+ // Define variables
+ const table = document.getElementById('kt_customer_view_payment_method');
+ const tableRows = table.querySelectorAll('[ data-kt-customer-payment-method="row"]');
+
+ tableRows.forEach(row => {
+ // Select delete button
+ const deleteButton = row.querySelector('[data-kt-customer-payment-method="delete"]');
+
+ // Delete button action
+ deleteButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Popup confirmation
+ Swal.fire({
+ text: "Are you sure you would like to delete this card?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ row.remove();
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your card was not deleted!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ });
+ }
+
+ // Handle set as primary button
+ const handlePrimaryButton = () => {
+ // Define variable
+ const button = document.querySelector('[data-kt-payment-mehtod-action="set_as_primary"]');
+
+ button.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Popup confirmation
+ Swal.fire({
+ text: "Are you sure you would like to set this card as primary?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, set it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "Your card was set to primary!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your card was not set to primary!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initPaymentMethod();
+ handlePrimaryButton();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomerViewPaymentMethod.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/payment-table.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/payment-table.js
new file mode 100644
index 0000000..30fba5d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/payment-table.js
@@ -0,0 +1,110 @@
+"use strict";
+
+// Class definition
+var KTCustomerViewPaymentTable = function () {
+
+ // Define shared variables
+ var datatable;
+ var table = document.querySelector('#kt_table_customers_payment');
+
+ // Private functions
+ var initCustomerView = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[3].innerHTML, "DD MMM YYYY, LT").format(); // select date from 4th column in table
+ dateRow[3].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 5 (actions)
+ ]
+ });
+ }
+
+ // Delete customer
+ var deleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-customer-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const invoiceNumber = parent.querySelectorAll('td')[0].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + invoiceNumber + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + invoiceNumber + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ }).then(function () {
+ // Detect checked checkboxes
+ toggleToolbars();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ if (!table) {
+ return;
+ }
+
+ initCustomerView();
+ deleteRows();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomerViewPaymentTable.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/statement.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/statement.js
new file mode 100644
index 0000000..f2059ab
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/customers/view/statement.js
@@ -0,0 +1,129 @@
+"use strict";
+
+// Class definition
+var KTCustomerViewStatements = function () {
+
+ // Private functions
+ // Init current year datatable
+ var initStatementYearCurrent = function () {
+ // Define table element
+ const id = '#kt_customer_view_statement_table_1';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 10,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Init year 2020 datatable
+ var initStatementYear2020 = function () {
+ // Define table element
+ const id = '#kt_customer_view_statement_table_2';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 10,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Init year 2019 datatable
+ var initStatementYear2019 = function () {
+ // Define table element
+ const id = '#kt_customer_view_statement_table_3';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 10,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Init year 2018 datatable
+ var initStatementYear2018 = function () {
+ // Define table element
+ const id = '#kt_customer_view_statement_table_4';
+ var table = document.querySelector(id);
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "DD MMM YYYY, LT").format(); // select date from 1st column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ var datatable = $(id).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 10,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 0 (download)
+ ]
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initStatementYearCurrent();
+ initStatementYear2020();
+ initStatementYear2019();
+ initStatementYear2018();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomerViewStatements.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/categories.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/categories.js
new file mode 100644
index 0000000..a7603f1
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/categories.js
@@ -0,0 +1,114 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceCategories = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 3 }, // Disable ordering on column 3 (actions)
+ ]
+ });
+
+ // Re-init functions on datatable re-draws
+ datatable.on('draw', function () {
+ handleDeleteRows();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-category-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Delete cateogry
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-ecommerce-category-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get category name
+ const categoryName = parent.querySelector('[data-kt-ecommerce-category-filter="category_name"]').innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + categoryName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + categoryName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: categoryName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_category_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ handleSearchDatatable();
+ handleDeleteRows();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceCategories.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/products.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/products.js
new file mode 100644
index 0000000..2d3b3f6
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/products.js
@@ -0,0 +1,128 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceProducts = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ 'columnDefs': [
+ { render: DataTable.render.number(',', '.', 2), targets: 4},
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 7 }, // Disable ordering on column 7 (actions)
+ ]
+ });
+
+ // Re-init functions on datatable re-draws
+ datatable.on('draw', function () {
+ handleDeleteRows();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-product-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Handle status filter dropdown
+ var handleStatusFilter = () => {
+ const filterStatus = document.querySelector('[data-kt-ecommerce-product-filter="status"]');
+ $(filterStatus).on('change', e => {
+ let value = e.target.value;
+ if(value === 'all'){
+ value = '';
+ }
+ datatable.column(6).search(value).draw();
+ });
+ }
+
+ // Delete cateogry
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-ecommerce-product-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get category name
+ const productName = parent.querySelector('[data-kt-ecommerce-product-filter="product_name"]').innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + productName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + productName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: productName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_products_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ handleSearchDatatable();
+ handleStatusFilter();
+ handleDeleteRows();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceProducts.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/save-category.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/save-category.js
new file mode 100644
index 0000000..7f4699c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/save-category.js
@@ -0,0 +1,287 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceSaveCategory = function () {
+
+ // Private functions
+
+ // Init quill editor
+ const initQuill = () => {
+ // Define all elements for quill editor
+ const elements = [
+ '#kt_ecommerce_add_category_description',
+ '#kt_ecommerce_add_category_meta_description'
+ ];
+
+ // Loop all elements
+ elements.forEach(element => {
+ // Get quill element
+ let quill = document.querySelector(element);
+
+ // Break if element not found
+ if (!quill) {
+ return;
+ }
+
+ // Init quill --- more info: https://quilljs.com/docs/quickstart/
+ quill = new Quill(element, {
+ modules: {
+ toolbar: [
+ [{
+ header: [1, 2, false]
+ }],
+ ['bold', 'italic', 'underline'],
+ ['image', 'code-block']
+ ]
+ },
+ placeholder: 'Type your text here...',
+ theme: 'snow' // or 'bubble'
+ });
+ });
+
+ }
+
+ // Init tagify
+ const initTagify = () => {
+ // Define all elements for tagify
+ const elements = [
+ '#kt_ecommerce_add_category_meta_keywords'
+ ];
+
+ // Loop all elements
+ elements.forEach(element => {
+ // Get tagify element
+ const tagify = document.querySelector(element);
+
+ // Break if element not found
+ if (!tagify) {
+ return;
+ }
+
+ // Init tagify --- more info: https://yaireo.github.io/tagify/
+ new Tagify(tagify);
+ });
+ }
+
+ // Init form repeater --- more info: https://github.com/DubFriend/jquery.repeater
+ const initFormRepeater = () => {
+ $('#kt_ecommerce_add_category_conditions').repeater({
+ initEmpty: false,
+
+ defaultValues: {
+ 'text-input': 'foo'
+ },
+
+ show: function () {
+ $(this).slideDown();
+
+ // Init select2 on new repeated items
+ initConditionsSelect2();
+ },
+
+ hide: function (deleteElement) {
+ $(this).slideUp(deleteElement);
+ }
+ });
+ }
+
+ // Init condition select2
+ const initConditionsSelect2 = () => {
+ // Tnit new repeating condition types
+ const allConditionTypes = document.querySelectorAll('[data-kt-ecommerce-catalog-add-category="condition_type"]');
+ allConditionTypes.forEach(type => {
+ if ($(type).hasClass("select2-hidden-accessible")) {
+ return;
+ } else {
+ $(type).select2({
+ minimumResultsForSearch: -1
+ });
+ }
+ });
+
+ // Tnit new repeating condition equals
+ const allConditionEquals = document.querySelectorAll('[data-kt-ecommerce-catalog-add-category="condition_equals"]');
+ allConditionEquals.forEach(equal => {
+ if ($(equal).hasClass("select2-hidden-accessible")) {
+ return;
+ } else {
+ $(equal).select2({
+ minimumResultsForSearch: -1
+ });
+ }
+ });
+ }
+
+ // Category status handler
+ const handleStatus = () => {
+ const target = document.getElementById('kt_ecommerce_add_category_status');
+ const select = document.getElementById('kt_ecommerce_add_category_status_select');
+ const statusClasses = ['bg-success', 'bg-warning', 'bg-danger'];
+
+ $(select).on('change', function (e) {
+ const value = e.target.value;
+
+ switch (value) {
+ case "published": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-success');
+ hideDatepicker();
+ break;
+ }
+ case "scheduled": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-warning');
+ showDatepicker();
+ break;
+ }
+ case "unpublished": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-danger');
+ hideDatepicker();
+ break;
+ }
+ default:
+ break;
+ }
+ });
+
+
+ // Handle datepicker
+ const datepicker = document.getElementById('kt_ecommerce_add_category_status_datepicker');
+
+ // Init flatpickr --- more info: https://flatpickr.js.org/
+ $('#kt_ecommerce_add_category_status_datepicker').flatpickr({
+ enableTime: true,
+ dateFormat: "Y-m-d H:i",
+ });
+
+ const showDatepicker = () => {
+ datepicker.parentNode.classList.remove('d-none');
+ }
+
+ const hideDatepicker = () => {
+ datepicker.parentNode.classList.add('d-none');
+ }
+ }
+
+ // Condition type handler
+ const handleConditions = () => {
+ const allConditions = document.querySelectorAll('[name="method"][type="radio"]');
+ const conditionMatch = document.querySelector('[data-kt-ecommerce-catalog-add-category="auto-options"]');
+ allConditions.forEach(radio => {
+ radio.addEventListener('change', e => {
+ if (e.target.value === '1') {
+ conditionMatch.classList.remove('d-none');
+ } else {
+ conditionMatch.classList.add('d-none');
+ }
+ });
+ })
+ }
+
+ // Submit form handler
+ const handleSubmit = () => {
+ // Define variables
+ let validator;
+
+ // Get elements
+ const form = document.getElementById('kt_ecommerce_add_category_form');
+ const submitButton = document.getElementById('kt_ecommerce_add_category_submit');
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'category_name': {
+ validators: {
+ notEmpty: {
+ message: 'Category name is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Handle submit button
+ submitButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function () {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Redirect to customers list page
+ window.location = form.getAttribute("data-kt-redirect");
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ })
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Init forms
+ initQuill();
+ initTagify();
+ initFormRepeater();
+ initConditionsSelect2();
+
+ // Handle forms
+ handleStatus();
+ handleConditions();
+ handleSubmit();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceSaveCategory.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/save-product.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/save-product.js
new file mode 100644
index 0000000..33cbe95
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/catalog/save-product.js
@@ -0,0 +1,416 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceSaveProduct = function () {
+
+ // Private functions
+
+ // Init quill editor
+ const initQuill = () => {
+ // Define all elements for quill editor
+ const elements = [
+ '#kt_ecommerce_add_product_description',
+ '#kt_ecommerce_add_product_meta_description'
+ ];
+
+ // Loop all elements
+ elements.forEach(element => {
+ // Get quill element
+ let quill = document.querySelector(element);
+
+ // Break if element not found
+ if (!quill) {
+ return;
+ }
+
+ // Init quill --- more info: https://quilljs.com/docs/quickstart/
+ quill = new Quill(element, {
+ modules: {
+ toolbar: [
+ [{
+ header: [1, 2, false]
+ }],
+ ['bold', 'italic', 'underline'],
+ ['image', 'code-block']
+ ]
+ },
+ placeholder: 'Type your text here...',
+ theme: 'snow' // or 'bubble'
+ });
+ });
+ }
+
+ // Init tagify
+ const initTagify = () => {
+ // Define all elements for tagify
+ const elements = [
+ '#kt_ecommerce_add_product_category',
+ '#kt_ecommerce_add_product_tags'
+ ];
+
+ // Loop all elements
+ elements.forEach(element => {
+ // Get tagify element
+ const tagify = document.querySelector(element);
+
+ // Break if element not found
+ if (!tagify) {
+ return;
+ }
+
+ // Init tagify --- more info: https://yaireo.github.io/tagify/
+ new Tagify(tagify, {
+ whitelist: ["new", "trending", "sale", "discounted", "selling fast", "last 10"],
+ dropdown: {
+ maxItems: 20, // <- mixumum allowed rendered suggestions
+ classname: "tagify__inline__suggestions", // <- custom classname for this dropdown, so it could be targeted
+ enabled: 0, // <- show suggestions on focus
+ closeOnSelect: false // <- do not hide the suggestions dropdown once an item has been selected
+ }
+ });
+ });
+ }
+
+ // Init form repeater --- more info: https://github.com/DubFriend/jquery.repeater
+ const initFormRepeater = () => {
+ $('#kt_ecommerce_add_product_options').repeater({
+ initEmpty: false,
+
+ defaultValues: {
+ 'text-input': 'foo'
+ },
+
+ show: function () {
+ $(this).slideDown();
+
+ // Init select2 on new repeated items
+ initConditionsSelect2();
+ },
+
+ hide: function (deleteElement) {
+ $(this).slideUp(deleteElement);
+ }
+ });
+ }
+
+ // Init condition select2
+ const initConditionsSelect2 = () => {
+ // Tnit new repeating condition types
+ const allConditionTypes = document.querySelectorAll('[data-kt-ecommerce-catalog-add-product="product_option"]');
+ allConditionTypes.forEach(type => {
+ if ($(type).hasClass("select2-hidden-accessible")) {
+ return;
+ } else {
+ $(type).select2({
+ minimumResultsForSearch: -1
+ });
+ }
+ });
+ }
+
+
+ // Init noUIslider
+ const initSlider = () => {
+ var slider = document.querySelector("#kt_ecommerce_add_product_discount_slider");
+ var value = document.querySelector("#kt_ecommerce_add_product_discount_label");
+
+ noUiSlider.create(slider, {
+ start: [10],
+ connect: true,
+ range: {
+ "min": 1,
+ "max": 100
+ }
+ });
+
+ slider.noUiSlider.on("update", function (values, handle) {
+ value.innerHTML = Math.round(values[handle]);
+ if (handle) {
+ value.innerHTML = Math.round(values[handle]);
+ }
+ });
+ }
+
+ // Init DropzoneJS --- more info:
+ const initDropzone = () => {
+ var myDropzone = new Dropzone("#kt_ecommerce_add_product_media", {
+ url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
+ paramName: "file", // The name that will be used to transfer the file
+ maxFiles: 10,
+ maxFilesize: 10, // MB
+ addRemoveLinks: true,
+ accept: function (file, done) {
+ if (file.name == "wow.jpg") {
+ done("Naha, you don't.");
+ } else {
+ done();
+ }
+ }
+ });
+ }
+
+ // Handle discount options
+ const handleDiscount = () => {
+ const discountOptions = document.querySelectorAll('input[name="discount_option"]');
+ const percentageEl = document.getElementById('kt_ecommerce_add_product_discount_percentage');
+ const fixedEl = document.getElementById('kt_ecommerce_add_product_discount_fixed');
+
+ discountOptions.forEach(option => {
+ option.addEventListener('change', e => {
+ const value = e.target.value;
+
+ switch (value) {
+ case '2': {
+ percentageEl.classList.remove('d-none');
+ fixedEl.classList.add('d-none');
+ break;
+ }
+ case '3': {
+ percentageEl.classList.add('d-none');
+ fixedEl.classList.remove('d-none');
+ break;
+ }
+ default: {
+ percentageEl.classList.add('d-none');
+ fixedEl.classList.add('d-none');
+ break;
+ }
+ }
+ });
+ });
+ }
+
+ // Shipping option handler
+ const handleShipping = () => {
+ const shippingOption = document.getElementById('kt_ecommerce_add_product_shipping_checkbox');
+ const shippingForm = document.getElementById('kt_ecommerce_add_product_shipping');
+
+ shippingOption.addEventListener('change', e => {
+ const value = e.target.checked;
+
+ if (value) {
+ shippingForm.classList.remove('d-none');
+ } else {
+ shippingForm.classList.add('d-none');
+ }
+ });
+ }
+
+ // Category status handler
+ const handleStatus = () => {
+ const target = document.getElementById('kt_ecommerce_add_product_status');
+ const select = document.getElementById('kt_ecommerce_add_product_status_select');
+ const statusClasses = ['bg-success', 'bg-warning', 'bg-danger'];
+
+ $(select).on('change', function (e) {
+ const value = e.target.value;
+
+ switch (value) {
+ case "published": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-success');
+ hideDatepicker();
+ break;
+ }
+ case "scheduled": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-warning');
+ showDatepicker();
+ break;
+ }
+ case "inactive": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-danger');
+ hideDatepicker();
+ break;
+ }
+ case "draft": {
+ target.classList.remove(...statusClasses);
+ target.classList.add('bg-primary');
+ hideDatepicker();
+ break;
+ }
+ default:
+ break;
+ }
+ });
+
+
+ // Handle datepicker
+ const datepicker = document.getElementById('kt_ecommerce_add_product_status_datepicker');
+
+ // Init flatpickr --- more info: https://flatpickr.js.org/
+ $('#kt_ecommerce_add_product_status_datepicker').flatpickr({
+ enableTime: true,
+ dateFormat: "Y-m-d H:i",
+ });
+
+ const showDatepicker = () => {
+ datepicker.parentNode.classList.remove('d-none');
+ }
+
+ const hideDatepicker = () => {
+ datepicker.parentNode.classList.add('d-none');
+ }
+ }
+
+ // Condition type handler
+ const handleConditions = () => {
+ const allConditions = document.querySelectorAll('[name="method"][type="radio"]');
+ const conditionMatch = document.querySelector('[data-kt-ecommerce-catalog-add-category="auto-options"]');
+ allConditions.forEach(radio => {
+ radio.addEventListener('change', e => {
+ if (e.target.value === '1') {
+ conditionMatch.classList.remove('d-none');
+ } else {
+ conditionMatch.classList.add('d-none');
+ }
+ });
+ })
+ }
+
+ // Submit form handler
+ const handleSubmit = () => {
+ // Define variables
+ let validator;
+
+ // Get elements
+ const form = document.getElementById('kt_ecommerce_add_product_form');
+ const submitButton = document.getElementById('kt_ecommerce_add_product_submit');
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'product_name': {
+ validators: {
+ notEmpty: {
+ message: 'Product name is required'
+ }
+ }
+ },
+ 'sku': {
+ validators: {
+ notEmpty: {
+ message: 'SKU is required'
+ }
+ }
+ },
+ 'sku': {
+ validators: {
+ notEmpty: {
+ message: 'Product barcode is required'
+ }
+ }
+ },
+ 'shelf': {
+ validators: {
+ notEmpty: {
+ message: 'Shelf quantity is required'
+ }
+ }
+ },
+ 'price': {
+ validators: {
+ notEmpty: {
+ message: 'Product base price is required'
+ }
+ }
+ },
+ 'tax': {
+ validators: {
+ notEmpty: {
+ message: 'Product tax class is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Handle submit button
+ submitButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function () {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Redirect to customers list page
+ window.location = form.getAttribute("data-kt-redirect");
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ html: "Sorry, looks like there are some errors detected, please try again.
Please note that there may be errors in the General or Advanced tabs",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ })
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Init forms
+ initQuill();
+ initTagify();
+ initSlider();
+ initFormRepeater();
+ initDropzone();
+ initConditionsSelect2();
+
+ // Handle forms
+ handleStatus();
+ handleConditions();
+ handleDiscount();
+ handleShipping();
+ handleSubmit();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceSaveProduct.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-address.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-address.js
new file mode 100644
index 0000000..2bf9ffc
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-address.js
@@ -0,0 +1,214 @@
+"use strict";
+
+// Class definition
+var KTModalAddAddress = function () {
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'Address name is required'
+ }
+ }
+ },
+ 'country': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ },
+ 'address1': {
+ validators: {
+ notEmpty: {
+ message: 'Address 1 is required'
+ }
+ }
+ },
+ 'city': {
+ validators: {
+ notEmpty: {
+ message: 'City is required'
+ }
+ }
+ },
+ 'state': {
+ validators: {
+ notEmpty: {
+ message: 'State is required'
+ }
+ }
+ },
+ 'postcode': {
+ validators: {
+ notEmpty: {
+ message: 'Postcode is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="country"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('country');
+ });
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Hide modal
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function(e){
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ })
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modal = new bootstrap.Modal(document.querySelector('#kt_modal_add_address'));
+
+ form = document.querySelector('#kt_modal_add_address_form');
+ submitButton = form.querySelector('#kt_modal_add_address_submit');
+ cancelButton = form.querySelector('#kt_modal_add_address_cancel');
+ closeButton = form.querySelector('#kt_modal_add_address_close');
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalAddAddress.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-auth-app.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-auth-app.js
new file mode 100644
index 0000000..ca71185
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-auth-app.js
@@ -0,0 +1,81 @@
+"use strict";
+
+// Class definition
+var KTUsersAddAuthApp = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_auth_app');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initAddAuthApp = () => {
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ }
+
+ // QR code to text code swapper
+ var initCodeSwap = () => {
+ const qrCode = element.querySelector('[ data-kt-add-auth-action="qr-code"]');
+ const textCode = element.querySelector('[ data-kt-add-auth-action="text-code"]');
+ const qrCodeButton = element.querySelector('[ data-kt-add-auth-action="qr-code-button"]');
+ const textCodeButton = element.querySelector('[ data-kt-add-auth-action="text-code-button"]');
+ const qrCodeLabel = element.querySelector('[ data-kt-add-auth-action="qr-code-label"]');
+ const textCodeLabel = element.querySelector('[ data-kt-add-auth-action="text-code-label"]');
+
+ const toggleClass = () =>{
+ qrCode.classList.toggle('d-none');
+ qrCodeButton.classList.toggle('d-none');
+ qrCodeLabel.classList.toggle('d-none');
+ textCode.classList.toggle('d-none');
+ textCodeButton.classList.toggle('d-none');
+ textCodeLabel.classList.toggle('d-none');
+ }
+
+ // Swap to text code handler
+ textCodeButton.addEventListener('click', e =>{
+ e.preventDefault();
+
+ toggleClass();
+ });
+
+ qrCodeButton.addEventListener('click', e =>{
+ e.preventDefault();
+
+ toggleClass();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddAuthApp();
+ initCodeSwap();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddAuthApp.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-one-time-password.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-one-time-password.js
new file mode 100644
index 0000000..af78deb
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/add-one-time-password.js
@@ -0,0 +1,173 @@
+"use strict";
+
+// Class definition
+var KTUsersAddOneTimePassword = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_one_time_password');
+ const form = element.querySelector('#kt_modal_add_one_time_password_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init one time password modal
+ var initAddOneTimePassword = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'otp_mobile_number': {
+ validators: {
+ notEmpty: {
+ message: 'Valid mobile number is required'
+ }
+ }
+ },
+ 'otp_confirm_password': {
+ validators: {
+ notEmpty: {
+ message: 'Password confirmation is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddOneTimePassword();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddOneTimePassword.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/payment-method.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/payment-method.js
new file mode 100644
index 0000000..f63d912
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/payment-method.js
@@ -0,0 +1,110 @@
+"use strict";
+
+// Class definition
+var KTCustomerViewPaymentMethod = function () {
+
+ // Private functions
+ var initPaymentMethod = function () {
+ // Define variables
+ const table = document.getElementById('kt_customer_view_payment_method');
+ const tableRows = table.querySelectorAll('[ data-kt-customer-payment-method="row"]');
+
+ tableRows.forEach(row => {
+ // Select delete button
+ const deleteButton = row.querySelector('[data-kt-customer-payment-method="delete"]');
+
+ // Delete button action
+ deleteButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Popup confirmation
+ Swal.fire({
+ text: "Are you sure you would like to delete this card?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ row.remove();
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your card was not deleted!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ });
+ }
+
+ // Handle set as primary button
+ const handlePrimaryButton = () => {
+ // Define variable
+ const button = document.querySelector('[data-kt-payment-mehtod-action="set_as_primary"]');
+
+ button.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Popup confirmation
+ Swal.fire({
+ text: "Are you sure you would like to set this card as primary?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, set it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "Your card was set to primary!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your card was not set to primary!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initPaymentMethod();
+ handlePrimaryButton();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomerViewPaymentMethod.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/transaction-history.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/transaction-history.js
new file mode 100644
index 0000000..30fba5d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/transaction-history.js
@@ -0,0 +1,110 @@
+"use strict";
+
+// Class definition
+var KTCustomerViewPaymentTable = function () {
+
+ // Define shared variables
+ var datatable;
+ var table = document.querySelector('#kt_table_customers_payment');
+
+ // Private functions
+ var initCustomerView = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[3].innerHTML, "DD MMM YYYY, LT").format(); // select date from 4th column in table
+ dateRow[3].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 4 }, // Disable ordering on column 5 (actions)
+ ]
+ });
+ }
+
+ // Delete customer
+ var deleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-customer-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const invoiceNumber = parent.querySelectorAll('td')[0].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + invoiceNumber + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + invoiceNumber + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ }).then(function () {
+ // Detect checked checkboxes
+ toggleToolbars();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ if (!table) {
+ return;
+ }
+
+ initCustomerView();
+ deleteRows();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomerViewPaymentTable.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-address.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-address.js
new file mode 100644
index 0000000..a667f85
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-address.js
@@ -0,0 +1,217 @@
+"use strict";
+
+// Class definition
+var KTModalUpdateAddress = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var form;
+ var modal;
+ var validator;
+
+ // Init form inputs
+ var initForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'Address name is required'
+ }
+ }
+ },
+ 'country': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ },
+ 'address1': {
+ validators: {
+ notEmpty: {
+ message: 'Address 1 is required'
+ }
+ }
+ },
+ 'city': {
+ validators: {
+ notEmpty: {
+ message: 'City is required'
+ }
+ }
+ },
+ 'state': {
+ validators: {
+ notEmpty: {
+ message: 'State is required'
+ }
+ }
+ },
+ 'postcode': {
+ validators: {
+ notEmpty: {
+ message: 'Postcode is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="country"]')).on('change', function () {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('country');
+ });
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Hide modal
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_modal_update_address');
+ modal = new bootstrap.Modal(element);
+
+ form = element.querySelector('#kt_modal_update_address_form');
+ submitButton = form.querySelector('#kt_modal_update_address_submit');
+ cancelButton = form.querySelector('#kt_modal_update_address_cancel');
+ closeButton = element.querySelector('#kt_modal_update_address_close');
+
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalUpdateAddress.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-password.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-password.js
new file mode 100644
index 0000000..9110a89
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-password.js
@@ -0,0 +1,194 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdatePassword = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_password');
+ const form = element.querySelector('#kt_modal_update_password_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdatePassword = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'current_password': {
+ validators: {
+ notEmpty: {
+ message: 'Current password is required'
+ }
+ }
+ },
+ 'new_password': {
+ validators: {
+ notEmpty: {
+ message: 'The password is required'
+ },
+ callback: {
+ message: 'Please enter valid password',
+ callback: function (input) {
+ if (input.value.length > 0) {
+ return validatePassword();
+ }
+ }
+ }
+ }
+ },
+ 'confirm_password': {
+ validators: {
+ notEmpty: {
+ message: 'The password confirmation is required'
+ },
+ identical: {
+ compare: function () {
+ return form.querySelector('[name="new_password"]').value;
+ },
+ message: 'The password and its confirm are not the same'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdatePassword();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdatePassword.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-phone.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-phone.js
new file mode 100644
index 0000000..81c437a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-phone.js
@@ -0,0 +1,166 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdateEmail = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_phone');
+ const form = element.querySelector('#kt_modal_update_phone_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdateEmail = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'profile_phone': {
+ validators: {
+ notEmpty: {
+ message: 'Phone number is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdateEmail();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdateEmail.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-profile.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-profile.js
new file mode 100644
index 0000000..6060181
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/details/update-profile.js
@@ -0,0 +1,106 @@
+"use strict";
+
+// Class definition
+var KTEcommerceUpdateProfile = function () {
+ var submitButton;
+ var validator;
+ var form;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'Name is required'
+ }
+ }
+ },
+ 'gen_email': {
+ validators: {
+ notEmpty: {
+ message: 'General Email is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Your profile has been saved!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ form = document.querySelector('#kt_ecommerce_customer_profile');
+ submitButton = form.querySelector('#kt_ecommerce_customer_profile_submit');
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTEcommerceUpdateProfile.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/add.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/add.js
new file mode 100644
index 0000000..df35986
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/add.js
@@ -0,0 +1,238 @@
+"use strict";
+
+// Class definition
+var KTModalCustomersAdd = function () {
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'Customer name is required'
+ }
+ }
+ },
+ 'email': {
+ validators: {
+ notEmpty: {
+ message: 'Customer email is required'
+ }
+ }
+ },
+ 'first-name': {
+ validators: {
+ notEmpty: {
+ message: 'First name is required'
+ }
+ }
+ },
+ 'last-name': {
+ validators: {
+ notEmpty: {
+ message: 'Last name is required'
+ }
+ }
+ },
+ 'country': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ },
+ 'address1': {
+ validators: {
+ notEmpty: {
+ message: 'Address 1 is required'
+ }
+ }
+ },
+ 'city': {
+ validators: {
+ notEmpty: {
+ message: 'City is required'
+ }
+ }
+ },
+ 'state': {
+ validators: {
+ notEmpty: {
+ message: 'State is required'
+ }
+ }
+ },
+ 'postcode': {
+ validators: {
+ notEmpty: {
+ message: 'Postcode is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="country"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('country');
+ });
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Hide modal
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Redirect to customers list page
+ window.location = form.getAttribute("data-kt-redirect");
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function(e){
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ })
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modal = new bootstrap.Modal(document.querySelector('#kt_modal_add_customer'));
+
+ form = document.querySelector('#kt_modal_add_customer_form');
+ submitButton = form.querySelector('#kt_modal_add_customer_submit');
+ cancelButton = form.querySelector('#kt_modal_add_customer_cancel');
+ closeButton = form.querySelector('#kt_modal_add_customer_close');
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalCustomersAdd.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/export.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/export.js
new file mode 100644
index 0000000..257159e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/export.js
@@ -0,0 +1,189 @@
+"use strict";
+
+// Class definition
+var KTCustomersExport = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'date': {
+ validators: {
+ notEmpty: {
+ message: 'Date range is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Customer list has been successfully exported!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function(e){
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ var initForm = function () {
+ const datepicker = form.querySelector("[name=date]");
+
+ // Handle datepicker range -- For more info on flatpickr plugin, please visit: https://flatpickr.js.org/
+ $(datepicker).flatpickr({
+ altInput: true,
+ altFormat: "F j, Y",
+ dateFormat: "Y-m-d",
+ mode: "range"
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_customers_export_modal');
+ modal = new bootstrap.Modal(element);
+
+ form = document.querySelector('#kt_customers_export_form');
+ submitButton = form.querySelector('#kt_customers_export_submit');
+ cancelButton = form.querySelector('#kt_customers_export_cancel');
+ closeButton = element.querySelector('#kt_customers_export_close');
+
+ handleForm();
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomersExport.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/listing.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/listing.js
new file mode 100644
index 0000000..f92760c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/customers/listing/listing.js
@@ -0,0 +1,242 @@
+"use strict";
+
+// Class definition
+var KTCustomersList = function () {
+ // Define shared variables
+ var datatable;
+ var filterMonth;
+ var filterPayment;
+ var table
+
+ // Private functions
+ var initCustomerList = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[5].innerHTML, "DD MMM YYYY, LT").format(); // select date from 5th column in table
+ dateRow[5].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 6 }, // Disable ordering on column 6 (actions)
+ ]
+ });
+
+ // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw
+ datatable.on('draw', function () {
+ initToggleToolbar();
+ handleDeleteRows();
+ toggleToolbars();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-customer-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Delete customer
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-customer-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const customerName = parent.querySelectorAll('td')[1].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + customerName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + customerName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Handle status filter dropdown
+ var handleStatusFilter = () => {
+ const filterStatus = document.querySelector('[data-kt-ecommerce-order-filter="status"]');
+ $(filterStatus).on('change', e => {
+ let value = e.target.value;
+ if (value === 'all') {
+ value = '';
+ }
+ datatable.column(3).search(value).draw();
+ });
+ }
+
+ // Init toggle toolbar
+ var initToggleToolbar = () => {
+ // Toggle selected action toolbar
+ // Select all checkboxes
+ const checkboxes = table.querySelectorAll('[type="checkbox"]');
+
+ // Select elements
+ const deleteSelected = document.querySelector('[data-kt-customer-table-select="delete_selected"]');
+
+ // Toggle delete selected toolbar
+ checkboxes.forEach(c => {
+ // Checkbox on click event
+ c.addEventListener('click', function () {
+ setTimeout(function () {
+ toggleToolbars();
+ }, 50);
+ });
+ });
+
+ // Deleted selected rows
+ deleteSelected.addEventListener('click', function () {
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete selected customers?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted all selected customers!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove all selected customers
+ checkboxes.forEach(c => {
+ if (c.checked) {
+ datatable.row($(c.closest('tbody tr'))).remove().draw();
+ }
+ });
+
+ // Remove header checked box
+ const headerCheckbox = table.querySelectorAll('[type="checkbox"]')[0];
+ headerCheckbox.checked = false;
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Selected customers was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Toggle toolbars
+ const toggleToolbars = () => {
+ // Define variables
+ const toolbarBase = document.querySelector('[data-kt-customer-table-toolbar="base"]');
+ const toolbarSelected = document.querySelector('[data-kt-customer-table-toolbar="selected"]');
+ const selectedCount = document.querySelector('[data-kt-customer-table-select="selected_count"]');
+
+ // Select refreshed checkbox DOM elements
+ const allCheckboxes = table.querySelectorAll('tbody [type="checkbox"]');
+
+ // Detect checkboxes state & count
+ let checkedState = false;
+ let count = 0;
+
+ // Count checked boxes
+ allCheckboxes.forEach(c => {
+ if (c.checked) {
+ checkedState = true;
+ count++;
+ }
+ });
+
+ // Toggle toolbars
+ if (checkedState) {
+ selectedCount.innerHTML = count;
+ toolbarBase.classList.add('d-none');
+ toolbarSelected.classList.remove('d-none');
+ } else {
+ toolbarBase.classList.remove('d-none');
+ toolbarSelected.classList.add('d-none');
+ }
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_customers_table');
+
+ if (!table) {
+ return;
+ }
+
+ initCustomerList();
+ initToggleToolbar();
+ handleSearchDatatable();
+ handleDeleteRows();
+ handleStatusFilter();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCustomersList.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/customer-orders/customer-orders.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/customer-orders/customer-orders.js
new file mode 100644
index 0000000..1a7f75f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/customer-orders/customer-orders.js
@@ -0,0 +1,136 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceReportCustomerOrders = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[3].innerHTML, "DD MMM YYYY, LT").format(); // select date from 4th column in table
+ dateRow[3].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ });
+ }
+
+ // Init daterangepicker
+ var initDaterangepicker = () => {
+ var start = moment().subtract(29, "days");
+ var end = moment();
+ var input = $("#kt_ecommerce_report_customer_orders_daterangepicker");
+
+ function cb(start, end) {
+ input.html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
+ }
+
+ input.daterangepicker({
+ startDate: start,
+ endDate: end,
+ ranges: {
+ "Today": [moment(), moment()],
+ "Yesterday": [moment().subtract(1, "days"), moment().subtract(1, "days")],
+ "Last 7 Days": [moment().subtract(6, "days"), moment()],
+ "Last 30 Days": [moment().subtract(29, "days"), moment()],
+ "This Month": [moment().startOf("month"), moment().endOf("month")],
+ "Last Month": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")]
+ }
+ }, cb);
+
+ cb(start, end);
+ }
+
+ // Handle status filter dropdown
+ var handleStatusFilter = () => {
+ const filterStatus = document.querySelector('[data-kt-ecommerce-order-filter="status"]');
+ $(filterStatus).on('change', e => {
+ let value = e.target.value;
+ if (value === 'all') {
+ value = '';
+ }
+ datatable.column(2).search(value).draw();
+ });
+ }
+
+ // Hook export buttons
+ var exportButtons = () => {
+ const documentTitle = 'Customer Orders Report';
+ var buttons = new $.fn.dataTable.Buttons(table, {
+ buttons: [
+ {
+ extend: 'copyHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'excelHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'csvHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'pdfHtml5',
+ title: documentTitle
+ }
+ ]
+ }).container().appendTo($('#kt_ecommerce_report_customer_orders_export'));
+
+ // Hook dropdown menu click event to datatable export buttons
+ const exportButtons = document.querySelectorAll('#kt_ecommerce_report_customer_orders_export_menu [data-kt-ecommerce-export]');
+ exportButtons.forEach(exportButton => {
+ exportButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Get clicked export value
+ const exportValue = e.target.getAttribute('data-kt-ecommerce-export');
+ const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
+
+ // Trigger click event on hidden datatable export buttons
+ target.click();
+ });
+ });
+ }
+
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_report_customer_orders_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initDaterangepicker();
+ exportButtons();
+ handleSearchDatatable();
+ handleStatusFilter();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceReportCustomerOrders.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/returns/returns.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/returns/returns.js
new file mode 100644
index 0000000..0c09260
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/returns/returns.js
@@ -0,0 +1,123 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceReportReturns = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "MMM DD, YYYY").format(); // select date from 4th column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ });
+ }
+
+ // Init daterangepicker
+ var initDaterangepicker = () => {
+ var start = moment().subtract(29, "days");
+ var end = moment();
+ var input = $("#kt_ecommerce_report_returns_daterangepicker");
+
+ function cb(start, end) {
+ input.html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
+ }
+
+ input.daterangepicker({
+ startDate: start,
+ endDate: end,
+ ranges: {
+ "Today": [moment(), moment()],
+ "Yesterday": [moment().subtract(1, "days"), moment().subtract(1, "days")],
+ "Last 7 Days": [moment().subtract(6, "days"), moment()],
+ "Last 30 Days": [moment().subtract(29, "days"), moment()],
+ "This Month": [moment().startOf("month"), moment().endOf("month")],
+ "Last Month": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")]
+ }
+ }, cb);
+
+ cb(start, end);
+ }
+
+ // Hook export buttons
+ var exportButtons = () => {
+ const documentTitle = 'Returns Report';
+ var buttons = new $.fn.dataTable.Buttons(table, {
+ buttons: [
+ {
+ extend: 'copyHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'excelHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'csvHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'pdfHtml5',
+ title: documentTitle
+ }
+ ]
+ }).container().appendTo($('#kt_ecommerce_report_returns_export'));
+
+ // Hook dropdown menu click event to datatable export buttons
+ const exportButtons = document.querySelectorAll('#kt_ecommerce_report_returns_export_menu [data-kt-ecommerce-export]');
+ exportButtons.forEach(exportButton => {
+ exportButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Get clicked export value
+ const exportValue = e.target.getAttribute('data-kt-ecommerce-export');
+ const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
+
+ // Trigger click event on hidden datatable export buttons
+ target.click();
+ });
+ });
+ }
+
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_report_returns_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initDaterangepicker();
+ exportButtons();
+ handleSearchDatatable();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceReportReturns.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/sales/sales.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/sales/sales.js
new file mode 100644
index 0000000..9978dea
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/sales/sales.js
@@ -0,0 +1,124 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceReportSales = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "MMM DD, YYYY").format(); // select date from 4th column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ });
+ }
+
+ // Init daterangepicker
+ var initDaterangepicker = () => {
+ var start = moment().subtract(29, "days");
+ var end = moment();
+ var input = $("#kt_ecommerce_report_sales_daterangepicker");
+
+ function cb(start, end) {
+ input.html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
+ }
+
+ input.daterangepicker({
+ startDate: start,
+ endDate: end,
+ ranges: {
+ "Today": [moment(), moment()],
+ "Yesterday": [moment().subtract(1, "days"), moment().subtract(1, "days")],
+ "Last 7 Days": [moment().subtract(6, "days"), moment()],
+ "Last 30 Days": [moment().subtract(29, "days"), moment()],
+ "This Month": [moment().startOf("month"), moment().endOf("month")],
+ "Last Month": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")]
+ }
+ }, cb);
+
+ cb(start, end);
+ }
+
+ // Hook export buttons
+ var exportButtons = () => {
+ const documentTitle = 'Sales Report';
+ var buttons = new $.fn.dataTable.Buttons(table, {
+ buttons: [
+ {
+ extend: 'copyHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'excelHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'csvHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'pdfHtml5',
+ title: documentTitle
+ }
+ ]
+ }).container().appendTo($('#kt_ecommerce_report_sales_export'));
+
+ // Hook dropdown menu click event to datatable export buttons
+ const exportButtons = document.querySelectorAll('#kt_ecommerce_report_sales_export_menu [data-kt-ecommerce-export]');
+ exportButtons.forEach(exportButton => {
+ exportButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Get clicked export value
+ const exportValue = e.target.getAttribute('data-kt-ecommerce-export');
+ const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
+
+ // Trigger click event on hidden datatable export buttons
+ target.click();
+ });
+ });
+ }
+
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_report_sales_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initDaterangepicker();
+ exportButtons();
+ handleSearchDatatable();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceReportSales.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/shipping/shipping.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/shipping/shipping.js
new file mode 100644
index 0000000..75f12f9
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/shipping/shipping.js
@@ -0,0 +1,137 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceReportShipping = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[0].innerHTML, "MMM DD, YYYY").format(); // select date from 4th column in table
+ dateRow[0].setAttribute('data-order', realDate);
+ });
+
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ });
+ }
+
+ // Init daterangepicker
+ var initDaterangepicker = () => {
+ var start = moment().subtract(29, "days");
+ var end = moment();
+ var input = $("#kt_ecommerce_report_shipping_daterangepicker");
+
+ function cb(start, end) {
+ input.html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
+ }
+
+ input.daterangepicker({
+ startDate: start,
+ endDate: end,
+ ranges: {
+ "Today": [moment(), moment()],
+ "Yesterday": [moment().subtract(1, "days"), moment().subtract(1, "days")],
+ "Last 7 Days": [moment().subtract(6, "days"), moment()],
+ "Last 30 Days": [moment().subtract(29, "days"), moment()],
+ "This Month": [moment().startOf("month"), moment().endOf("month")],
+ "Last Month": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")]
+ }
+ }, cb);
+
+ cb(start, end);
+ }
+
+ // Handle status filter dropdown
+ var handleStatusFilter = () => {
+ const filterStatus = document.querySelector('[data-kt-ecommerce-order-filter="status"]');
+ $(filterStatus).on('change', e => {
+ let value = e.target.value;
+ if (value === 'all') {
+ value = '';
+ }
+ datatable.column(3).search(value).draw();
+ });
+ }
+
+ // Hook export buttons
+ var exportButtons = () => {
+ const documentTitle = 'Shipping Report';
+ var buttons = new $.fn.dataTable.Buttons(table, {
+ buttons: [
+ {
+ extend: 'copyHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'excelHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'csvHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'pdfHtml5',
+ title: documentTitle
+ }
+ ]
+ }).container().appendTo($('#kt_ecommerce_report_shipping_export'));
+
+ // Hook dropdown menu click event to datatable export buttons
+ const exportButtons = document.querySelectorAll('#kt_ecommerce_report_shipping_export_menu [data-kt-ecommerce-export]');
+ exportButtons.forEach(exportButton => {
+ exportButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Get clicked export value
+ const exportValue = e.target.getAttribute('data-kt-ecommerce-export');
+ const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
+
+ // Trigger click event on hidden datatable export buttons
+ target.click();
+ });
+ });
+ }
+
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_report_shipping_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initDaterangepicker();
+ exportButtons();
+ handleSearchDatatable();
+ handleStatusFilter();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceReportShipping.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/views/views.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/views/views.js
new file mode 100644
index 0000000..1907350
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/reports/views/views.js
@@ -0,0 +1,127 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceReportViews = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ });
+ }
+
+ // Init daterangepicker
+ var initDaterangepicker = () => {
+ var start = moment().subtract(29, "days");
+ var end = moment();
+ var input = $("#kt_ecommerce_report_views_daterangepicker");
+
+ function cb(start, end) {
+ input.html(start.format("MMMM D, YYYY") + " - " + end.format("MMMM D, YYYY"));
+ }
+
+ input.daterangepicker({
+ startDate: start,
+ endDate: end,
+ ranges: {
+ "Today": [moment(), moment()],
+ "Yesterday": [moment().subtract(1, "days"), moment().subtract(1, "days")],
+ "Last 7 Days": [moment().subtract(6, "days"), moment()],
+ "Last 30 Days": [moment().subtract(29, "days"), moment()],
+ "This Month": [moment().startOf("month"), moment().endOf("month")],
+ "Last Month": [moment().subtract(1, "month").startOf("month"), moment().subtract(1, "month").endOf("month")]
+ }
+ }, cb);
+
+ cb(start, end);
+ }
+
+ // Handle rating filter dropdown
+ var handleStatusFilter = () => {
+ const filterStatus = document.querySelector('[data-kt-ecommerce-order-filter="rating"]');
+ $(filterStatus).on('change', e => {
+ let value = e.target.value;
+ if (value === 'all') {
+ value = '';
+ }
+ datatable.column(2).search(value).draw();
+ });
+ }
+
+ // Hook export buttons
+ var exportButtons = () => {
+ const documentTitle = 'Product Views Report';
+ var buttons = new $.fn.dataTable.Buttons(table, {
+ buttons: [
+ {
+ extend: 'copyHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'excelHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'csvHtml5',
+ title: documentTitle
+ },
+ {
+ extend: 'pdfHtml5',
+ title: documentTitle
+ }
+ ]
+ }).container().appendTo($('#kt_ecommerce_report_views_export'));
+
+ // Hook dropdown menu click event to datatable export buttons
+ const exportButtons = document.querySelectorAll('#kt_ecommerce_report_views_export_menu [data-kt-ecommerce-export]');
+ exportButtons.forEach(exportButton => {
+ exportButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Get clicked export value
+ const exportValue = e.target.getAttribute('data-kt-ecommerce-export');
+ const target = document.querySelector('.dt-buttons .buttons-' + exportValue);
+
+ // Trigger click event on hidden datatable export buttons
+ target.click();
+ });
+ });
+ }
+
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_report_views_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initDaterangepicker();
+ exportButtons();
+ handleSearchDatatable();
+ handleStatusFilter();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceReportViews.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/sales/listing.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/sales/listing.js
new file mode 100644
index 0000000..fa807e6
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/sales/listing.js
@@ -0,0 +1,181 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceSalesListing = function () {
+ // Shared variables
+ var table;
+ var datatable;
+ var flatpickr;
+ var minDate, maxDate;
+
+ // Private functions
+ var initDatatable = function () {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 7 }, // Disable ordering on column 7 (actions)
+ ]
+ });
+
+ // Re-init functions on datatable re-draws
+ datatable.on('draw', function () {
+ handleDeleteRows();
+ });
+ }
+
+ // Init flatpickr --- more info :https://flatpickr.js.org/getting-started/
+ var initFlatpickr = () => {
+ const element = document.querySelector('#kt_ecommerce_sales_flatpickr');
+ flatpickr = $(element).flatpickr({
+ altInput: true,
+ altFormat: "d/m/Y",
+ dateFormat: "Y-m-d",
+ mode: "range",
+ onChange: function (selectedDates, dateStr, instance) {
+ handleFlatpickr(selectedDates, dateStr, instance);
+ },
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Handle status filter dropdown
+ var handleStatusFilter = () => {
+ const filterStatus = document.querySelector('[data-kt-ecommerce-order-filter="status"]');
+ $(filterStatus).on('change', e => {
+ let value = e.target.value;
+ if (value === 'all') {
+ value = '';
+ }
+ datatable.column(3).search(value).draw();
+ });
+ }
+
+ // Handle flatpickr --- more info: https://flatpickr.js.org/events/
+ var handleFlatpickr = (selectedDates, dateStr, instance) => {
+ minDate = selectedDates[0] ? new Date(selectedDates[0]) : null;
+ maxDate = selectedDates[1] ? new Date(selectedDates[1]) : null;
+
+ // Datatable date filter --- more info: https://datatables.net/extensions/datetime/examples/integration/datatables.html
+ // Custom filtering function which will search data in column four between two values
+ $.fn.dataTable.ext.search.push(
+ function (settings, data, dataIndex) {
+ var min = minDate;
+ var max = maxDate;
+ var dateAdded = new Date(moment($(data[5]).text(), 'DD/MM/YYYY'));
+ var dateModified = new Date(moment($(data[6]).text(), 'DD/MM/YYYY'));
+
+ if (
+ (min === null && max === null) ||
+ (min === null && max >= dateModified) ||
+ (min <= dateAdded && max === null) ||
+ (min <= dateAdded && max >= dateModified)
+ ) {
+ return true;
+ }
+ return false;
+ }
+ );
+ datatable.draw();
+ }
+
+ // Handle clear flatpickr
+ var handleClearFlatpickr = () => {
+ const clearButton = document.querySelector('#kt_ecommerce_sales_flatpickr_clear');
+ clearButton.addEventListener('click', e => {
+ flatpickr.clear();
+ });
+ }
+
+ // Delete cateogry
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-ecommerce-order-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get category name
+ const orderID = parent.querySelector('[data-kt-ecommerce-order-filter="order_id"]').innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete order: " + orderID + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + orderID + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: orderID + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_ecommerce_sales_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initFlatpickr();
+ handleSearchDatatable();
+ handleStatusFilter();
+ handleDeleteRows();
+ handleClearFlatpickr();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceSalesListing.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/sales/save-order.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/sales/save-order.js
new file mode 100644
index 0000000..c0b94f4
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/sales/save-order.js
@@ -0,0 +1,338 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceSalesSaveOrder = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ // Private functions
+ const initSaveOrder = () => {
+ // Init flatpickr
+ $('#kt_ecommerce_edit_order_date').flatpickr({
+ altInput: true,
+ altFormat: "d F, Y",
+ dateFormat: "Y-m-d",
+ });
+
+ // Init select2 country options
+ // Format options
+ const optionFormat = (item) => {
+ if ( !item.id ) {
+ return item.text;
+ }
+
+ var span = document.createElement('span');
+ var template = '';
+
+ template += '
';
+ template += item.text;
+
+ span.innerHTML = template;
+
+ return $(span);
+ }
+
+ // Init Select2 --- more info: https://select2.org/
+ $('#kt_ecommerce_edit_order_billing_country').select2({
+ placeholder: "Select a country",
+ minimumResultsForSearch: Infinity,
+ templateSelection: optionFormat,
+ templateResult: optionFormat
+ });
+
+ $('#kt_ecommerce_edit_order_shipping_country').select2({
+ placeholder: "Select a country",
+ minimumResultsForSearch: Infinity,
+ templateSelection: optionFormat,
+ templateResult: optionFormat
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ table = document.querySelector('#kt_ecommerce_edit_order_product_table');
+ datatable = $(table).DataTable({
+ 'order': [],
+ "scrollY": "400px",
+ "scrollCollapse": true,
+ "paging": false,
+ "info": false,
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ ]
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-ecommerce-edit-order-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Handle shipping form
+ const handleShippingForm = () => {
+ // Select elements
+ const element = document.getElementById('kt_ecommerce_edit_order_shipping_form');
+ const checkbox = document.getElementById('same_as_billing');
+
+ // Show/hide shipping form
+ checkbox.addEventListener('change', e => {
+ if (e.target.checked) {
+ element.classList.add('d-none');
+ } else {
+ element.classList.remove('d-none');
+ }
+ });
+ }
+
+ // Handle product select
+ const handleProductSelect = () => {
+ // Define variables
+ const checkboxes = table.querySelectorAll('[type="checkbox"]');
+ const target = document.getElementById('kt_ecommerce_edit_order_selected_products');
+ const totalPrice = document.getElementById('kt_ecommerce_edit_order_total_price');
+
+ // Loop through all checked products
+ checkboxes.forEach(checkbox => {
+ checkbox.addEventListener('change', e => {
+ // Select parent row element
+ const parent = checkbox.closest('tr');
+
+ // Clone parent element as variable
+ const product = parent.querySelector('[data-kt-ecommerce-edit-order-filter="product"]').cloneNode(true);
+
+ // Create inner wrapper
+ const innerWrapper = document.createElement('div');
+
+ // Store inner content
+ const innerContent = product.innerHTML;
+
+ // Add & remove classes on parent wrapper
+ const wrapperClassesAdd = ['col', 'my-2'];
+ const wrapperClassesRemove = ['d-flex', 'align-items-center'];
+
+ // Define additional classes
+ const additionalClasses = ['border', 'border-dashed', 'rounded', 'p-3', 'bg-body'];
+
+ // Update parent wrapper classes
+ product.classList.remove(...wrapperClassesRemove);
+ product.classList.add(...wrapperClassesAdd);
+
+ // Remove parent default content
+ product.innerHTML = '';
+
+ // Update inner wrapper classes
+ innerWrapper.classList.add(...wrapperClassesRemove);
+ innerWrapper.classList.add(...additionalClasses);
+
+ // Apply stored inner content into new inner wrapper
+ innerWrapper.innerHTML = innerContent;
+
+ // Append new inner wrapper to parent wrapper
+ product.appendChild(innerWrapper);
+
+ // Get product id
+ const productId = product.getAttribute('data-kt-ecommerce-edit-order-id');
+
+ if (e.target.checked) {
+ // Add product to selected product wrapper
+ target.appendChild(product);
+ } else {
+ // Remove product from selected product wrapper
+ const selectedProduct = target.querySelector('[data-kt-ecommerce-edit-order-id="' + productId + '"]');
+ if (selectedProduct) {
+ target.removeChild(selectedProduct);
+ }
+ }
+
+ // Trigger empty message logic
+ detectEmpty();
+ });
+ });
+
+ // Handle empty list message
+ const detectEmpty = () => {
+ // Select elements
+ const message = target.querySelector('span');
+ const products = target.querySelectorAll('[data-kt-ecommerce-edit-order-filter="product"]');
+
+ // Detect if element is empty
+ if (products.length < 1) {
+ // Show message
+ message.classList.remove('d-none');
+
+ // Reset price
+ totalPrice.innerText = '0.00';
+ } else {
+ // Hide message
+ message.classList.add('d-none');
+
+ // Calculate price
+ calculateTotal(products);
+ }
+ }
+
+ // Calculate total cost
+ const calculateTotal = (products) => {
+ let countPrice = 0;
+
+ // Loop through all selected prodcucts
+ products.forEach(product => {
+ // Get product price
+ const price = parseFloat(product.querySelector('[data-kt-ecommerce-edit-order-filter="price"]').innerText);
+
+ // Add to total
+ countPrice = parseFloat(countPrice + price);
+ });
+
+ // Update total price
+ totalPrice.innerText = countPrice.toFixed(2);
+ }
+ }
+
+ // Submit form handler
+ const handleSubmit = () => {
+ // Define variables
+ let validator;
+
+ // Get elements
+ const form = document.getElementById('kt_ecommerce_edit_order_form');
+ const submitButton = document.getElementById('kt_ecommerce_edit_order_submit');
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'payment_method': {
+ validators: {
+ notEmpty: {
+ message: 'Payment method is required'
+ }
+ }
+ },
+ 'shipping_method': {
+ validators: {
+ notEmpty: {
+ message: 'Shipping method is required'
+ }
+ }
+ },
+ 'order_date': {
+ validators: {
+ notEmpty: {
+ message: 'Order date is required'
+ }
+ }
+ },
+ 'billing_order_address_1': {
+ validators: {
+ notEmpty: {
+ message: 'Address line 1 is required'
+ }
+ }
+ },
+ 'billing_order_postcode': {
+ validators: {
+ notEmpty: {
+ message: 'Postcode is required'
+ }
+ }
+ },
+ 'billing_order_state': {
+ validators: {
+ notEmpty: {
+ message: 'State is required'
+ }
+ }
+ },
+ 'billing_order_country': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Handle submit button
+ submitButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function () {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ // Enable submit button after loading
+ submitButton.disabled = false;
+
+ // Redirect to customers list page
+ window.location = form.getAttribute("data-kt-redirect");
+ }
+ });
+ }, 2000);
+ } else {
+ Swal.fire({
+ html: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ })
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+
+ initSaveOrder();
+ handleSearchDatatable();
+ handleShippingForm();
+ handleProductSelect();
+ handleSubmit();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceSalesSaveOrder.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/settings/settings.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/settings/settings.js
new file mode 100644
index 0000000..d2d053a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/ecommerce/settings/settings.js
@@ -0,0 +1,188 @@
+"use strict";
+
+// Class definition
+var KTAppEcommerceSettings = function () {
+ // Shared variables
+
+
+ // Private functions
+ const initForms = () => {
+ const forms = [
+ 'kt_ecommerce_settings_general_form',
+ 'kt_ecommerce_settings_general_store',
+ 'kt_ecommerce_settings_general_localization',
+ 'kt_ecommerce_settings_general_products',
+ 'kt_ecommerce_settings_general_customers',
+ ];
+
+ // Init all forms
+ forms.forEach(formId => {
+ // Select form
+ const form = document.getElementById(formId);
+
+ if(!form){
+ return;
+ }
+
+ // Dynamically create validation non-empty rule
+ const requiredFields = form.querySelectorAll('.required');
+ var detectedField;
+ var validationFields = {
+ fields: {},
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+
+ // Detect required fields
+ requiredFields.forEach(el => {
+ const input = el.closest('.row').querySelector('input');
+ if (input) {
+ detectedField = input;
+ }
+
+ const textarea = el.closest('.row').querySelector('textarea');
+ if (textarea) {
+ detectedField = textarea;
+ }
+
+ const select = el.closest('.row').querySelector('select');
+ if (select) {
+ detectedField = select;
+ }
+
+ // Add validation rule
+ const name = detectedField.getAttribute('name');
+ validationFields.fields[name] = {
+ validators: {
+ notEmpty: {
+ message: el.innerText + ' is required'
+ }
+ }
+ }
+ });
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ validationFields
+ );
+
+ // Submit button handler
+ const submitButton = form.querySelector('[data-kt-ecommerce-settings-type="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup error
+ Swal.fire({
+ text: "Oops! There are some error(s) detected.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Init Tagify
+ const initTagify = () => {
+ // Get tagify elements
+ const elements = document.querySelectorAll('[data-kt-ecommerce-settings-type="tagify"]');
+
+ // Init tagify
+ elements.forEach(element => {
+ new Tagify(element);
+ });
+ }
+
+ // Init Select2 with flags
+ const initSelect2Flags = () => {
+ // Format options
+ const optionFormat = (item) => {
+ if ( !item.id ) {
+ return item.text;
+ }
+
+ var span = document.createElement('span');
+ var template = '';
+
+ template += '
';
+ template += item.text;
+
+ span.innerHTML = template;
+
+ return $(span);
+ }
+
+ // Init Select2 --- more info: https://select2.org/
+ $('[data-kt-ecommerce-settings-type="select2_flags"]').select2({
+ placeholder: "Select a country",
+ minimumResultsForSearch: Infinity,
+ templateSelection: optionFormat,
+ templateResult: optionFormat
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+
+ initForms();
+ initTagify();
+ initSelect2Flags();
+
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppEcommerceSettings.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/file-manager/list.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/file-manager/list.js
new file mode 100644
index 0000000..389b073
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/file-manager/list.js
@@ -0,0 +1,939 @@
+"use strict";
+
+// Class definition
+var KTFileManagerList = function () {
+ // Define shared variables
+ var datatable;
+ var table
+
+ // Define template element variables
+ var uploadTemplate;
+ var renameTemplate;
+ var actionTemplate;
+ var checkboxTemplate;
+
+
+ // Private functions
+ const initTemplates = () => {
+ uploadTemplate = document.querySelector('[data-kt-filemanager-template="upload"]');
+ renameTemplate = document.querySelector('[data-kt-filemanager-template="rename"]');
+ actionTemplate = document.querySelector('[data-kt-filemanager-template="action"]');
+ checkboxTemplate = document.querySelector('[data-kt-filemanager-template="checkbox"]');
+ }
+
+ const initDatatable = () => {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const dateCol = dateRow[3]; // select date from 4th column in table
+ const realDate = moment(dateCol.innerHTML, "DD MMM YYYY, LT").format();
+ dateCol.setAttribute('data-order', realDate);
+ });
+
+ const foldersListOptions = {
+ "info": false,
+ 'order': [],
+ "scrollY": "700px",
+ "scrollCollapse": true,
+ "paging": false,
+ 'ordering': false,
+ 'columns': [
+ { data: 'checkbox' },
+ { data: 'name' },
+ { data: 'size' },
+ { data: 'date' },
+ { data: 'action' },
+ ],
+ 'language': {
+ emptyTable: `
+

+
No items found.
+
Start creating new folders or uploading a new file!
+
`
+ }
+ };
+
+ const filesListOptions = {
+ "info": false,
+ 'order': [],
+ 'pageLength': 10,
+ "lengthChange": false,
+ 'ordering': false,
+ 'columns': [
+ { data: 'checkbox' },
+ { data: 'name' },
+ { data: 'size' },
+ { data: 'date' },
+ { data: 'action' },
+ ],
+ 'language': {
+ emptyTable: `
+

+
No items found.
+
Start creating new folders or uploading a new file!
+
`
+ },
+ conditionalPaging: true
+ };
+
+ // Define datatable options to load
+ var loadOptions;
+ if (table.getAttribute('data-kt-filemanager-table') === 'folders') {
+ loadOptions = foldersListOptions;
+ } else {
+ loadOptions = filesListOptions;
+ }
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable(loadOptions);
+
+ // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw
+ datatable.on('draw', function () {
+ initToggleToolbar();
+ handleDeleteRows();
+ toggleToolbars();
+ resetNewFolder();
+ KTMenu.createInstances();
+ initCopyLink();
+ countTotalItems();
+ handleRename();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ const handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-filemanager-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Delete customer
+ const handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-filemanager-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const fileName = parent.querySelectorAll('td')[1].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + fileName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + fileName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Init toggle toolbar
+ const initToggleToolbar = () => {
+ // Toggle selected action toolbar
+ // Select all checkboxes
+ var checkboxes = table.querySelectorAll('[type="checkbox"]');
+ if (table.getAttribute('data-kt-filemanager-table') === 'folders') {
+ checkboxes = document.querySelectorAll('#kt_file_manager_list_wrapper [type="checkbox"]');
+ }
+
+ // Select elements
+ const deleteSelected = document.querySelector('[data-kt-filemanager-table-select="delete_selected"]');
+
+ // Toggle delete selected toolbar
+ checkboxes.forEach(c => {
+ // Checkbox on click event
+ c.addEventListener('click', function () {
+ console.log(c);
+ setTimeout(function () {
+ toggleToolbars();
+ }, 50);
+ });
+ });
+
+ // Deleted selected rows
+ deleteSelected.addEventListener('click', function () {
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete selected files or folders?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted all selected files or folders!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove all selected customers
+ checkboxes.forEach(c => {
+ if (c.checked) {
+ datatable.row($(c.closest('tbody tr'))).remove().draw();
+ }
+ });
+
+ // Remove header checked box
+ const headerCheckbox = table.querySelectorAll('[type="checkbox"]')[0];
+ headerCheckbox.checked = false;
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Selected files or folders was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Toggle toolbars
+ const toggleToolbars = () => {
+ // Define variables
+ const toolbarBase = document.querySelector('[data-kt-filemanager-table-toolbar="base"]');
+ const toolbarSelected = document.querySelector('[data-kt-filemanager-table-toolbar="selected"]');
+ const selectedCount = document.querySelector('[data-kt-filemanager-table-select="selected_count"]');
+
+ // Select refreshed checkbox DOM elements
+ const allCheckboxes = table.querySelectorAll('tbody [type="checkbox"]');
+
+ // Detect checkboxes state & count
+ let checkedState = false;
+ let count = 0;
+
+ // Count checked boxes
+ allCheckboxes.forEach(c => {
+ if (c.checked) {
+ checkedState = true;
+ count++;
+ }
+ });
+
+ // Toggle toolbars
+ if (checkedState) {
+ selectedCount.innerHTML = count;
+ toolbarBase.classList.add('d-none');
+ toolbarSelected.classList.remove('d-none');
+ } else {
+ toolbarBase.classList.remove('d-none');
+ toolbarSelected.classList.add('d-none');
+ }
+ }
+
+ // Handle new folder
+ const handleNewFolder = () => {
+ // Select button
+ const newFolder = document.getElementById('kt_file_manager_new_folder');
+
+ // Handle click action
+ newFolder.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Ignore if input already exist
+ if (table.querySelector('#kt_file_manager_new_folder_row')) {
+ return;
+ }
+
+ // Add new blank row to datatable
+ const tableBody = table.querySelector('tbody');
+ const rowElement = uploadTemplate.cloneNode(true); // Clone template markup
+ tableBody.prepend(rowElement);
+
+ // Define template interactive elements
+ const rowForm = rowElement.querySelector('#kt_file_manager_add_folder_form');
+ const rowButton = rowElement.querySelector('#kt_file_manager_add_folder');
+ const cancelButton = rowElement.querySelector('#kt_file_manager_cancel_folder');
+ const folderIcon = rowElement.querySelector('.svg-icon-2x');
+ const rowInput = rowElement.querySelector('[name="new_folder_name"]');
+
+ // Define validator
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ rowForm,
+ {
+ fields: {
+ 'new_folder_name': {
+ validators: {
+ notEmpty: {
+ message: 'Folder name is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Handle add new folder button
+ rowButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Activate indicator
+ rowButton.setAttribute("data-kt-indicator", "on");
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Simulate process for demo only
+ setTimeout(function () {
+ // Create folder link
+ const folderLink = document.createElement('a');
+ const folderLinkClasses = ['text-gray-800', 'text-hover-primary'];
+ folderLink.setAttribute('href', '?page=apps/file-manager/blank');
+ folderLink.classList.add(...folderLinkClasses);
+ folderLink.innerText = rowInput.value;
+
+ const newRow = datatable.row.add({
+ 'checkbox': checkboxTemplate.innerHTML,
+ 'name': folderIcon.outerHTML + folderLink.outerHTML,
+ "size": '-',
+ "date": '-',
+ 'action': actionTemplate.innerHTML
+ }).node();
+ $(newRow).find('td').eq(4).attr('data-kt-filemanager-table', 'action_dropdown');
+ $(newRow).find('td').eq(4).addClass('text-end'); // Add custom class to last 'td' element --- more info: https://datatables.net/forums/discussion/22341/row-add-cell-class
+
+ // Re-sort datatable to allow new folder added at the top
+ var index = datatable.row(0).index(),
+ rowCount = datatable.data().length - 1,
+ insertedRow = datatable.row(rowCount).data(),
+ tempRow;
+
+ for (var i = rowCount; i > index; i--) {
+ tempRow = datatable.row(i - 1).data();
+ datatable.row(i).data(tempRow);
+ datatable.row(i - 1).data(insertedRow);
+ }
+
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toastr-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+
+ toastr.success(rowInput.value + ' was created!');
+
+ // Disable indicator
+ rowButton.removeAttribute("data-kt-indicator");
+
+ // Reset input
+ rowInput.value = '';
+
+ datatable.draw(false);
+
+ }, 2000);
+ } else {
+ // Disable indicator
+ rowButton.removeAttribute("data-kt-indicator");
+ }
+ });
+ }
+ });
+
+ // Handle cancel new folder button
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Activate indicator
+ cancelButton.setAttribute("data-kt-indicator", "on");
+
+ setTimeout(function () {
+ // Disable indicator
+ cancelButton.removeAttribute("data-kt-indicator");
+
+ // Toggle toastr
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toastr-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+
+ toastr.error('Cancelled new folder creation');
+ resetNewFolder();
+ }, 1000);
+ });
+ });
+ }
+
+ // Reset add new folder input
+ const resetNewFolder = () => {
+ const newFolderRow = table.querySelector('#kt_file_manager_new_folder_row');
+
+ if (newFolderRow) {
+ newFolderRow.parentNode.removeChild(newFolderRow);
+ }
+ }
+
+ // Handle rename file or folder
+ const handleRename = () => {
+ const renameButton = table.querySelectorAll('[data-kt-filemanager-table="rename"]');
+
+ renameButton.forEach(button => {
+ button.addEventListener('click', renameCallback);
+ });
+ }
+
+ // Rename callback
+ const renameCallback = (e) => {
+ e.preventDefault();
+
+ // Define shared value
+ let nameValue;
+
+ // Stop renaming if there's an input existing
+ if (table.querySelectorAll('#kt_file_manager_rename_input').length > 0) {
+ Swal.fire({
+ text: "Unsaved input detected. Please save or cancel the current item",
+ icon: "warning",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger"
+ }
+ });
+
+ return;
+ }
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get name column
+ const nameCol = parent.querySelectorAll('td')[1];
+ const colIcon = nameCol.querySelector('.svg-icon');
+ nameValue = nameCol.innerText;
+
+ // Set rename input template
+ const renameInput = renameTemplate.cloneNode(true);
+ renameInput.querySelector('#kt_file_manager_rename_folder_icon').innerHTML = colIcon.outerHTML;
+
+ // Swap current column content with input template
+ nameCol.innerHTML = renameInput.innerHTML;
+
+ // Set input value with current file/folder name
+ parent.querySelector('#kt_file_manager_rename_input').value = nameValue;
+
+ // Rename file / folder validator
+ var renameValidator = FormValidation.formValidation(
+ nameCol,
+ {
+ fields: {
+ 'rename_folder_name': {
+ validators: {
+ notEmpty: {
+ message: 'Name is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Rename input button action
+ const renameInputButton = document.querySelector('#kt_file_manager_rename_folder');
+ renameInputButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Detect if valid
+ if (renameValidator) {
+ renameValidator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Pop up confirmation
+ Swal.fire({
+ text: "Are you sure you want to rename " + nameValue + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, rename it!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have renamed " + nameValue + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Get new file / folder name value
+ const newValue = document.querySelector('#kt_file_manager_rename_input').value;
+
+ // New column data template
+ const newData = ``;
+
+ // Draw datatable with new content -- Add more events here for any server-side events
+ datatable.cell($(nameCol)).data(newData).draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: nameValue + " was not renamed.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+ });
+
+ // Cancel rename input
+ const cancelInputButton = document.querySelector('#kt_file_manager_rename_folder_cancel');
+ cancelInputButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Simulate process for demo only
+ cancelInputButton.setAttribute("data-kt-indicator", "on");
+
+ setTimeout(function () {
+ const revertTemplate = ``;
+
+ // Remove spinner
+ cancelInputButton.removeAttribute("data-kt-indicator");
+
+ // Draw datatable with new content -- Add more events here for any server-side events
+ datatable.cell($(nameCol)).data(revertTemplate).draw();
+
+ // Toggle toastr
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toastr-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+
+ toastr.error('Cancelled rename function');
+ }, 1000);
+ });
+ }
+
+ // Init dropzone
+ const initDropzone = () => {
+ // set the dropzone container id
+ const id = "#kt_modal_upload_dropzone";
+ const dropzone = document.querySelector(id);
+
+ // set the preview element template
+ var previewNode = dropzone.querySelector(".dropzone-item");
+ previewNode.id = "";
+ var previewTemplate = previewNode.parentNode.innerHTML;
+ previewNode.parentNode.removeChild(previewNode);
+
+ var myDropzone = new Dropzone(id, { // Make the whole body a dropzone
+ url: "path/to/your/server", // Set the url for your upload script location
+ parallelUploads: 10,
+ previewTemplate: previewTemplate,
+ maxFilesize: 1, // Max filesize in MB
+ autoProcessQueue: false, // Stop auto upload
+ autoQueue: false, // Make sure the files aren't queued until manually added
+ previewsContainer: id + " .dropzone-items", // Define the container to display the previews
+ clickable: id + " .dropzone-select" // Define the element that should be used as click trigger to select files.
+ });
+
+ myDropzone.on("addedfile", function (file) {
+ // Hook each start button
+ file.previewElement.querySelector(id + " .dropzone-start").onclick = function () {
+ // myDropzone.enqueueFile(file); -- default dropzone function
+
+ // Process simulation for demo only
+ const progressBar = file.previewElement.querySelector('.progress-bar');
+ progressBar.style.opacity = "1";
+ var width = 1;
+ var timer = setInterval(function () {
+ if (width >= 100) {
+ myDropzone.emit("success", file);
+ myDropzone.emit("complete", file);
+ clearInterval(timer);
+ } else {
+ width++;
+ progressBar.style.width = width + '%';
+ }
+ }, 20);
+ };
+
+ const dropzoneItems = dropzone.querySelectorAll('.dropzone-item');
+ dropzoneItems.forEach(dropzoneItem => {
+ dropzoneItem.style.display = '';
+ });
+ dropzone.querySelector('.dropzone-upload').style.display = "inline-block";
+ dropzone.querySelector('.dropzone-remove-all').style.display = "inline-block";
+ });
+
+ // Hide the total progress bar when nothing's uploading anymore
+ myDropzone.on("complete", function (file) {
+ const progressBars = dropzone.querySelectorAll('.dz-complete');
+ setTimeout(function () {
+ progressBars.forEach(progressBar => {
+ progressBar.querySelector('.progress-bar').style.opacity = "0";
+ progressBar.querySelector('.progress').style.opacity = "0";
+ progressBar.querySelector('.dropzone-start').style.opacity = "0";
+ });
+ }, 300);
+ });
+
+ // Setup the buttons for all transfers
+ dropzone.querySelector(".dropzone-upload").addEventListener('click', function () {
+ // myDropzone.processQueue(); --- default dropzone process
+
+ // Process simulation for demo only
+ myDropzone.files.forEach(file => {
+ const progressBar = file.previewElement.querySelector('.progress-bar');
+ progressBar.style.opacity = "1";
+ var width = 1;
+ var timer = setInterval(function () {
+ if (width >= 100) {
+ myDropzone.emit("success", file);
+ myDropzone.emit("complete", file);
+ clearInterval(timer);
+ } else {
+ width++;
+ progressBar.style.width = width + '%';
+ }
+ }, 20);
+ });
+ });
+
+ // Setup the button for remove all files
+ dropzone.querySelector(".dropzone-remove-all").addEventListener('click', function () {
+ Swal.fire({
+ text: "Are you sure you would like to remove all files?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, remove it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ dropzone.querySelector('.dropzone-upload').style.display = "none";
+ dropzone.querySelector('.dropzone-remove-all').style.display = "none";
+ myDropzone.removeAllFiles(true);
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your files was not removed!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // On all files completed upload
+ myDropzone.on("queuecomplete", function (progress) {
+ const uploadIcons = dropzone.querySelectorAll('.dropzone-upload');
+ uploadIcons.forEach(uploadIcon => {
+ uploadIcon.style.display = "none";
+ });
+ });
+
+ // On all files removed
+ myDropzone.on("removedfile", function (file) {
+ if (myDropzone.files.length < 1) {
+ dropzone.querySelector('.dropzone-upload').style.display = "none";
+ dropzone.querySelector('.dropzone-remove-all').style.display = "none";
+ }
+ });
+ }
+
+ // Init copy link
+ const initCopyLink = () => {
+ // Select all copy link elements
+ const elements = table.querySelectorAll('[data-kt-filemanger-table="copy_link"]');
+
+ elements.forEach(el => {
+ // Define elements
+ const button = el.querySelector('button');
+ const generator = el.querySelector('[data-kt-filemanger-table="copy_link_generator"]');
+ const result = el.querySelector('[data-kt-filemanger-table="copy_link_result"]');
+ const input = el.querySelector('input');
+
+ // Click action
+ button.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Reset toggle
+ generator.classList.remove('d-none');
+ result.classList.add('d-none');
+
+ var linkTimeout;
+ clearTimeout(linkTimeout);
+ linkTimeout = setTimeout(() => {
+ generator.classList.add('d-none');
+ result.classList.remove('d-none');
+ input.select();
+ }, 2000);
+ });
+ });
+ }
+
+ // Handle move to folder
+ const handleMoveToFolder = () => {
+ const element = document.querySelector('#kt_modal_move_to_folder');
+ const form = element.querySelector('#kt_modal_move_to_folder_form');
+ const saveButton = form.querySelector('#kt_modal_move_to_folder_submit');
+ const moveModal = new bootstrap.Modal(element);
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'move_to_folder': {
+ validators: {
+ notEmpty: {
+ message: 'Please select a folder.'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ saveButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ saveButton.setAttribute("data-kt-indicator", "on");
+
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Simulate process for demo only
+ setTimeout(function () {
+
+ Swal.fire({
+ text: "Are you sure you would like to move to this folder",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, move it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.reset(); // Reset form
+ moveModal.hide(); // Hide modal
+
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toastr-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+
+ toastr.success('1 item has been moved.');
+
+ saveButton.removeAttribute("data-kt-indicator");
+ } else {
+ Swal.fire({
+ text: "Your action has been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+
+ saveButton.removeAttribute("data-kt-indicator");
+ }
+ });
+ }, 500);
+ } else {
+ saveButton.removeAttribute("data-kt-indicator");
+ }
+ });
+ }
+ });
+ }
+
+ // Count total number of items
+ const countTotalItems = () => {
+ const counter = document.getElementById('kt_file_manager_items_counter');
+
+ // Count total number of elements in datatable --- more info: https://datatables.net/reference/api/count()
+ counter.innerText = datatable.rows().count() + ' items';
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_file_manager_list');
+
+ if (!table) {
+ return;
+ }
+
+ initTemplates();
+ initDatatable();
+ initToggleToolbar();
+ handleSearchDatatable();
+ handleDeleteRows();
+ handleNewFolder();
+ initDropzone();
+ initCopyLink();
+ handleRename();
+ handleMoveToFolder();
+ countTotalItems();
+ KTMenu.createInstances();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTFileManagerList.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/file-manager/settings.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/file-manager/settings.js
new file mode 100644
index 0000000..936def4
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/file-manager/settings.js
@@ -0,0 +1,55 @@
+"use strict";
+
+// Class definition
+var KTAppFileManagerSettings = function () {
+ var form;
+
+ // Private functions
+ var handleForm = function() {
+ const saveButton = form.querySelector('#kt_file_manager_settings_submit');
+
+ saveButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ saveButton.setAttribute("data-kt-indicator", "on");
+
+ // Simulate process for demo only
+ setTimeout(function(){
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toast-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+
+ toastr.success('File manager settings have been saved');
+
+ saveButton.removeAttribute("data-kt-indicator");
+ }, 1000);
+ });
+ }
+
+ // Public methods
+ return {
+ init: function(element) {
+ form = document.querySelector('#kt_file_manager_settings');
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppFileManagerSettings.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/compose.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/compose.js
new file mode 100644
index 0000000..3e218e5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/compose.js
@@ -0,0 +1,294 @@
+"use strict";
+
+// Class definition
+var KTAppInboxCompose = function () {
+ // Private functions
+ // Init reply form
+ const initForm = () => {
+ // Set variables
+ const form = document.querySelector('#kt_inbox_compose_form');
+ const allTagify = form.querySelectorAll('[data-kt-inbox-form="tagify"]');
+
+ // Handle CC and BCC
+ handleCCandBCC(form);
+
+ // Handle submit form
+ handleSubmit(form);
+
+ // Init tagify
+ allTagify.forEach(tagify => {
+ initTagify(tagify);
+ });
+
+ // Init quill editor
+ initQuill(form);
+
+ // Init dropzone
+ initDropzone(form);
+ }
+
+ // Handle CC and BCC toggle
+ const handleCCandBCC = (el) => {
+ // Get elements
+ const ccElement = el.querySelector('[data-kt-inbox-form="cc"]');
+ const ccButton = el.querySelector('[data-kt-inbox-form="cc_button"]');
+ const ccClose = el.querySelector('[data-kt-inbox-form="cc_close"]');
+ const bccElement = el.querySelector('[data-kt-inbox-form="bcc"]');
+ const bccButton = el.querySelector('[data-kt-inbox-form="bcc_button"]');
+ const bccClose = el.querySelector('[data-kt-inbox-form="bcc_close"]');
+
+ // Handle CC button click
+ ccButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ ccElement.classList.remove('d-none');
+ ccElement.classList.add('d-flex');
+ });
+
+ // Handle CC close button click
+ ccClose.addEventListener('click', e => {
+ e.preventDefault();
+
+ ccElement.classList.add('d-none');
+ ccElement.classList.remove('d-flex');
+ });
+
+ // Handle BCC button click
+ bccButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ bccElement.classList.remove('d-none');
+ bccElement.classList.add('d-flex');
+ });
+
+ // Handle CC close button click
+ bccClose.addEventListener('click', e => {
+ e.preventDefault();
+
+ bccElement.classList.add('d-none');
+ bccElement.classList.remove('d-flex');
+ });
+ }
+
+ // Handle submit form
+ const handleSubmit = (el) => {
+ const submitButton = el.querySelector('[data-kt-inbox-form="send"]');
+
+ // Handle button click event
+ submitButton.addEventListener("click", function () {
+ // Activate indicator
+ submitButton.setAttribute("data-kt-indicator", "on");
+
+ // Disable indicator after 3 seconds
+ setTimeout(function () {
+ submitButton.removeAttribute("data-kt-indicator");
+ }, 3000);
+ });
+ }
+
+ // Init tagify
+ const initTagify = (el) => {
+ var inputElm = el;
+
+ const usersList = [
+ { value: 1, name: 'Emma Smith', avatar: 'avatars/300-6.jpg', email: 'e.smith@kpmg.com.au' },
+ { value: 2, name: 'Max Smith', avatar: 'avatars/300-1.jpg', email: 'max@kt.com' },
+ { value: 3, name: 'Sean Bean', avatar: 'avatars/300-5.jpg', email: 'sean@dellito.com' },
+ { value: 4, name: 'Brian Cox', avatar: 'avatars/300-25.jpg', email: 'brian@exchange.com' },
+ { value: 5, name: 'Francis Mitcham', avatar: 'avatars/300-9.jpg', email: 'f.mitcham@kpmg.com.au' },
+ { value: 6, name: 'Dan Wilson', avatar: 'avatars/300-23.jpg', email: 'dam@consilting.com' },
+ { value: 7, name: 'Ana Crown', avatar: 'avatars/300-12.jpg', email: 'ana.cf@limtel.com' },
+ { value: 8, name: 'John Miller', avatar: 'avatars/300-13.jpg', email: 'miller@mapple.com' }
+ ];
+
+ function tagTemplate(tagData) {
+ return `
+
+
+
+
+

+
+
${tagData.name}
+
+
+ `
+ }
+
+ function suggestionItemTemplate(tagData) {
+ return `
+
+
+ ${tagData.avatar ? `
+
+

+
` : ''
+ }
+
+
+ ${tagData.name}
+ ${tagData.email}
+
+
+ `
+ }
+
+ // initialize Tagify on the above input node reference
+ var tagify = new Tagify(inputElm, {
+ tagTextProp: 'name', // very important since a custom template is used with this property as text. allows typing a "value" or a "name" to match input with whitelist
+ enforceWhitelist: true,
+ skipInvalid: true, // do not remporarily add invalid tags
+ dropdown: {
+ closeOnSelect: false,
+ enabled: 0,
+ classname: 'users-list',
+ searchKeys: ['name', 'email'] // very important to set by which keys to search for suggesttions when typing
+ },
+ templates: {
+ tag: tagTemplate,
+ dropdownItem: suggestionItemTemplate
+ },
+ whitelist: usersList
+ })
+
+ tagify.on('dropdown:show dropdown:updated', onDropdownShow)
+ tagify.on('dropdown:select', onSelectSuggestion)
+
+ var addAllSuggestionsElm;
+
+ function onDropdownShow(e) {
+ var dropdownContentElm = e.detail.tagify.DOM.dropdown.content;
+
+ if (tagify.suggestedListItems.length > 1) {
+ addAllSuggestionsElm = getAddAllSuggestionsElm();
+
+ // insert "addAllSuggestionsElm" as the first element in the suggestions list
+ dropdownContentElm.insertBefore(addAllSuggestionsElm, dropdownContentElm.firstChild)
+ }
+ }
+
+ function onSelectSuggestion(e) {
+ if (e.detail.elm == addAllSuggestionsElm)
+ tagify.dropdown.selectAll.call(tagify);
+ }
+
+ // create a "add all" custom suggestion element every time the dropdown changes
+ function getAddAllSuggestionsElm() {
+ // suggestions items should be based on "dropdownItem" template
+ return tagify.parseTemplate('dropdownItem', [{
+ class: "addAll",
+ name: "Add all",
+ email: tagify.settings.whitelist.reduce(function (remainingSuggestions, item) {
+ return tagify.isTagDuplicate(item.value) ? remainingSuggestions : remainingSuggestions + 1
+ }, 0) + " Members"
+ }]
+ )
+ }
+ }
+
+ // Init quill editor
+ const initQuill = (el) => {
+ var quill = new Quill('#kt_inbox_form_editor', {
+ modules: {
+ toolbar: [
+ [{
+ header: [1, 2, false]
+ }],
+ ['bold', 'italic', 'underline'],
+ ['image', 'code-block']
+ ]
+ },
+ placeholder: 'Type your text here...',
+ theme: 'snow' // or 'bubble'
+ });
+
+ // Customize editor
+ const toolbar = el.querySelector('.ql-toolbar');
+
+ if (toolbar) {
+ const classes = ['px-5', 'border-top-0', 'border-start-0', 'border-end-0'];
+ toolbar.classList.add(...classes);
+ }
+ }
+
+ // Init dropzone
+ const initDropzone = (el) => {
+ // set the dropzone container id
+ const id = '[data-kt-inbox-form="dropzone"]';
+ const dropzone = el.querySelector(id);
+ const uploadButton = el.querySelector('[data-kt-inbox-form="dropzone_upload"]');
+
+ // set the preview element template
+ var previewNode = dropzone.querySelector(".dropzone-item");
+ previewNode.id = "";
+ var previewTemplate = previewNode.parentNode.innerHTML;
+ previewNode.parentNode.removeChild(previewNode);
+
+ var myDropzone = new Dropzone(id, { // Make the whole body a dropzone
+ url: "https://preview.keenthemes.com/api/dropzone/void.php", // Set the url for your upload script location
+ parallelUploads: 20,
+ maxFilesize: 1, // Max filesize in MB
+ previewTemplate: previewTemplate,
+ previewsContainer: id + " .dropzone-items", // Define the container to display the previews
+ clickable: uploadButton // Define the element that should be used as click trigger to select files.
+ });
+
+
+ myDropzone.on("addedfile", function (file) {
+ // Hookup the start button
+ const dropzoneItems = dropzone.querySelectorAll('.dropzone-item');
+ dropzoneItems.forEach(dropzoneItem => {
+ dropzoneItem.style.display = '';
+ });
+ });
+
+ // Update the total progress bar
+ myDropzone.on("totaluploadprogress", function (progress) {
+ const progressBars = dropzone.querySelectorAll('.progress-bar');
+ progressBars.forEach(progressBar => {
+ progressBar.style.width = progress + "%";
+ });
+ });
+
+ myDropzone.on("sending", function (file) {
+ // Show the total progress bar when upload starts
+ const progressBars = dropzone.querySelectorAll('.progress-bar');
+ progressBars.forEach(progressBar => {
+ progressBar.style.opacity = "1";
+ });
+ });
+
+ // Hide the total progress bar when nothing"s uploading anymore
+ myDropzone.on("complete", function (progress) {
+ const progressBars = dropzone.querySelectorAll('.dz-complete');
+
+ setTimeout(function () {
+ progressBars.forEach(progressBar => {
+ progressBar.querySelector('.progress-bar').style.opacity = "0";
+ progressBar.querySelector('.progress').style.opacity = "0";
+ });
+ }, 300);
+ });
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppInboxCompose.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/listing.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/listing.js
new file mode 100644
index 0000000..4a6412c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/listing.js
@@ -0,0 +1,58 @@
+"use strict";
+
+// Class definition
+var KTAppInboxListing = function () {
+ var table;
+ var datatable;
+
+ // Private functions
+ var initDatatable = function () {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ // 'paging': false,
+ // 'pageLength': false,
+ });
+
+ datatable.on('draw', function () {
+ handleDatatableFooter();
+ });
+ }
+
+ // Handle datatable footer spacings
+ var handleDatatableFooter = () => {
+ const footerElement = document.querySelector('#kt_inbox_listing_wrapper > .row');
+ const spacingClasses = ['px-9', 'pt-3', 'pb-5'];
+ footerElement.classList.add(...spacingClasses);
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-inbox-listing-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector('#kt_inbox_listing');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ handleSearchDatatable();
+ handleDatatableFooter();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppInboxListing.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/reply.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/reply.js
new file mode 100644
index 0000000..d5c7c2a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/inbox/reply.js
@@ -0,0 +1,323 @@
+"use strict";
+
+// Class definition
+var KTAppInboxReply = function () {
+
+ // Private functions
+ const handlePreviewText = () => {
+ // Get all messages
+ const accordions = document.querySelectorAll('[data-kt-inbox-message="message_wrapper"]');
+ accordions.forEach(accordion => {
+ // Set variables
+ const header = accordion.querySelector('[data-kt-inbox-message="header"]');
+ const previewText = accordion.querySelector('[data-kt-inbox-message="preview"]');
+ const details = accordion.querySelector('[data-kt-inbox-message="details"]');
+ const message = accordion.querySelector('[data-kt-inbox-message="message"]');
+
+ // Init bootstrap collapse -- more info: https://getbootstrap.com/docs/5.1/components/collapse/#via-javascript
+ const collapse = new bootstrap.Collapse(message, { toggle: false });
+
+ // Handle header click action
+ header.addEventListener('click', e => {
+ // Return if KTMenu or buttons are clicked
+ if (e.target.closest('[data-kt-menu-trigger="click"]') || e.target.closest('.btn')) {
+ return;
+ } else {
+ previewText.classList.toggle('d-none');
+ details.classList.toggle('d-none');
+ collapse.toggle();
+ }
+ });
+ });
+ }
+
+ // Init reply form
+ const initForm = () => {
+ // Set variables
+ const form = document.querySelector('#kt_inbox_reply_form');
+ const allTagify = form.querySelectorAll('[data-kt-inbox-form="tagify"]');
+
+ // Handle CC and BCC
+ handleCCandBCC(form);
+
+ // Handle submit form
+ handleSubmit(form);
+
+ // Init tagify
+ allTagify.forEach(tagify => {
+ initTagify(tagify);
+ });
+
+ // Init quill editor
+ initQuill(form);
+
+ // Init dropzone
+ initDropzone(form);
+ }
+
+ // Handle CC and BCC toggle
+ const handleCCandBCC = (el) => {
+ // Get elements
+ const ccElement = el.querySelector('[data-kt-inbox-form="cc"]');
+ const ccButton = el.querySelector('[data-kt-inbox-form="cc_button"]');
+ const ccClose = el.querySelector('[data-kt-inbox-form="cc_close"]');
+ const bccElement = el.querySelector('[data-kt-inbox-form="bcc"]');
+ const bccButton = el.querySelector('[data-kt-inbox-form="bcc_button"]');
+ const bccClose = el.querySelector('[data-kt-inbox-form="bcc_close"]');
+
+ // Handle CC button click
+ ccButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ ccElement.classList.remove('d-none');
+ ccElement.classList.add('d-flex');
+ });
+
+ // Handle CC close button click
+ ccClose.addEventListener('click', e => {
+ e.preventDefault();
+
+ ccElement.classList.add('d-none');
+ ccElement.classList.remove('d-flex');
+ });
+
+ // Handle BCC button click
+ bccButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ bccElement.classList.remove('d-none');
+ bccElement.classList.add('d-flex');
+ });
+
+ // Handle CC close button click
+ bccClose.addEventListener('click', e => {
+ e.preventDefault();
+
+ bccElement.classList.add('d-none');
+ bccElement.classList.remove('d-flex');
+ });
+ }
+
+ // Handle submit form
+ const handleSubmit = (el) => {
+ const submitButton = el.querySelector('[data-kt-inbox-form="send"]');
+
+ // Handle button click event
+ submitButton.addEventListener("click", function () {
+ // Activate indicator
+ submitButton.setAttribute("data-kt-indicator", "on");
+
+ // Disable indicator after 3 seconds
+ setTimeout(function () {
+ submitButton.removeAttribute("data-kt-indicator");
+ }, 3000);
+ });
+ }
+
+ // Init tagify
+ const initTagify = (el) => {
+ var inputElm = el;
+
+ const usersList = [
+ { value: 1, name: 'Emma Smith', avatar: 'avatars/300-6.jpg', email: 'e.smith@kpmg.com.au' },
+ { value: 2, name: 'Max Smith', avatar: 'avatars/300-1.jpg', email: 'max@kt.com' },
+ { value: 3, name: 'Sean Bean', avatar: 'avatars/300-5.jpg', email: 'sean@dellito.com' },
+ { value: 4, name: 'Brian Cox', avatar: 'avatars/300-25.jpg', email: 'brian@exchange.com' },
+ { value: 5, name: 'Francis Mitcham', avatar: 'avatars/300-9.jpg', email: 'f.mitcham@kpmg.com.au' },
+ { value: 6, name: 'Dan Wilson', avatar: 'avatars/300-23.jpg', email: 'dam@consilting.com' },
+ { value: 7, name: 'Ana Crown', avatar: 'avatars/300-12.jpg', email: 'ana.cf@limtel.com' },
+ { value: 8, name: 'John Miller', avatar: 'avatars/300-13.jpg', email: 'miller@mapple.com' }
+ ];
+
+ function tagTemplate(tagData) {
+ return `
+
+
+
+
+

+
+
${tagData.name}
+
+
+ `
+ }
+
+ function suggestionItemTemplate(tagData) {
+ return `
+
+
+ ${tagData.avatar ? `
+
+

+
` : ''
+ }
+
+
+ ${tagData.name}
+ ${tagData.email}
+
+
+ `
+ }
+
+ // initialize Tagify on the above input node reference
+ var tagify = new Tagify(inputElm, {
+ tagTextProp: 'name', // very important since a custom template is used with this property as text. allows typing a "value" or a "name" to match input with whitelist
+ enforceWhitelist: true,
+ skipInvalid: true, // do not remporarily add invalid tags
+ dropdown: {
+ closeOnSelect: false,
+ enabled: 0,
+ classname: 'users-list',
+ searchKeys: ['name', 'email'] // very important to set by which keys to search for suggesttions when typing
+ },
+ templates: {
+ tag: tagTemplate,
+ dropdownItem: suggestionItemTemplate
+ },
+ whitelist: usersList
+ })
+
+ tagify.on('dropdown:show dropdown:updated', onDropdownShow)
+ tagify.on('dropdown:select', onSelectSuggestion)
+
+ var addAllSuggestionsElm;
+
+ function onDropdownShow(e) {
+ var dropdownContentElm = e.detail.tagify.DOM.dropdown.content;
+
+ if (tagify.suggestedListItems.length > 1) {
+ addAllSuggestionsElm = getAddAllSuggestionsElm();
+
+ // insert "addAllSuggestionsElm" as the first element in the suggestions list
+ dropdownContentElm.insertBefore(addAllSuggestionsElm, dropdownContentElm.firstChild)
+ }
+ }
+
+ function onSelectSuggestion(e) {
+ if (e.detail.elm == addAllSuggestionsElm)
+ tagify.dropdown.selectAll.call(tagify);
+ }
+
+ // create a "add all" custom suggestion element every time the dropdown changes
+ function getAddAllSuggestionsElm() {
+ // suggestions items should be based on "dropdownItem" template
+ return tagify.parseTemplate('dropdownItem', [{
+ class: "addAll",
+ name: "Add all",
+ email: tagify.settings.whitelist.reduce(function (remainingSuggestions, item) {
+ return tagify.isTagDuplicate(item.value) ? remainingSuggestions : remainingSuggestions + 1
+ }, 0) + " Members"
+ }]
+ )
+ }
+ }
+
+ // Init quill editor
+ const initQuill = (el) => {
+ var quill = new Quill('#kt_inbox_form_editor', {
+ modules: {
+ toolbar: [
+ [{
+ header: [1, 2, false]
+ }],
+ ['bold', 'italic', 'underline'],
+ ['image', 'code-block']
+ ]
+ },
+ placeholder: 'Type your text here...',
+ theme: 'snow' // or 'bubble'
+ });
+
+ // Customize editor
+ const toolbar = el.querySelector('.ql-toolbar');
+
+ if (toolbar) {
+ const classes = ['px-5', 'border-top-0', 'border-start-0', 'border-end-0'];
+ toolbar.classList.add(...classes);
+ }
+ }
+
+ // Init dropzone
+ const initDropzone = (el) => {
+ // set the dropzone container id
+ const id = '[data-kt-inbox-form="dropzone"]';
+ const dropzone = el.querySelector(id);
+ const uploadButton = el.querySelector('[data-kt-inbox-form="dropzone_upload"]');
+
+ // set the preview element template
+ var previewNode = dropzone.querySelector(".dropzone-item");
+ previewNode.id = "";
+ var previewTemplate = previewNode.parentNode.innerHTML;
+ previewNode.parentNode.removeChild(previewNode);
+
+ var myDropzone = new Dropzone(id, { // Make the whole body a dropzone
+ url: "https://preview.keenthemes.com/api/dropzone/void.php", // Set the url for your upload script location
+ parallelUploads: 20,
+ maxFilesize: 1, // Max filesize in MB
+ previewTemplate: previewTemplate,
+ previewsContainer: id + " .dropzone-items", // Define the container to display the previews
+ clickable: uploadButton // Define the element that should be used as click trigger to select files.
+ });
+
+
+ myDropzone.on("addedfile", function (file) {
+ // Hookup the start button
+ const dropzoneItems = dropzone.querySelectorAll('.dropzone-item');
+ dropzoneItems.forEach(dropzoneItem => {
+ dropzoneItem.style.display = '';
+ });
+ });
+
+ // Update the total progress bar
+ myDropzone.on("totaluploadprogress", function (progress) {
+ const progressBars = dropzone.querySelectorAll('.progress-bar');
+ progressBars.forEach(progressBar => {
+ progressBar.style.width = progress + "%";
+ });
+ });
+
+ myDropzone.on("sending", function (file) {
+ // Show the total progress bar when upload starts
+ const progressBars = dropzone.querySelectorAll('.progress-bar');
+ progressBars.forEach(progressBar => {
+ progressBar.style.opacity = "1";
+ });
+ });
+
+ // Hide the total progress bar when nothing"s uploading anymore
+ myDropzone.on("complete", function (progress) {
+ const progressBars = dropzone.querySelectorAll('.dz-complete');
+
+ setTimeout(function () {
+ progressBars.forEach(progressBar => {
+ progressBar.querySelector('.progress-bar').style.opacity = "0";
+ progressBar.querySelector('.progress').style.opacity = "0";
+ });
+ }, 300);
+ });
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ handlePreviewText();
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppInboxReply.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/invoices/create.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/invoices/create.js
new file mode 100644
index 0000000..1c61b67
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/invoices/create.js
@@ -0,0 +1,111 @@
+"use strict";
+
+// Class definition
+var KTAppInvoicesCreate = function () {
+ var form;
+
+ // Private functions
+ var updateTotal = function() {
+ var items = [].slice.call(form.querySelectorAll('[data-kt-element="items"] [data-kt-element="item"]'));
+ var grandTotal = 0;
+
+ var format = wNumb({
+ //prefix: '$ ',
+ decimals: 2,
+ thousand: ','
+ });
+
+ items.map(function (item) {
+ var quantity = item.querySelector('[data-kt-element="quantity"]');
+ var price = item.querySelector('[data-kt-element="price"]');
+
+ var priceValue = format.from(price.value);
+ priceValue = (!priceValue || priceValue < 0) ? 0 : priceValue;
+
+ var quantityValue = parseInt(quantity.value);
+ quantityValue = (!quantityValue || quantityValue < 0) ? 1 : quantityValue;
+
+ price.value = format.to(priceValue);
+ quantity.value = quantityValue;
+
+ item.querySelector('[data-kt-element="total"]').innerText = format.to(priceValue * quantityValue);
+
+ grandTotal += priceValue * quantityValue;
+ });
+
+ form.querySelector('[data-kt-element="sub-total"]').innerText = format.to(grandTotal);
+ form.querySelector('[data-kt-element="grand-total"]').innerText = format.to(grandTotal);
+ }
+
+ var handleEmptyState = function() {
+ if (form.querySelectorAll('[data-kt-element="items"] [data-kt-element="item"]').length === 0) {
+ var item = form.querySelector('[data-kt-element="empty-template"] tr').cloneNode(true);
+ form.querySelector('[data-kt-element="items"] tbody').appendChild(item);
+ } else {
+ KTUtil.remove(form.querySelector('[data-kt-element="items"] [data-kt-element="empty"]'));
+ }
+ }
+
+ var handeForm = function (element) {
+ // Add item
+ form.querySelector('[data-kt-element="items"] [data-kt-element="add-item"]').addEventListener('click', function(e) {
+ e.preventDefault();
+
+ var item = form.querySelector('[data-kt-element="item-template"] tr').cloneNode(true);
+
+ form.querySelector('[data-kt-element="items"] tbody').appendChild(item);
+
+ handleEmptyState();
+ updateTotal();
+ });
+
+ // Remove item
+ KTUtil.on(form, '[data-kt-element="items"] [data-kt-element="remove-item"]', 'click', function(e) {
+ e.preventDefault();
+
+ KTUtil.remove(this.closest('[data-kt-element="item"]'));
+
+ handleEmptyState();
+ updateTotal();
+ });
+
+ // Handle price and quantity changes
+ KTUtil.on(form, '[data-kt-element="items"] [data-kt-element="quantity"], [data-kt-element="items"] [data-kt-element="price"]', 'change', function(e) {
+ e.preventDefault();
+
+ updateTotal();
+ });
+ }
+
+ var initForm = function(element) {
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var invoiceDate = $(form.querySelector('[name="invoice_date"]'));
+ invoiceDate.flatpickr({
+ enableTime: false,
+ dateFormat: "d, M Y",
+ });
+
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var dueDate = $(form.querySelector('[name="invoice_due_date"]'));
+ dueDate.flatpickr({
+ enableTime: false,
+ dateFormat: "d, M Y",
+ });
+ }
+
+ // Public methods
+ return {
+ init: function(element) {
+ form = document.querySelector('#kt_invoice_form');
+
+ handeForm();
+ initForm();
+ updateTotal();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppInvoicesCreate.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/list/list.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/list/list.js
new file mode 100644
index 0000000..7610a76
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/list/list.js
@@ -0,0 +1,79 @@
+"use strict";
+
+// Class definition
+var KTProjectList = function () {
+ var initChart = function () {
+ // init chart
+ var element = document.getElementById("kt_project_list_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var config = {
+ type: 'doughnut',
+ data: {
+ datasets: [{
+ data: [30, 45, 25],
+ backgroundColor: ['#00A3FF', '#50CD89', '#E4E6EF']
+ }],
+ labels: ['Active', 'Completed', 'Yet to start']
+ },
+ options: {
+ chart: {
+ fontFamily: 'inherit'
+ },
+ borderWidth: 0,
+ cutout: '75%',
+ cutoutPercentage: 65,
+ responsive: true,
+ maintainAspectRatio: false,
+ title: {
+ display: false
+ },
+ animation: {
+ animateScale: true,
+ animateRotate: true
+ },
+ stroke: {
+ width: 0
+ },
+ tooltips: {
+ enabled: true,
+ intersect: false,
+ mode: 'nearest',
+ bodySpacing: 5,
+ yPadding: 10,
+ xPadding: 10,
+ caretPadding: 0,
+ displayColors: false,
+ backgroundColor: '#20D489',
+ titleFontColor: '#ffffff',
+ cornerRadius: 4,
+ footerSpacing: 0,
+ titleSpacing: 0
+ },
+ plugins: {
+ legend: {
+ display: false
+ }
+ }
+ }
+ };
+
+ var ctx = element.getContext('2d');
+ var myDoughnut = new Chart(ctx, config);
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTProjectList.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/project/project.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/project/project.js
new file mode 100644
index 0000000..edd2ae6
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/project/project.js
@@ -0,0 +1,316 @@
+"use strict";
+
+// Class definition
+var KTProjectOverview = function () {
+ // Colors
+ var primary = KTUtil.getCssVariableValue('--bs-primary');
+ var lightPrimary = KTUtil.getCssVariableValue('--bs-primary-light');
+ var success = KTUtil.getCssVariableValue('--bs-success');
+ var lightSuccess = KTUtil.getCssVariableValue('--bs-success-light');
+ var gray200 = KTUtil.getCssVariableValue('--bs-gray-200');
+ var gray500 = KTUtil.getCssVariableValue('--bs-gray-500');
+
+ // Private functions
+ var initChart = function () {
+ // init chart
+ var element = document.getElementById("project_overview_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var config = {
+ type: 'doughnut',
+ data: {
+ datasets: [{
+ data: [30, 45, 25],
+ backgroundColor: ['#00A3FF', '#50CD89', '#E4E6EF']
+ }],
+ labels: ['Active', 'Completed', 'Yet to start']
+ },
+ options: {
+ chart: {
+ fontFamily: 'inherit'
+ },
+ cutoutPercentage: 75,
+ responsive: true,
+ maintainAspectRatio: false,
+ cutout: '75%',
+ title: {
+ display: false
+ },
+ animation: {
+ animateScale: true,
+ animateRotate: true
+ },
+ tooltips: {
+ enabled: true,
+ intersect: false,
+ mode: 'nearest',
+ bodySpacing: 5,
+ yPadding: 10,
+ xPadding: 10,
+ caretPadding: 0,
+ displayColors: false,
+ backgroundColor: '#20D489',
+ titleFontColor: '#ffffff',
+ cornerRadius: 4,
+ footerSpacing: 0,
+ titleSpacing: 0
+ },
+ plugins: {
+ legend: {
+ display: false
+ }
+ }
+ }
+ };
+
+ var ctx = element.getContext('2d');
+ var myDoughnut = new Chart(ctx, config);
+ }
+
+ var initGraph = function () {
+ var element = document.getElementById("kt_project_overview_graph");
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if (!element) {
+ return;
+ }
+
+ var options = {
+ series: [{
+ name: 'Incomplete',
+ data: [70, 70, 80, 80, 75, 75, 75]
+ }, {
+ name: 'Complete',
+ data: [55, 55, 60, 60, 55, 55, 60]
+ }],
+ chart: {
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [primary, success]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: gray500,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ position: 'front',
+ stroke: {
+ color: primary,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: gray500,
+ fontSize: '12px',
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px',
+ },
+ y: {
+ formatter: function (val) {
+ return val + " tasks"
+ }
+ }
+ },
+ colors: [lightPrimary, lightSuccess],
+ grid: {
+ borderColor: gray200,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ },
+ markers: {
+ //size: 5,
+ colors: [lightPrimary, lightSuccess],
+ strokeColor: [primary, success],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ }
+
+ var initTable = function () {
+ var table = document.querySelector('#kt_profile_overview_table');
+
+ if (!table) {
+ return;
+ }
+
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[1].innerHTML, "MMM D, YYYY").format();
+ dateRow[1].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ const datatable = $(table).DataTable({
+ "info": false,
+ 'order': []
+ });
+
+ // Filter dropdown elements
+ const filterOrders = document.getElementById('kt_filter_orders');
+ const filterYear = document.getElementById('kt_filter_year');
+
+ // Filter by order status --- official docs reference: https://datatables.net/reference/api/search()
+ filterOrders.addEventListener('change', function (e) {
+ datatable.column(3).search(e.target.value).draw();
+ });
+
+ // Filter by date --- official docs reference: https://momentjs.com/docs/
+ var minDate;
+ var maxDate;
+
+ filterYear.addEventListener('change', function (e) {
+ const value = e.target.value;
+ switch (value) {
+ case 'thisyear': {
+ minDate = moment().startOf('year').format();
+ maxDate = moment().endOf('year').format();
+ datatable.draw();
+ break;
+ }
+ case 'thismonth': {
+ minDate = moment().startOf('month').format();
+ maxDate = moment().endOf('month').format();
+ datatable.draw();
+ break;
+ }
+ case 'lastmonth': {
+ minDate = moment().subtract(1, 'months').startOf('month').format();
+ maxDate = moment().subtract(1, 'months').endOf('month').format();
+ datatable.draw();
+ break;
+ }
+ case 'last90days': {
+ minDate = moment().subtract(30, 'days').format();
+ maxDate = moment().format();
+ datatable.draw();
+ break;
+ }
+ default: {
+ minDate = moment().subtract(100, 'years').startOf('month').format();
+ maxDate = moment().add(1, 'months').endOf('month').format();
+ datatable.draw();
+ break;
+ }
+ }
+ });
+
+ // Date range filter --- offical docs reference: https://datatables.net/examples/plug-ins/range_filtering.html
+ $.fn.dataTable.ext.search.push(
+ function (settings, data, dataIndex) {
+ var min = minDate;
+ var max = maxDate;
+ var date = parseFloat(moment(data[1]).format()) || 0; // use data for the age column
+
+ if ((isNaN(min) && isNaN(max)) ||
+ (isNaN(min) && date <= max) ||
+ (min <= date && isNaN(max)) ||
+ (min <= date && date <= max)) {
+ return true;
+ }
+ return false;
+ }
+ );
+
+ // Search --- official docs reference: https://datatables.net/reference/api/search()
+ var filterSearch = document.getElementById('kt_filter_search');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ initGraph();
+ initTable();
+ }
+ }
+}();
+
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTProjectOverview.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/settings/settings.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/settings/settings.js
new file mode 100644
index 0000000..0d80990
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/settings/settings.js
@@ -0,0 +1,104 @@
+"use strict";
+
+// Class definition
+var KTProjectSettings = function () {
+
+ // Private functions
+ var handleForm = function () {
+ // Init Datepicker --- For more info, please check Flatpickr's official documentation: https://flatpickr.js.org/
+ $("#kt_datepicker_1").flatpickr();
+
+ // Form validation
+ var validation;
+ var _form = document.getElementById('kt_project_settings_form');
+ var submitButton = _form.querySelector('#kt_project_settings_submit');
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validation = FormValidation.formValidation(
+ _form,
+ {
+ fields: {
+ name: {
+ validators: {
+ notEmpty: {
+ message: 'Project name is required'
+ }
+ }
+ },
+ type: {
+ validators: {
+ notEmpty: {
+ message: 'Project type is required'
+ }
+ }
+ },
+ description: {
+ validators: {
+ notEmpty: {
+ message: 'Project Description is required'
+ }
+ }
+ },
+ date: {
+ validators: {
+ notEmpty: {
+ message: 'Due Date is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ submitButton: new FormValidation.plugins.SubmitButton(),
+ //defaultSubmit: new FormValidation.plugins.DefaultSubmit(), // Uncomment this line to enable normal button submit after form validation
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row'
+ })
+ }
+ }
+ );
+
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ validation.validate().then(function (status) {
+ if (status == 'Valid') {
+
+ swal.fire({
+ text: "Thank you! You've updated your project settings",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-light-primary"
+ }
+ });
+
+ } else {
+ swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-light-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ handleForm();
+ }
+ }
+}();
+
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTProjectSettings.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/targets/targets.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/targets/targets.js
new file mode 100644
index 0000000..d652274
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/targets/targets.js
@@ -0,0 +1,38 @@
+"use strict";
+
+// Class definition
+var KTProjectTargets = function () {
+
+ var initDatatable = function () {
+ const table = document.getElementById('kt_profile_overview_table');
+
+ // set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[1].innerHTML, "MMM D, YYYY").format();
+ dateRow[1].setAttribute('data-order', realDate);
+ });
+
+ // init datatable --- more info on datatables: https://datatables.net/manual/
+ const datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "paging": false,
+ });
+
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initDatatable();
+ }
+ }
+}();
+
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTProjectTargets.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/users/users.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/users/users.js
new file mode 100644
index 0000000..c835907
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/projects/users/users.js
@@ -0,0 +1,52 @@
+"use strict";
+
+// Class definition
+var KTProjectUsers = function () {
+
+ var initTable = function () {
+ // Set date data order
+ const table = document.getElementById('kt_project_users_table');
+
+ if (!table) {
+ return;
+ }
+
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[1].innerHTML, "MMM D, YYYY").format();
+ dateRow[1].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ const datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "columnDefs": [{
+ "targets": 4,
+ "orderable": false
+ }]
+ });
+
+ // Search --- official docs reference: https://datatables.net/reference/api/search()
+ var filterSearch = document.getElementById('kt_filter_search');
+ if (filterSearch) {
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initTable();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTProjectUsers.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/advanced.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/advanced.js
new file mode 100644
index 0000000..bf2c886
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/advanced.js
@@ -0,0 +1,126 @@
+"use strict";
+
+var KTSubscriptionsAdvanced = function () {
+ // Shared variables
+ var table;
+ var datatable;
+
+ var initCustomFieldsDatatable = function () {
+ // Define variables
+ const addButton = document.getElementById('kt_create_new_custom_fields_add');
+
+ // Duplicate input fields
+ const fieldName = table.querySelector('tbody tr td:first-child').innerHTML;
+ const fieldValue = table.querySelector('tbody tr td:nth-child(2)').innerHTML;
+ const deleteButton = table.querySelector('tbody tr td:last-child').innerHTML;
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'ordering': false,
+ 'paging': false,
+ "lengthChange": false
+ });
+
+ // Define datatable row node
+ var rowNode;
+
+ // Handle add button
+ addButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ rowNode = datatable.row.add([
+ fieldName,
+ fieldValue,
+ deleteButton
+ ]).draw().node();
+
+ // Add custom class to last column -- more info: https://datatables.net/forums/discussion/22341/row-add-cell-class
+ $(rowNode).find('td').eq(2).addClass('text-end');
+
+ // Re-calculate index
+ initCustomFieldRowIndex();
+ });
+ }
+
+ // Handle row index count
+ var initCustomFieldRowIndex = function() {
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach((tr, index) => {
+ // add index number to input names & id
+ const fieldNameInput = tr.querySelector('td:first-child input');
+ const fieldValueInput = tr.querySelector('td:nth-child(2) input');
+ const fieldNameLabel = fieldNameInput.getAttribute('id');
+ const fieldValueLabel = fieldValueInput.getAttribute('id');
+
+ fieldNameInput.setAttribute('name', fieldNameLabel + '-' + index);
+ fieldValueInput.setAttribute('name', fieldValueLabel + '-' + index);
+ });
+ }
+
+ // Delete product
+ var deleteCustomField = function() {
+ KTUtil.on(table, '[data-kt-action="field_remove"]', 'click', function(e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete this field ?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted it!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "It was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ })
+ }
+ });
+ });
+ }
+
+ return {
+ init: function () {
+ table = document.getElementById('kt_create_new_custom_fields');
+
+ initCustomFieldsDatatable();
+ initCustomFieldRowIndex();
+ deleteCustomField();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSubscriptionsAdvanced.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/customer-select.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/customer-select.js
new file mode 100644
index 0000000..3718907
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/customer-select.js
@@ -0,0 +1,85 @@
+"use strict";
+
+// Class definition
+var KTModalCustomerSelect = function() {
+ // Private variables
+ var element;
+ var suggestionsElement;
+ var resultsElement;
+ var wrapperElement;
+ var emptyElement;
+ var searchObject;
+
+ var modal;
+
+ // Private functions
+ var processs = function(search) {
+ var timeout = setTimeout(function() {
+ var number = KTUtil.getRandomInt(1, 6);
+
+ // Hide recently viewed
+ suggestionsElement.classList.add('d-none');
+
+ if (number === 3) {
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Show empty message
+ emptyElement.classList.remove('d-none');
+ } else {
+ // Show results
+ resultsElement.classList.remove('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+ }
+
+ // Complete search
+ search.complete();
+ }, 1500);
+ }
+
+ var clear = function(search) {
+ // Show recently viewed
+ suggestionsElement.classList.remove('d-none');
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+ }
+
+ // Public methods
+ return {
+ init: function() {
+ // Elements
+ element = document.querySelector('#kt_modal_customer_search_handler');
+ modal = new bootstrap.Modal(document.querySelector('#kt_modal_customer_search'));
+
+ if (!element) {
+ return;
+ }
+
+ wrapperElement = element.querySelector('[data-kt-search-element="wrapper"]');
+ suggestionsElement = element.querySelector('[data-kt-search-element="suggestions"]');
+ resultsElement = element.querySelector('[data-kt-search-element="results"]');
+ emptyElement = element.querySelector('[data-kt-search-element="empty"]');
+
+ // Initialize search handler
+ searchObject = new KTSearch(element);
+
+ // Search handler
+ searchObject.on('kt.search.process', processs);
+
+ // Clear handler
+ searchObject.on('kt.search.clear', clear);
+
+ // Handle select
+ KTUtil.on(element, '[data-kt-search-element="customer"]', 'click', function() {
+ modal.hide();
+ });
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalCustomerSelect.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/products.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/products.js
new file mode 100644
index 0000000..2f33c38
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/add/products.js
@@ -0,0 +1,157 @@
+"use strict";
+
+var KTSubscriptionsProducts = function () {
+ // Shared variables
+ var table;
+ var datatable;
+ var modalEl;
+ var modal;
+
+ var initDatatable = function() {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'ordering': false,
+ 'paging': false,
+ "lengthChange": false
+ });
+ }
+
+ // Delete product
+ var deleteProduct = function() {
+ KTUtil.on(table, '[data-kt-action="product_remove"]', 'click', function(e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const productName = parent.querySelectorAll('td')[0].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + productName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + productName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Modal handlers
+ var addProduct = function() {
+ // Select modal buttons
+ const closeButton = modalEl.querySelector('#kt_modal_add_product_close');
+ const cancelButton = modalEl.querySelector('#kt_modal_add_product_cancel');
+ const submitButton = modalEl.querySelector('#kt_modal_add_product_submit');
+
+ // Cancel button action
+ cancelButton.addEventListener('click', function(e){
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Add customer button handler
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Check all radio buttons
+ var radio = modalEl.querySelector('input[type="radio"]:checked');
+
+ // Define datatable row node
+ var rowNode;
+
+ if (radio && radio.checked === true) {
+ rowNode = datatable.row.add( [
+ radio.getAttribute('data-kt-product-name'),
+ '1',
+ radio.getAttribute('data-kt-product-price') + ' / ' + radio.getAttribute('data-kt-product-frequency'),
+ table.querySelector('tbody tr td:last-child').innerHTML
+ ]).draw().node();
+
+ // Add custom class to last column -- more info: https://datatables.net/forums/discussion/22341/row-add-cell-class
+ $( rowNode ).find('td').eq(3).addClass('text-end');
+ }
+
+ modal.hide(); // Remove modal
+ });
+ }
+
+ return {
+ init: function () {
+ modalEl = document.getElementById('kt_modal_add_product');
+
+ // Select modal -- more info on Bootstrap modal: https://getbootstrap.com/docs/5.0/components/modal/
+ modal = new bootstrap.Modal(modalEl);
+
+ table = document.querySelector('#kt_subscription_products_table');
+
+ initDatatable();
+ deleteProduct();
+ addProduct();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSubscriptionsProducts.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/list/export.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/list/export.js
new file mode 100644
index 0000000..9f5949f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/list/export.js
@@ -0,0 +1,189 @@
+"use strict";
+
+// Class definition
+var KTSubscriptionsExport = function () {
+ var element;
+ var submitButton;
+ var cancelButton;
+ var closeButton;
+ var validator;
+ var form;
+ var modal;
+
+ // Init form inputs
+ var handleForm = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'date': {
+ validators: {
+ notEmpty: {
+ message: 'Date range is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function () {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "Customer list has been successfully exported!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ var initForm = function () {
+ const datepicker = form.querySelector("[name=date]");
+
+ // Handle datepicker range -- For more info on flatpickr plugin, please visit: https://flatpickr.js.org/
+ $(datepicker).flatpickr({
+ altInput: true,
+ altFormat: "F j, Y",
+ dateFormat: "Y-m-d",
+ mode: "range"
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_subscriptions_export_modal');
+ modal = new bootstrap.Modal(element);
+
+ form = document.querySelector('#kt_subscriptions_export_form');
+ submitButton = form.querySelector('#kt_subscriptions_export_submit');
+ cancelButton = form.querySelector('#kt_subscriptions_export_cancel');
+ closeButton = element.querySelector('#kt_subscriptions_export_close');
+
+ handleForm();
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSubscriptionsExport.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/list/list.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/list/list.js
new file mode 100644
index 0000000..2dee53d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/subscriptions/list/list.js
@@ -0,0 +1,277 @@
+"use strict";
+
+var KTSubscriptionsList = function () {
+ // Define shared variables
+ var table;
+ var datatable;
+ var toolbarBase;
+ var toolbarSelected;
+ var selectedCount;
+
+ // Private functions
+ var initDatatable = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[5].innerHTML, "DD MMM YYYY, LT").format(); // select date from 4th column in table
+ dateRow[5].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 10,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 6 }, // Disable ordering on column 6 (actions)
+ ]
+ });
+
+ // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw
+ datatable.on('draw', function () {
+ initToggleToolbar();
+ handleRowDeletion();
+ toggleToolbars();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearch = function () {
+ const filterSearch = document.querySelector('[data-kt-subscription-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Filter Datatable
+ var handleFilter = function () {
+ // Select filter options
+ const filterForm = document.querySelector('[data-kt-subscription-table-filter="form"]');
+ const filterButton = filterForm.querySelector('[data-kt-subscription-table-filter="filter"]');
+ const resetButton = filterForm.querySelector('[data-kt-subscription-table-filter="reset"]');
+ const selectOptions = filterForm.querySelectorAll('select');
+
+ // Filter datatable on submit
+ filterButton.addEventListener('click', function () {
+ var filterString = '';
+
+ // Get filter values
+ selectOptions.forEach((item, index) => {
+ if (item.value && item.value !== '') {
+ if (index !== 0) {
+ filterString += ' ';
+ }
+
+ // Build filter value options
+ filterString += item.value;
+ }
+ });
+
+ // Filter datatable --- official docs reference: https://datatables.net/reference/api/search()
+ datatable.search(filterString).draw();
+ });
+
+ // Reset datatable
+ resetButton.addEventListener('click', function () {
+ // Reset filter form
+ selectOptions.forEach((item, index) => {
+ // Reset Select2 dropdown --- official docs reference: https://select2.org/programmatic-control/add-select-clear-items
+ $(item).val(null).trigger('change');
+ });
+
+ // Filter datatable --- official docs reference: https://datatables.net/reference/api/search()
+ datatable.search('').draw();
+ });
+ }
+
+ // Delete subscirption
+ var handleRowDeletion = function () {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-subscriptions-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const customerName = parent.querySelectorAll('td')[1].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + customerName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + customerName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ }).then(function () {
+ // Detect checked checkboxes
+ toggleToolbars();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Init toggle toolbar
+ var initToggleToolbar = () => {
+ // Toggle selected action toolbar
+ // Select all checkboxes
+ const checkboxes = table.querySelectorAll('[type="checkbox"]');
+
+ // Select elements
+ toolbarBase = document.querySelector('[data-kt-subscription-table-toolbar="base"]');
+ toolbarSelected = document.querySelector('[data-kt-subscription-table-toolbar="selected"]');
+ selectedCount = document.querySelector('[data-kt-subscription-table-select="selected_count"]');
+ const deleteSelected = document.querySelector('[data-kt-subscription-table-select="delete_selected"]');
+
+ // Toggle delete selected toolbar
+ checkboxes.forEach(c => {
+ // Checkbox on click event
+ c.addEventListener('click', function () {
+ setTimeout(function () {
+ toggleToolbars();
+ }, 50);
+ });
+ });
+
+ // Deleted selected rows
+ deleteSelected.addEventListener('click', function () {
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete selected customers?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted all selected customers!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove all selected customers
+ checkboxes.forEach(c => {
+ if (c.checked) {
+ datatable.row($(c.closest('tbody tr'))).remove().draw();
+ }
+ });
+
+ // Remove header checked box
+ const headerCheckbox = table.querySelectorAll('[type="checkbox"]')[0];
+ headerCheckbox.checked = false;
+ }).then(function () {
+ toggleToolbars(); // Detect checked checkboxes
+ initToggleToolbar(); // Re-init toolbar to recalculate checkboxes
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Selected customers was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Toggle toolbars
+ const toggleToolbars = () => {
+ // Select refreshed checkbox DOM elements
+ const allCheckboxes = table.querySelectorAll('tbody [type="checkbox"]');
+
+ // Detect checkboxes state & count
+ let checkedState = false;
+ let count = 0;
+
+ // Count checked boxes
+ allCheckboxes.forEach(c => {
+ if (c.checked) {
+ checkedState = true;
+ count++;
+ }
+ });
+
+ // Toggle toolbars
+ if (checkedState) {
+ selectedCount.innerHTML = count;
+ toolbarBase.classList.add('d-none');
+ toolbarSelected.classList.remove('d-none');
+ } else {
+ toolbarBase.classList.remove('d-none');
+ toolbarSelected.classList.add('d-none');
+ }
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ table = document.getElementById('kt_subscriptions_table');
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ initToggleToolbar();
+ handleSearch();
+ handleRowDeletion();
+ handleFilter();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSubscriptionsList.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/support-center/general.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/support-center/general.js
new file mode 100644
index 0000000..437d2ac
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/support-center/general.js
@@ -0,0 +1,74 @@
+"use strict";
+
+var KTSupportCenterGeneral = function() {
+ var menuWrapper;
+
+ var initInstance = function(element) {
+ var elements = element;
+
+ if ( typeof elements === 'undefined' ) {
+ elements = document.querySelectorAll('.highlight');
+ }
+
+ if ( elements && elements.length > 0 ) {
+ for ( var i = 0; i < elements.length; ++i ) {
+ var highlight = elements[i];
+ var copy = highlight.querySelector('.highlight-copy');
+
+ if ( copy ) {
+ var clipboard = new ClipboardJS(copy, {
+ target: function(trigger) {
+ var highlight = trigger.closest('.highlight');
+ var el = highlight.querySelector('.tab-pane.active');
+
+ if ( el == null ) {
+ el = highlight.querySelector('.highlight-code');
+ }
+
+ return el;
+ }
+ });
+
+ clipboard.on('success', function(e) {
+ var caption = e.trigger.innerHTML;
+
+ e.trigger.innerHTML = 'copied';
+ e.clearSelection();
+
+ setTimeout(function() {
+ e.trigger.innerHTML = caption;
+ }, 2000);
+ });
+ }
+ }
+ }
+ }
+
+ var handleMenuScroll = function() {
+ var menuActiveItem = menuWrapper.querySelector(".menu-link.active");
+
+ if ( !menuActiveItem ) {
+ return;
+ }
+
+ if ( KTUtil.isVisibleInContainer(menuActiveItem, menuWrapper) === true) {
+ return;
+ }
+
+ menuWrapper.scroll({
+ top: KTUtil.getRelativeTopPosition(menuActiveItem, menuWrapper),
+ behavior: 'smooth'
+ });
+ }
+
+ return {
+ init: function() {
+ initInstance();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSupportCenterGeneral.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/support-center/tickets/create.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/support-center/tickets/create.js
new file mode 100644
index 0000000..a11a649
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/support-center/tickets/create.js
@@ -0,0 +1,219 @@
+"use strict";
+
+// Class definition
+var KTModalNewTicket = function () {
+ var submitButton;
+ var cancelButton;
+ var validator;
+ var form;
+ var modal;
+ var modalEl;
+
+ // Init form inputs
+ var initForm = function() {
+ // Ticket attachments
+ // For more info about Dropzone plugin visit: https://www.dropzonejs.com/#usage
+ var myDropzone = new Dropzone("#kt_modal_create_ticket_attachments", {
+ url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
+ paramName: "file", // The name that will be used to transfer the file
+ maxFiles: 10,
+ maxFilesize: 10, // MB
+ addRemoveLinks: true,
+ accept: function(file, done) {
+ if (file.name == "justinbieber.jpg") {
+ done("Naha, you don't.");
+ } else {
+ done();
+ }
+ }
+ });
+
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var dueDate = $(form.querySelector('[name="due_date"]'));
+ dueDate.flatpickr({
+ enableTime: true,
+ dateFormat: "d, M Y, H:i",
+ });
+
+ // Ticket user. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="user"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('user');
+ });
+
+ // Ticket status. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="status"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('status');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ subject: {
+ validators: {
+ notEmpty: {
+ message: 'Ticket subject is required'
+ }
+ }
+ },
+ user: {
+ validators: {
+ notEmpty: {
+ message: 'Ticket user is required'
+ }
+ }
+ },
+ due_date: {
+ validators: {
+ notEmpty: {
+ message: 'Ticket due date is required'
+ }
+ }
+ },
+ description: {
+ validators: {
+ notEmpty: {
+ message: 'Target description is required'
+ }
+ }
+ },
+ 'notifications[]': {
+ validators: {
+ notEmpty: {
+ message: 'Please select at least one notifications method'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show success message. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show error message.
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_new_ticket');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ form = document.querySelector('#kt_modal_new_ticket_form');
+ submitButton = document.getElementById('kt_modal_new_ticket_submit');
+ cancelButton = document.getElementById('kt_modal_new_ticket_cancel');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalNewTicket.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/add-permission.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/add-permission.js
new file mode 100644
index 0000000..f9a1368
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/add-permission.js
@@ -0,0 +1,166 @@
+"use strict";
+
+// Class definition
+var KTUsersAddPermission = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_permission');
+ const form = element.querySelector('#kt_modal_add_permission_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initAddPermission = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'permission_name': {
+ validators: {
+ notEmpty: {
+ message: 'Permission name is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-permissions-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-permissions-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-permissions-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddPermission();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddPermission.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/list.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/list.js
new file mode 100644
index 0000000..02b3fef
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/list.js
@@ -0,0 +1,117 @@
+"use strict";
+
+// Class definition
+var KTUsersPermissionsList = function () {
+ // Shared variables
+ var datatable;
+ var table;
+
+ // Init add schedule modal
+ var initPermissionsList = () => {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[2].innerHTML, "DD MMM YYYY, LT").format(); // select date from 2nd column in table
+ dateRow[2].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ 'columnDefs': [
+ { orderable: false, targets: 1 }, // Disable ordering on column 1 (assigned)
+ { orderable: false, targets: 3 }, // Disable ordering on column 3 (actions)
+ ]
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-permissions-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Delete user
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-permissions-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get permission name
+ const permissionName = parent.querySelectorAll('td')[0].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + permissionName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + permissionName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+
+ return {
+ // Public functions
+ init: function () {
+ table = document.querySelector('#kt_permissions_table');
+
+ if (!table) {
+ return;
+ }
+
+ initPermissionsList();
+ handleSearchDatatable();
+ handleDeleteRows();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersPermissionsList.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/update-permission.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/update-permission.js
new file mode 100644
index 0000000..c589428
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/permissions/update-permission.js
@@ -0,0 +1,166 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdatePermission = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_permission');
+ const form = element.querySelector('#kt_modal_update_permission_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdatePermission = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'permission_name': {
+ validators: {
+ notEmpty: {
+ message: 'Permission name is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-permissions-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-permissions-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-permissions-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdatePermission();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdatePermission.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/list/add.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/list/add.js
new file mode 100644
index 0000000..7b86b8f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/list/add.js
@@ -0,0 +1,185 @@
+"use strict";
+
+// Class definition
+var KTUsersAddRole = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_role');
+ const form = element.querySelector('#kt_modal_add_role_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initAddRole = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'role_name': {
+ validators: {
+ notEmpty: {
+ message: 'Role name is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-roles-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-roles-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-roles-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+
+ }
+
+ // Select all handler
+ const handleSelectAll = () =>{
+ // Define variables
+ const selectAll = form.querySelector('#kt_roles_select_all');
+ const allCheckboxes = form.querySelectorAll('[type="checkbox"]');
+
+ // Handle check state
+ selectAll.addEventListener('change', e => {
+
+ // Apply check state to all checkboxes
+ allCheckboxes.forEach(c => {
+ c.checked = e.target.checked;
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddRole();
+ handleSelectAll();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddRole.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/list/update-role.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/list/update-role.js
new file mode 100644
index 0000000..6b00118
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/list/update-role.js
@@ -0,0 +1,183 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdatePermissions = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_role');
+ const form = element.querySelector('#kt_modal_update_role_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdatePermissions = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'role_name': {
+ validators: {
+ notEmpty: {
+ message: 'Role name is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-roles-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-roles-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-roles-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Select all handler
+ const handleSelectAll = () => {
+ // Define variables
+ const selectAll = form.querySelector('#kt_roles_select_all');
+ const allCheckboxes = form.querySelectorAll('[type="checkbox"]');
+
+ // Handle check state
+ selectAll.addEventListener('change', e => {
+
+ // Apply check state to all checkboxes
+ allCheckboxes.forEach(c => {
+ c.checked = e.target.checked;
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdatePermissions();
+ handleSelectAll();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdatePermissions.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/view/update-role.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/view/update-role.js
new file mode 100644
index 0000000..6b00118
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/view/update-role.js
@@ -0,0 +1,183 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdatePermissions = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_role');
+ const form = element.querySelector('#kt_modal_update_role_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdatePermissions = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'role_name': {
+ validators: {
+ notEmpty: {
+ message: 'Role name is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-roles-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-roles-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-roles-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Select all handler
+ const handleSelectAll = () => {
+ // Define variables
+ const selectAll = form.querySelector('#kt_roles_select_all');
+ const allCheckboxes = form.querySelectorAll('[type="checkbox"]');
+
+ // Handle check state
+ selectAll.addEventListener('change', e => {
+
+ // Apply check state to all checkboxes
+ allCheckboxes.forEach(c => {
+ c.checked = e.target.checked;
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdatePermissions();
+ handleSelectAll();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdatePermissions.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/view/view.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/view/view.js
new file mode 100644
index 0000000..732b982
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/roles/view/view.js
@@ -0,0 +1,225 @@
+"use strict";
+
+// Class definition
+var KTUsersViewRole = function () {
+ // Shared variables
+ var datatable;
+ var table;
+
+ // Init add schedule modal
+ var initViewRole = () => {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const realDate = moment(dateRow[3].innerHTML, "DD MMM YYYY, LT").format(); // select date from 5th column in table
+ dateRow[3].setAttribute('data-order', realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 5,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 4 }, // Disable ordering on column 4 (actions)
+ ]
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-roles-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Delete user
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-roles-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get customer name
+ const userName = parent.querySelectorAll('td')[1].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + userName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + userName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Init toggle toolbar
+ var initToggleToolbar = () => {
+ // Toggle selected action toolbar
+ // Select all checkboxes
+ const checkboxes = table.querySelectorAll('[type="checkbox"]');
+
+ // Select elements
+ const deleteSelected = document.querySelector('[data-kt-view-roles-table-select="delete_selected"]');
+
+ // Toggle delete selected toolbar
+ checkboxes.forEach(c => {
+ // Checkbox on click event
+ c.addEventListener('click', function () {
+ setTimeout(function () {
+ toggleToolbars();
+ }, 50);
+ });
+ });
+
+ // Deleted selected rows
+ deleteSelected.addEventListener('click', function () {
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete selected customers?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted all selected customers!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove all selected customers
+ checkboxes.forEach(c => {
+ if (c.checked) {
+ datatable.row($(c.closest('tbody tr'))).remove().draw();
+ }
+ });
+
+ // Remove header checked box
+ const headerCheckbox = table.querySelectorAll('[type="checkbox"]')[0];
+ headerCheckbox.checked = false;
+ }).then(function(){
+ toggleToolbars(); // Detect checked checkboxes
+ initToggleToolbar(); // Re-init toolbar to recalculate checkboxes
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Selected customers was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Toggle toolbars
+ const toggleToolbars = () => {
+ // Define variables
+ const toolbarBase = document.querySelector('[data-kt-view-roles-table-toolbar="base"]');
+ const toolbarSelected = document.querySelector('[data-kt-view-roles-table-toolbar="selected"]');
+ const selectedCount = document.querySelector('[data-kt-view-roles-table-select="selected_count"]');
+
+ // Select refreshed checkbox DOM elements
+ const allCheckboxes = table.querySelectorAll('tbody [type="checkbox"]');
+
+ // Detect checkboxes state & count
+ let checkedState = false;
+ let count = 0;
+
+ // Count checked boxes
+ allCheckboxes.forEach(c => {
+ if (c.checked) {
+ checkedState = true;
+ count++;
+ }
+ });
+
+ // Toggle toolbars
+ if (checkedState) {
+ selectedCount.innerHTML = count;
+ toolbarBase.classList.add('d-none');
+ toolbarSelected.classList.remove('d-none');
+ } else {
+ toolbarBase.classList.remove('d-none');
+ toolbarSelected.classList.add('d-none');
+ }
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ table = document.querySelector('#kt_roles_view_table');
+
+ if (!table) {
+ return;
+ }
+
+ initViewRole();
+ handleSearchDatatable();
+ handleDeleteRows();
+ initToggleToolbar();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersViewRole.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/add.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/add.js
new file mode 100644
index 0000000..1b75a8c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/add.js
@@ -0,0 +1,183 @@
+"use strict";
+
+// Class definition
+var KTUsersAddUser = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_user');
+ const form = element.querySelector('#kt_modal_add_user_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initAddUser = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'user_name': {
+ validators: {
+ notEmpty: {
+ message: 'Full name is required'
+ }
+ }
+ },
+ 'user_email': {
+ validators: {
+ notEmpty: {
+ message: 'Valid email address is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide();
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide();
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddUser();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddUser.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/export-users.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/export-users.js
new file mode 100644
index 0000000..0de7636
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/export-users.js
@@ -0,0 +1,170 @@
+"use strict";
+
+// Class definition
+var KTModalExportUsers = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_export_users');
+ const form = element.querySelector('#kt_modal_export_users_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init form inputs
+ var initForm = function () {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'format': {
+ validators: {
+ notEmpty: {
+ message: 'File format is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable submit button whilst loading
+ submitButton.disabled = true;
+
+ setTimeout(function () {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ Swal.fire({
+ text: "User list has been successfully exported!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+
+ // Enable submit button after loading
+ submitButton.disabled = false;
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalExportUsers.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/table.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/table.js
new file mode 100644
index 0000000..87e9ce3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/list/table.js
@@ -0,0 +1,315 @@
+"use strict";
+
+var KTUsersList = function () {
+ // Define shared variables
+ var table = document.getElementById('kt_table_users');
+ var datatable;
+ var toolbarBase;
+ var toolbarSelected;
+ var selectedCount;
+
+ // Private functions
+ var initUserTable = function () {
+ // Set date data order
+ const tableRows = table.querySelectorAll('tbody tr');
+
+ tableRows.forEach(row => {
+ const dateRow = row.querySelectorAll('td');
+ const lastLogin = dateRow[3].innerText.toLowerCase(); // Get last login time
+ let timeCount = 0;
+ let timeFormat = 'minutes';
+
+ // Determine date & time format -- add more formats when necessary
+ if (lastLogin.includes('yesterday')) {
+ timeCount = 1;
+ timeFormat = 'days';
+ } else if (lastLogin.includes('mins')) {
+ timeCount = parseInt(lastLogin.replace(/\D/g, ''));
+ timeFormat = 'minutes';
+ } else if (lastLogin.includes('hours')) {
+ timeCount = parseInt(lastLogin.replace(/\D/g, ''));
+ timeFormat = 'hours';
+ } else if (lastLogin.includes('days')) {
+ timeCount = parseInt(lastLogin.replace(/\D/g, ''));
+ timeFormat = 'days';
+ } else if (lastLogin.includes('weeks')) {
+ timeCount = parseInt(lastLogin.replace(/\D/g, ''));
+ timeFormat = 'weeks';
+ }
+
+ // Subtract date/time from today -- more info on moment datetime subtraction: https://momentjs.com/docs/#/durations/subtract/
+ const realDate = moment().subtract(timeCount, timeFormat).format();
+
+ // Insert real date to last login attribute
+ dateRow[3].setAttribute('data-order', realDate);
+
+ // Set real date for joined column
+ const joinedDate = moment(dateRow[5].innerHTML, "DD MMM YYYY, LT").format(); // select date from 5th column in table
+ dateRow[5].setAttribute('data-order', joinedDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ "info": false,
+ 'order': [],
+ "pageLength": 10,
+ "lengthChange": false,
+ 'columnDefs': [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 6 }, // Disable ordering on column 6 (actions)
+ ]
+ });
+
+ // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw
+ datatable.on('draw', function () {
+ initToggleToolbar();
+ handleDeleteRows();
+ toggleToolbars();
+ });
+ }
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector('[data-kt-user-table-filter="search"]');
+ filterSearch.addEventListener('keyup', function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ }
+
+ // Filter Datatable
+ var handleFilterDatatable = () => {
+ // Select filter options
+ const filterForm = document.querySelector('[data-kt-user-table-filter="form"]');
+ const filterButton = filterForm.querySelector('[data-kt-user-table-filter="filter"]');
+ const selectOptions = filterForm.querySelectorAll('select');
+
+ // Filter datatable on submit
+ filterButton.addEventListener('click', function () {
+ var filterString = '';
+
+ // Get filter values
+ selectOptions.forEach((item, index) => {
+ if (item.value && item.value !== '') {
+ if (index !== 0) {
+ filterString += ' ';
+ }
+
+ // Build filter value options
+ filterString += item.value;
+ }
+ });
+
+ // Filter datatable --- official docs reference: https://datatables.net/reference/api/search()
+ datatable.search(filterString).draw();
+ });
+ }
+
+ // Reset Filter
+ var handleResetForm = () => {
+ // Select reset button
+ const resetButton = document.querySelector('[data-kt-user-table-filter="reset"]');
+
+ // Reset datatable
+ resetButton.addEventListener('click', function () {
+ // Select filter options
+ const filterForm = document.querySelector('[data-kt-user-table-filter="form"]');
+ const selectOptions = filterForm.querySelectorAll('select');
+
+ // Reset select2 values -- more info: https://select2.org/programmatic-control/add-select-clear-items
+ selectOptions.forEach(select => {
+ $(select).val('').trigger('change');
+ });
+
+ // Reset datatable --- official docs reference: https://datatables.net/reference/api/search()
+ datatable.search('').draw();
+ });
+ }
+
+
+ // Delete subscirption
+ var handleDeleteRows = () => {
+ // Select all delete buttons
+ const deleteButtons = table.querySelectorAll('[data-kt-users-table-filter="delete_row"]');
+
+ deleteButtons.forEach(d => {
+ // Delete button on click
+ d.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Select parent row
+ const parent = e.target.closest('tr');
+
+ // Get user name
+ const userName = parent.querySelectorAll('td')[1].querySelectorAll('a')[1].innerText;
+
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete " + userName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted " + userName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove current row
+ datatable.row($(parent)).remove().draw();
+ }).then(function () {
+ // Detect checked checkboxes
+ toggleToolbars();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: customerName + " was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ })
+ });
+ }
+
+ // Init toggle toolbar
+ var initToggleToolbar = () => {
+ // Toggle selected action toolbar
+ // Select all checkboxes
+ const checkboxes = table.querySelectorAll('[type="checkbox"]');
+
+ // Select elements
+ toolbarBase = document.querySelector('[data-kt-user-table-toolbar="base"]');
+ toolbarSelected = document.querySelector('[data-kt-user-table-toolbar="selected"]');
+ selectedCount = document.querySelector('[data-kt-user-table-select="selected_count"]');
+ const deleteSelected = document.querySelector('[data-kt-user-table-select="delete_selected"]');
+
+ // Toggle delete selected toolbar
+ checkboxes.forEach(c => {
+ // Checkbox on click event
+ c.addEventListener('click', function () {
+ setTimeout(function () {
+ toggleToolbars();
+ }, 50);
+ });
+ });
+
+ // Deleted selected rows
+ deleteSelected.addEventListener('click', function () {
+ // SweetAlert2 pop up --- official docs reference: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you want to delete selected customers?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, delete!",
+ cancelButtonText: "No, cancel",
+ customClass: {
+ confirmButton: "btn fw-bold btn-danger",
+ cancelButton: "btn fw-bold btn-active-light-primary"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have deleted all selected customers!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ }).then(function () {
+ // Remove all selected customers
+ checkboxes.forEach(c => {
+ if (c.checked) {
+ datatable.row($(c.closest('tbody tr'))).remove().draw();
+ }
+ });
+
+ // Remove header checked box
+ const headerCheckbox = table.querySelectorAll('[type="checkbox"]')[0];
+ headerCheckbox.checked = false;
+ }).then(function () {
+ toggleToolbars(); // Detect checked checkboxes
+ initToggleToolbar(); // Re-init toolbar to recalculate checkboxes
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Selected customers was not deleted.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Toggle toolbars
+ const toggleToolbars = () => {
+ // Select refreshed checkbox DOM elements
+ const allCheckboxes = table.querySelectorAll('tbody [type="checkbox"]');
+
+ // Detect checkboxes state & count
+ let checkedState = false;
+ let count = 0;
+
+ // Count checked boxes
+ allCheckboxes.forEach(c => {
+ if (c.checked) {
+ checkedState = true;
+ count++;
+ }
+ });
+
+ // Toggle toolbars
+ if (checkedState) {
+ selectedCount.innerHTML = count;
+ toolbarBase.classList.add('d-none');
+ toolbarSelected.classList.remove('d-none');
+ } else {
+ toolbarBase.classList.remove('d-none');
+ toolbarSelected.classList.add('d-none');
+ }
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ if (!table) {
+ return;
+ }
+
+ initUserTable();
+ initToggleToolbar();
+ handleSearchDatatable();
+ handleResetForm();
+ handleDeleteRows();
+ handleFilterDatatable();
+
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersList.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-auth-app.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-auth-app.js
new file mode 100644
index 0000000..ca71185
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-auth-app.js
@@ -0,0 +1,81 @@
+"use strict";
+
+// Class definition
+var KTUsersAddAuthApp = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_auth_app');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initAddAuthApp = () => {
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ }
+
+ // QR code to text code swapper
+ var initCodeSwap = () => {
+ const qrCode = element.querySelector('[ data-kt-add-auth-action="qr-code"]');
+ const textCode = element.querySelector('[ data-kt-add-auth-action="text-code"]');
+ const qrCodeButton = element.querySelector('[ data-kt-add-auth-action="qr-code-button"]');
+ const textCodeButton = element.querySelector('[ data-kt-add-auth-action="text-code-button"]');
+ const qrCodeLabel = element.querySelector('[ data-kt-add-auth-action="qr-code-label"]');
+ const textCodeLabel = element.querySelector('[ data-kt-add-auth-action="text-code-label"]');
+
+ const toggleClass = () =>{
+ qrCode.classList.toggle('d-none');
+ qrCodeButton.classList.toggle('d-none');
+ qrCodeLabel.classList.toggle('d-none');
+ textCode.classList.toggle('d-none');
+ textCodeButton.classList.toggle('d-none');
+ textCodeLabel.classList.toggle('d-none');
+ }
+
+ // Swap to text code handler
+ textCodeButton.addEventListener('click', e =>{
+ e.preventDefault();
+
+ toggleClass();
+ });
+
+ qrCodeButton.addEventListener('click', e =>{
+ e.preventDefault();
+
+ toggleClass();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddAuthApp();
+ initCodeSwap();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddAuthApp.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-one-time-password.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-one-time-password.js
new file mode 100644
index 0000000..af78deb
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-one-time-password.js
@@ -0,0 +1,173 @@
+"use strict";
+
+// Class definition
+var KTUsersAddOneTimePassword = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_one_time_password');
+ const form = element.querySelector('#kt_modal_add_one_time_password_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init one time password modal
+ var initAddOneTimePassword = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'otp_mobile_number': {
+ validators: {
+ notEmpty: {
+ message: 'Valid mobile number is required'
+ }
+ }
+ },
+ 'otp_confirm_password': {
+ validators: {
+ notEmpty: {
+ message: 'Password confirmation is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to close?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, close it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ modal.hide(); // Hide modal
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddOneTimePassword();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddOneTimePassword.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-schedule.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-schedule.js
new file mode 100644
index 0000000..7e91b55
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-schedule.js
@@ -0,0 +1,223 @@
+"use strict";
+
+// Class definition
+var KTUsersAddSchedule = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_schedule');
+ const form = element.querySelector('#kt_modal_add_schedule_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initAddSchedule = () => {
+
+ // Init flatpickr -- for more info: https://flatpickr.js.org/
+ $("#kt_modal_add_schedule_datepicker").flatpickr({
+ enableTime: true,
+ dateFormat: "Y-m-d H:i",
+ });
+
+ // Init tagify -- for more info: https://yaireo.github.io/tagify/
+ const tagifyInput = form.querySelector('#kt_modal_add_schedule_tagify');
+ new Tagify(tagifyInput, {
+ whitelist: ["sean@dellito.com", "brian@exchange.com", "mikaela@pexcom.com", "f.mitcham@kpmg.com.au", "olivia@corpmail.com", "owen.neil@gmail.com", "dam@consilting.com", "emma@intenso.com", "ana.cf@limtel.com", "robert@benko.com", "lucy.m@fentech.com", "ethan@loop.com.au"],
+ maxTags: 10,
+ dropdown: {
+ maxItems: 20, // <- mixumum allowed rendered suggestions
+ classname: "tagify__inline__suggestions", // <- custom classname for this dropdown, so it could be targeted
+ enabled: 0, // <- show suggestions on focus
+ closeOnSelect: false // <- do not hide the suggestions dropdown once an item has been selected
+ }
+ });
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'event_datetime': {
+ validators: {
+ notEmpty: {
+ message: 'Event date & time is required'
+ }
+ }
+ },
+ 'event_name': {
+ validators: {
+ notEmpty: {
+ message: 'Event name is required'
+ }
+ }
+ },
+ 'event_org': {
+ validators: {
+ notEmpty: {
+ message: 'Event organiser is required'
+ }
+ }
+ },
+ 'event_invitees': {
+ validators: {
+ notEmpty: {
+ message: 'Event invitees is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="event_invitees"]')).on('change', function () {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('event_invitees');
+ });
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function() {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddSchedule();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddSchedule.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-task.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-task.js
new file mode 100644
index 0000000..2986672
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/add-task.js
@@ -0,0 +1,324 @@
+"use strict";
+
+// Class definition
+var KTUsersAddTask = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_add_task');
+ const form = element.querySelector('#kt_modal_add_task_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add task modal
+ var initAddTask = () => {
+
+ // Init flatpickr -- for more info: https://flatpickr.js.org/
+ $("#kt_modal_add_task_datepicker").flatpickr({
+ dateFormat: "Y-m-d",
+ });
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'task_duedate': {
+ validators: {
+ notEmpty: {
+ message: 'Task due date is required'
+ }
+ }
+ },
+ 'task_name': {
+ validators: {
+ notEmpty: {
+ message: 'Task name is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Init update task status
+ var initUpdateTaskStatus = () => {
+ const allTaskMenus = document.querySelectorAll('[data-kt-menu-id="kt-users-tasks"]');
+
+ allTaskMenus.forEach(el => {
+ const resetButton = el.querySelector('[data-kt-users-update-task-status="reset"]');
+ const submitButton = el.querySelector('[data-kt-users-update-task-status="submit"]');
+ const taskForm = el.querySelector('[data-kt-menu-id="kt-users-tasks-form"]');
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ taskForm,
+ {
+ fields: {
+ 'task_status': {
+ validators: {
+ notEmpty: {
+ message: 'Task due date is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate country field. For more info, plase visit the official plugin site: https://select2.org/
+ $(taskForm.querySelector('[name="task_status"]')).on('change', function () {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('task_status');
+ });
+
+ // Reset action handler
+ resetButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to reset?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, reset it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ taskForm.reset(); // Reset form
+ el.hide();
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form was not reset!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit action handler
+ submitButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ el.hide();
+ }
+ });
+
+ //taskForm.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function(){
+ //el.show();
+ });
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initAddTask();
+ initUpdateTaskStatus();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersAddTask.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-details.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-details.js
new file mode 100644
index 0000000..17c2c66
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-details.js
@@ -0,0 +1,132 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdateDetails = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_details');
+ const form = element.querySelector('#kt_modal_update_user_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdateDetails = () => {
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdateDetails();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdateDetails.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-email.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-email.js
new file mode 100644
index 0000000..cd8773c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-email.js
@@ -0,0 +1,166 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdateEmail = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_email');
+ const form = element.querySelector('#kt_modal_update_email_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdateEmail = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'profile_email': {
+ validators: {
+ notEmpty: {
+ message: 'Email address is required'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdateEmail();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdateEmail.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-password.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-password.js
new file mode 100644
index 0000000..9110a89
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-password.js
@@ -0,0 +1,194 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdatePassword = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_password');
+ const form = element.querySelector('#kt_modal_update_password_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdatePassword = () => {
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'current_password': {
+ validators: {
+ notEmpty: {
+ message: 'Current password is required'
+ }
+ }
+ },
+ 'new_password': {
+ validators: {
+ notEmpty: {
+ message: 'The password is required'
+ },
+ callback: {
+ message: 'Please enter valid password',
+ callback: function (input) {
+ if (input.value.length > 0) {
+ return validatePassword();
+ }
+ }
+ }
+ }
+ },
+ 'confirm_password': {
+ validators: {
+ notEmpty: {
+ message: 'The password confirmation is required'
+ },
+ identical: {
+ compare: function () {
+ return form.querySelector('[name="new_password"]').value;
+ },
+ message: 'The password and its confirm are not the same'
+ }
+ }
+ },
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdatePassword();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdatePassword.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-role.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-role.js
new file mode 100644
index 0000000..a7e7589
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/update-role.js
@@ -0,0 +1,132 @@
+"use strict";
+
+// Class definition
+var KTUsersUpdateRole = function () {
+ // Shared variables
+ const element = document.getElementById('kt_modal_update_role');
+ const form = element.querySelector('#kt_modal_update_role_form');
+ const modal = new bootstrap.Modal(element);
+
+ // Init add schedule modal
+ var initUpdateRole = () => {
+
+ // Close button handler
+ const closeButton = element.querySelector('[data-kt-users-modal-action="close"]');
+ closeButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Cancel button handler
+ const cancelButton = element.querySelector('[data-kt-users-modal-action="cancel"]');
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+
+ // Submit button handler
+ const submitButton = element.querySelector('[data-kt-users-modal-action="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ initUpdateRole();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersUpdateRole.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/view.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/view.js
new file mode 100644
index 0000000..7a50ff2
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/apps/user-management/users/view/view.js
@@ -0,0 +1,234 @@
+"use strict";
+
+// Class definition
+var KTUsersViewMain = function () {
+
+ // Init login session button
+ var initLoginSession = () => {
+ const button = document.getElementById('kt_modal_sign_out_sesions');
+
+ button.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like sign out all sessions?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, sign out!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have signed out all sessions!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your sessions are still preserved!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+
+ // Init sign out single user
+ var initSignOutUser = () => {
+ const signOutButtons = document.querySelectorAll('[data-kt-users-sign-out="single_user"]');
+
+ signOutButtons.forEach(button => {
+ button.addEventListener('click', e => {
+ e.preventDefault();
+
+ const deviceName = button.closest('tr').querySelectorAll('td')[1].innerText;
+
+ Swal.fire({
+ text: "Are you sure you would like sign out " + deviceName + "?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, sign out!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have signed out " + deviceName + "!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ }).then(function(){
+ button.closest('tr').remove();
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: deviceName + "'s session is still preserved!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ });
+
+
+ }
+
+ // Delete two step authentication handler
+ const initDeleteTwoStep = () => {
+ const deleteButton = document.getElementById('kt_users_delete_two_step');
+
+ deleteButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like remove this two-step authentication?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, remove it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ Swal.fire({
+ text: "You have removed this two-step authentication!.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your two-step authentication is still valid!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ })
+ }
+
+ // Email preference form handler
+ const initEmailPreferenceForm = () => {
+ // Define variables
+ const form = document.getElementById('kt_users_email_notification_form');
+ const submitButton = form.querySelector('#kt_users_email_notification_submit');
+ const cancelButton = form.querySelector('#kt_users_email_notification_cancel');
+
+ // Submit action handler
+ submitButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ });
+
+ cancelButton.addEventListener('click', e => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+
+ return {
+ // Public functions
+ init: function () {
+ initLoginSession();
+ initSignOutUser();
+ initDeleteTwoStep();
+ initEmailPreferenceForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTUsersViewMain.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/reset-password/new-password.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/reset-password/new-password.js
new file mode 100644
index 0000000..d68ab4d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/reset-password/new-password.js
@@ -0,0 +1,154 @@
+"use strict";
+
+// Class Definition
+var KTAuthNewPassword = function() {
+ // Elements
+ var form;
+ var submitButton;
+ var validator;
+ var passwordMeter;
+
+ var handleForm = function(e) {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'password': {
+ validators: {
+ notEmpty: {
+ message: 'The password is required'
+ },
+ callback: {
+ message: 'Please enter valid password',
+ callback: function(input) {
+ if (input.value.length > 0) {
+ return validatePassword();
+ }
+ }
+ }
+ }
+ },
+ 'confirm-password': {
+ validators: {
+ notEmpty: {
+ message: 'The password confirmation is required'
+ },
+ identical: {
+ compare: function() {
+ return form.querySelector('[name="password"]').value;
+ },
+ message: 'The password and its confirm are not the same'
+ }
+ }
+ },
+ 'toc': {
+ validators: {
+ notEmpty: {
+ message: 'You must accept the terms and conditions'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger({
+ event: {
+ password: false
+ }
+ }),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '', // comment to enable invalid state icons
+ eleValidClass: '' // comment to enable valid state icons
+ })
+ }
+ }
+ );
+
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ validator.revalidateField('password');
+
+ validator.validate().then(function(status) {
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "You have successfully reset your password!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.querySelector('[name="password"]').value= "";
+ form.querySelector('[name="confirm-password"]').value= "";
+ passwordMeter.reset(); // reset password meter
+ //form.submit();
+
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 1500);
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+
+ form.querySelector('input[name="password"]').addEventListener('input', function() {
+ if (this.value.length > 0) {
+ validator.updateFieldStatus('password', 'NotValidated');
+ }
+ });
+ }
+
+ var validatePassword = function() {
+ return (passwordMeter.getScore() === 100);
+ }
+
+ // Public Functions
+ return {
+ // public functions
+ init: function() {
+ form = document.querySelector('#kt_new_password_form');
+ submitButton = document.querySelector('#kt_new_password_submit');
+ passwordMeter = KTPasswordMeter.getInstance(form.querySelector('[data-kt-password-meter="true"]'));
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAuthNewPassword.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/reset-password/reset-password.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/reset-password/reset-password.js
new file mode 100644
index 0000000..017c704
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/reset-password/reset-password.js
@@ -0,0 +1,111 @@
+"use strict";
+
+// Class Definition
+var KTAuthResetPassword = function() {
+ // Elements
+ var form;
+ var submitButton;
+ var validator;
+
+ var handleForm = function(e) {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'email': {
+ validators: {
+ regexp: {
+ regexp: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
+ message: 'The value is not a valid email address',
+ },
+ notEmpty: {
+ message: 'Email address is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '', // comment to enable invalid state icons
+ eleValidClass: '' // comment to enable valid state icons
+ })
+ }
+ }
+ );
+
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form
+ validator.validate().then(function (status) {
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "We have send a password reset link to your email.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.querySelector('[name="email"]').value= "";
+ //form.submit();
+
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 1500);
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public Functions
+ return {
+ // public functions
+ init: function() {
+ form = document.querySelector('#kt_password_reset_form');
+ submitButton = document.querySelector('#kt_password_reset_submit');
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAuthResetPassword.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/general.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/general.js
new file mode 100644
index 0000000..2452da8
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/general.js
@@ -0,0 +1,195 @@
+"use strict";
+
+// Class definition
+var KTSigninGeneral = function() {
+ // Elements
+ var form;
+ var submitButton;
+ var validator;
+
+ // Handle form
+ var handleValidation = function(e) {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'email': {
+ validators: {
+ regexp: {
+ regexp: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
+ message: 'The value is not a valid email address',
+ },
+ notEmpty: {
+ message: 'Email address is required'
+ }
+ }
+ },
+ 'password': {
+ validators: {
+ notEmpty: {
+ message: 'The password is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '', // comment to enable invalid state icons
+ eleValidClass: '' // comment to enable valid state icons
+ })
+ }
+ }
+ );
+ }
+
+ var handleSubmitDemo = function(e) {
+ // Handle form submit
+ submitButton.addEventListener('click', function (e) {
+ // Prevent button default action
+ e.preventDefault();
+
+ // Validate form
+ validator.validate().then(function (status) {
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "You have successfully logged in!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.querySelector('[name="email"]').value= "";
+ form.querySelector('[name="password"]').value= "";
+
+ //form.submit(); // submit form
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 2000);
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ var handleSubmitAjax = function(e) {
+ // Handle form submit
+ submitButton.addEventListener('click', function (e) {
+ // Prevent button default action
+ e.preventDefault();
+
+ // Validate form
+ validator.validate().then(function (status) {
+ if (status == 'Valid') {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Check axios library docs: https://axios-http.com/docs/intro
+ axios.post('/your/ajax/login/url', {
+ email: form.querySelector('[name="email"]').value,
+ password: form.querySelector('[name="password"]').value
+ }).then(function (response) {
+ if (response) {
+ form.querySelector('[name="email"]').value= "";
+ form.querySelector('[name="password"]').value= "";
+
+ const redirectUrl = form.getAttribute('data-kt-redirect-url');
+
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, the email or password is incorrect, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ }).catch(function (error) {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ });
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ // Public functions
+ return {
+ // Initialization
+ init: function() {
+ form = document.querySelector('#kt_sign_in_form');
+ submitButton = document.querySelector('#kt_sign_in_submit');
+
+ handleValidation();
+ handleSubmitDemo(); // used for demo purposes only, if you use the below ajax version you can uncomment this one
+ //handleSubmitAjax(); // use for ajax submit
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSigninGeneral.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/i18n.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/i18n.js
new file mode 100644
index 0000000..82e9b7a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/i18n.js
@@ -0,0 +1,433 @@
+"use strict";
+
+// Class definition
+var KTAuthI18nDemo = function() {
+ // Elements
+ var menu;
+
+ var menuObj;
+
+ var translationStrings = {
+ // General
+ "general-progress" : {
+ "English" : "Please wait...",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+ "general-desc" : {
+ "English" : "Get unlimited access & earn money",
+ "Spanish" : "Obtenga acceso ilimitado y gane dinero",
+ "German" : "Erhalten Sie unbegrenzten Zugriff und verdienen Sie Geld",
+ "Japanese" : "無制限のアクセスを取得してお金を稼ぐ",
+ "French" : "Obtenez un accès illimité et gagnez de l'argent",
+ },
+
+ "general-or" : {
+ "English" : "Or",
+ "Spanish" : "O",
+ "German" : "Oder",
+ "Japanese" : "または",
+ "French" : "Ou",
+ },
+
+ // Sign in
+ "sign-in-head-desc" : {
+ "English" : "Not a Member yet?",
+ "Spanish" : "¿No eres miembro todavía?",
+ "German" : "Noch kein Mitglied?",
+ "Japanese" : "まだメンバーではありませんか?",
+ "French" : "Pas encore membre?",
+ },
+
+ "sign-in-head-link" : {
+ "English" : "Sign Up",
+ "Spanish" : "Inscribirse",
+ "German" : "Anmeldung",
+ "Japanese" : "サインアップ",
+ "French" : "S'S'inscrire",
+ },
+
+ "sign-in-title" : {
+ "English" : "Sign In",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "sign-in-input-email" : {
+ "English" : "Email",
+ "Spanish" : "Correo electrónico",
+ "German" : "Email",
+ "Japanese" : "Eメール",
+ "French" : "E-mail",
+ },
+
+ "sign-in-input-password" : {
+ "English" : "Password",
+ "Spanish" : "Clave",
+ "German" : "Passwort",
+ "Japanese" : "パスワード",
+ "French" : "Mot de passe",
+ },
+
+ "sign-in-forgot-password" : {
+ "English" : "Forgot Password ?",
+ "Spanish" : "Has olvidado tu contraseña ?",
+ "German" : "Passwort vergessen ?",
+ "Japanese" : "パスワードをお忘れですか ?",
+ "French" : "Mot de passe oublié ?",
+ },
+
+ "sign-in-submit" : {
+ "English" : "Sign In",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ // Sing up
+ "sign-up-head-desc" : {
+ "English" : "Already a member ?",
+ "Spanish" : "Ya eres usuario ?",
+ "German" : "Schon ein Mitglied ?",
+ "Japanese" : "すでにメンバーですか?",
+ "French" : "Déjà membre ?",
+ },
+
+ "sign-up-head-link" : {
+ "English" : "Sign In",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "sign-up-title" : {
+ "English" : "Sign Up",
+ "Spanish" : "Inscribirse",
+ "German" : "Anmeldung",
+ "Japanese" : "サインアップ",
+ "French" : "S'S'inscrire",
+ },
+
+ "sign-up-input-first-name" : {
+ "English" : "First Name",
+ "Spanish" : "Primer nombre",
+ "German" : "Vorname",
+ "Japanese" : "ファーストネーム",
+ "French" : "Prénom",
+ },
+
+ "sign-up-input-last-name" : {
+ "English" : "Last Name",
+ "Spanish" : "Apellido",
+ "German" : "Nachname",
+ "Japanese" : "苗字",
+ "French" : "Nom de famille",
+ },
+
+ "sign-up-input-email" : {
+ "English" : "Email",
+ "Spanish" : "Correo electrónico",
+ "German" : "Email",
+ "Japanese" : "Eメール",
+ "French" : "E-mail",
+ },
+
+ "sign-up-input-password" : {
+ "English" : "Password",
+ "Spanish" : "Clave",
+ "German" : "Passwort",
+ "Japanese" : "パスワード",
+ "French" : "Mot de passe",
+ },
+
+ "sign-up-input-confirm-password" : {
+ "English" : "Password",
+ "Spanish" : "Clave",
+ "German" : "Passwort",
+ "Japanese" : "パスワード",
+ "French" : "Mot de passe",
+ },
+
+ "sign-up-submit" : {
+ "English" : "Submit",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "sign-up-hint" : {
+ "English" : "Use 8 or more characters with a mix of letters, numbers & symbols.",
+ "Spanish" : "Utilice 8 o más caracteres con una combinación de letras, números y símbolos.",
+ "German" : "Verwenden Sie 8 oder mehr Zeichen mit einer Mischung aus Buchstaben, Zahlen und Symbolen.",
+ "Japanese" : "文字、数字、記号を組み合わせた8文字以上を使用してください。",
+ "French" : "Utilisez 8 caractères ou plus avec un mélange de lettres, de chiffres et de symboles.",
+ },
+
+ // New password
+ "new-password-head-desc" : {
+ "English" : "Already a member ?",
+ "Spanish" : "Ya eres usuario ?",
+ "German" : "Schon ein Mitglied ?",
+ "Japanese" : "すでにメンバーですか?",
+ "French" : "Déjà membre ?",
+ },
+
+ "new-password-head-link" : {
+ "English" : "Sign In",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "new-password-title" : {
+ "English" : "Setup New Password",
+ "Spanish" : "Configurar nueva contraseña",
+ "German" : "Neues Passwort einrichten",
+ "Japanese" : "新しいパスワードを設定する",
+ "French" : "Configurer un nouveau mot de passe",
+ },
+
+ "new-password-desc" : {
+ "English" : "Have you already reset the password ?",
+ "Spanish" : "¿Ya has restablecido la contraseña?",
+ "German" : "Hast du das Passwort schon zurückgesetzt?",
+ "Japanese" : "すでにパスワードをリセットしましたか?",
+ "French" : "Avez-vous déjà réinitialisé le mot de passe ?",
+ },
+
+ "new-password-input-password" : {
+ "English" : "Password",
+ "Spanish" : "Clave",
+ "German" : "Passwort",
+ "Japanese" : "パスワード",
+ "French" : "Mot de passe",
+ },
+
+ "new-password-hint" : {
+ "English" : "Use 8 or more characters with a mix of letters, numbers & symbols.",
+ "Spanish" : "Utilice 8 o más caracteres con una combinación de letras, números y símbolos.",
+ "German" : "Verwenden Sie 8 oder mehr Zeichen mit einer Mischung aus Buchstaben, Zahlen und Symbolen.",
+ "Japanese" : "文字、数字、記号を組み合わせた8文字以上を使用してください。",
+ "French" : "Utilisez 8 caractères ou plus avec un mélange de lettres, de chiffres et de symboles.",
+ },
+
+ "new-password-confirm-password" : {
+ "English" : "Confirm Password",
+ "Spanish" : "Confirmar contraseña",
+ "German" : "Passwort bestätigen",
+ "Japanese" : "パスワードを認証する",
+ "French" : "Confirmez le mot de passe",
+ },
+
+ "new-password-submit" : {
+ "English" : "Submit",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ // Password reset
+ "password-reset-head-desc" : {
+ "English" : "Already a member ?",
+ "Spanish" : "Ya eres usuario ?",
+ "German" : "Schon ein Mitglied ?",
+ "Japanese" : "すでにメンバーですか?",
+ "French" : "Déjà membre ?",
+ },
+
+ "password-reset-head-link" : {
+ "English" : "Sign In",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "password-reset-title" : {
+ "English" : "Forgot Password ?",
+ "Spanish" : "Has olvidado tu contraseña ?",
+ "German" : "Passwort vergessen ?",
+ "Japanese" : "パスワードをお忘れですか ?",
+ "French" : "Mot de passe oublié ?",
+ },
+
+ "password-reset-desc" : {
+ "English" : "Enter your email to reset your password.",
+ "Spanish" : "Ingrese su correo electrónico para restablecer su contraseña.",
+ "German" : "Geben Sie Ihre E-Mail-Adresse ein, um Ihr Passwort zurückzusetzen.",
+ "Japanese" : "メールアドレスを入力してパスワードをリセットしてください。",
+ "French" : "Entrez votre e-mail pour réinitialiser votre mot de passe.",
+ },
+
+ "password-reset-input-email" : {
+ "English" : "Email",
+ "Spanish" : "Correo electrónico",
+ "German" : "Email",
+ "Japanese" : "Eメール",
+ "French" : "E-mail",
+ },
+
+ "password-reset-submit" : {
+ "English" : "Submit",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "password-reset-cancel" : {
+ "English" : "Cancel",
+ "Spanish" : "Cancelar",
+ "German" : "Absagen",
+ "Japanese" : "キャンセル",
+ "French" : "Annuler",
+ },
+
+ // Two steps
+ "two-step-head-desc" : {
+ "English" : "Didn’t get the code ?",
+ "Spanish" : "¿No recibiste el código?",
+ "German" : "Code nicht erhalten?",
+ "Japanese" : "コードを取得できませんでしたか?",
+ "French" : "Vous n'avez pas reçu le code ?",
+ },
+
+ "two-step-head-resend" : {
+ "English" : "Resend",
+ "Spanish" : "Reenviar",
+ "German" : "Erneut senden",
+ "Japanese" : "再送",
+ "French" : "Renvoyer",
+ },
+
+ "two-step-head-or" : {
+ "English" : "Or",
+ "Spanish" : "O",
+ "German" : "Oder",
+ "Japanese" : "または",
+ "French" : "Ou",
+ },
+
+ "two-step-head-call-us" : {
+ "English" : "Call Us",
+ "Spanish" : "Llámenos",
+ "German" : "Rufen Sie uns an",
+ "Japanese" : "お電話ください",
+ "French" : "Appelez-nous",
+ },
+
+ "two-step-submit" : {
+ "English" : "Submit",
+ "Spanish" : "Iniciar Sesión",
+ "German" : "Registrarse",
+ "Japanese" : "ログイン",
+ "French" : "S'identifier",
+ },
+
+ "two-step-title" : {
+ "English" : "Two Step Verification",
+ "Spanish" : "Verificación de dos pasos",
+ "German" : "Verifizierung in zwei Schritten",
+ "Japanese" : "2段階認証",
+ "French" : "Vérification en deux étapes",
+ },
+
+ "two-step-deck" : {
+ "English" : "Enter the verification code we sent to",
+ "Spanish" : "Ingresa el código de verificación que enviamos a",
+ "German" : "Geben Sie den von uns gesendeten Bestätigungscode ein",
+ "Japanese" : "送信した確認コードを入力してください",
+ "French" : "Entrez le code de vérification que nous avons envoyé à",
+ },
+
+ "two-step-label" : {
+ "English" : "Type your 6 digit security code",
+ "Spanish" : "Escriba su código de seguridad de 6 dígitos",
+ "German" : "Geben Sie Ihren 6-stelligen Sicherheitscode ein",
+ "Japanese" : "6桁のセキュリティコードを入力します",
+ "French" : "Tapez votre code de sécurité à 6 chiffres",
+ }
+ }
+
+ // Handle form
+ var translate = function(lang) {
+ for (var label in translationStrings) {
+ if (translationStrings.hasOwnProperty(label)) {
+ if (translationStrings[label][lang]) {
+ let labelElement = document.querySelector('[data-kt-translate=' + label + ']');
+
+ if (labelElement !== null) {
+ if (labelElement.tagName === "INPUT") {
+ labelElement.setAttribute("placeholder", translationStrings[label][lang]);
+ } else {
+ labelElement.innerHTML = translationStrings[label][lang];
+ }
+ }
+ }
+ }
+ }
+ }
+
+ var setLanguage = function(lang) {
+ const selectedLang = menu.querySelector('[data-kt-lang="' + lang + '"]');
+
+ if (selectedLang !== null) {
+ const currentLangName = document.querySelector('[data-kt-element="current-lang-name"]');
+ const currentLangFlag = document.querySelector('[data-kt-element="current-lang-flag"]');
+
+ const selectedLangName = selectedLang.querySelector('[data-kt-element="lang-name"]');
+ const selectedLangFlag = selectedLang.querySelector('[data-kt-element="lang-flag"]');
+
+ currentLangName.innerText = selectedLangName.innerText;
+ currentLangFlag.setAttribute("src", selectedLangFlag.getAttribute("src"));
+
+ localStorage.setItem("kt_auth_lang", lang);
+ }
+ }
+
+ var init = function() {
+ if ( localStorage.getItem("kt_auth_lang") !== null ) {
+ let lang = localStorage.getItem("kt_auth_lang");
+
+ setLanguage(lang);
+ translate(lang);
+ }
+
+ menuObj.on("kt.menu.link.click", function(element) {
+ let lang = element.getAttribute("data-kt-lang");
+
+ setLanguage(lang);
+ translate(lang);
+ });
+ }
+
+ // Public functions
+ return {
+ // Initialization
+ init: function() {
+ menu = document.querySelector('#kt_auth_lang_menu');
+
+ if (menu === null) {
+ return;
+ }
+
+ menuObj = KTMenu.getInstance(menu);
+
+ init();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAuthI18nDemo.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/two-steps.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/two-steps.js
new file mode 100644
index 0000000..f507bd5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-in/two-steps.js
@@ -0,0 +1,140 @@
+"use strict";
+
+// Class Definition
+var KTSigninTwoSteps = function() {
+ // Elements
+ var form;
+ var submitButton;
+
+ // Handle form
+ var handleForm = function(e) {
+ // Handle form submit
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ var validated = true;
+
+ var inputs = [].slice.call(form.querySelectorAll('input[maxlength="1"]'));
+ inputs.map(function (input) {
+ if (input.value === '' || input.value.length === 0) {
+ validated = false;
+ }
+ });
+
+ if (validated === true) {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "You have been successfully verified!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ inputs.map(function (input) {
+ input.value = '';
+ });
+
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 1000);
+ } else {
+ swal.fire({
+ text: "Please enter valid securtiy code and try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn fw-bold btn-light-primary"
+ }
+ }).then(function() {
+ KTUtil.scrollTop();
+ });
+ }
+ });
+ }
+
+ var handleType = function() {
+ var input1 = form.querySelector("[name=code_1]");
+ var input2 = form.querySelector("[name=code_2]");
+ var input3 = form.querySelector("[name=code_3]");
+ var input4 = form.querySelector("[name=code_4]");
+ var input5 = form.querySelector("[name=code_5]");
+ var input6 = form.querySelector("[name=code_6]");
+
+ input1.focus();
+
+ input1.addEventListener("keyup", function() {
+ if (this.value.length === 1) {
+ input2.focus();
+ }
+ });
+
+ input2.addEventListener("keyup", function() {
+ if (this.value.length === 1) {
+ input3.focus();
+ }
+ });
+
+ input3.addEventListener("keyup", function() {
+ if (this.value.length === 1) {
+ input4.focus();
+ }
+ });
+
+ input4.addEventListener("keyup", function() {
+ if (this.value.length === 1) {
+ input5.focus();
+ }
+ });
+
+ input5.addEventListener("keyup", function() {
+ if (this.value.length === 1) {
+ input6.focus();
+ }
+ });
+
+ input6.addEventListener("keyup", function() {
+ if (this.value.length === 1) {
+ input6.blur();
+ }
+ });
+ }
+
+ // Public functions
+ return {
+ // Initialization
+ init: function() {
+ form = document.querySelector('#kt_sing_in_two_steps_form');
+ submitButton = document.querySelector('#kt_sing_in_two_steps_submit');
+
+ handleForm();
+ handleType();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSigninTwoSteps.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/coming-soon.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/coming-soon.js
new file mode 100644
index 0000000..31be2fc
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/coming-soon.js
@@ -0,0 +1,164 @@
+"use strict";
+
+// Class Definition
+var KTSignupComingSoon = function() {
+ // Elements
+ var form;
+ var submitButton;
+ var validator;
+
+ var counterDays;
+ var counterHours;
+ var counterMinutes;
+ var counterSeconds;
+
+ var handleForm = function(e) {
+ var validation;
+
+ if( !form ) {
+ return;
+ }
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'email': {
+ validators: {
+ regexp: {
+ regexp: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
+ message: 'The value is not a valid email address',
+ },
+ notEmpty: {
+ message: 'Email address is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form
+ validator.validate().then(function (status) {
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "We have received your request. You will be notified once we go live.",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.querySelector('[name="email"]').value= "";
+ //form.submit();
+
+ //form.submit(); // submit form
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 2000);
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+ }
+
+ var initCounter = function() {
+ // Set the date we're counting down to
+ var currentTime = new Date();
+ var countDownDate = new Date(currentTime.getTime() + 1000 * 60 * 60 * 24 * 15 + 1000 * 60 * 60 * 10 + 1000 * 60 * 15).getTime();
+
+ var count = function() {
+ // Get todays date and time
+ var now = new Date().getTime();
+
+ // Find the distance between now an the count down date
+ var distance = countDownDate - now;
+
+ // Time calculations for days, hours, minutes and seconds
+ var days = Math.floor(distance / (1000 * 60 * 60 * 24));
+ var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
+ var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
+ var seconds = Math.floor((distance % (1000 * 60)) / 1000);
+
+ // Display the result
+ if(counterDays) counterDays.innerHTML = days;
+ if(counterHours) counterHours.innerHTML = hours;
+ if(counterMinutes) counterMinutes.innerHTML = minutes;
+ if(counterSeconds) counterSeconds.innerHTML = seconds;
+ };
+
+ // Update the count down every 1 second
+ var x = setInterval(count, 1000);
+
+ // Initial count
+ count();
+ }
+
+ // Public Functions
+ return {
+ // public functions
+ init: function() {
+ form = document.querySelector('#kt_coming_soon_form');
+ submitButton = document.querySelector('#kt_coming_soon_submit');
+
+ handleForm();
+
+ counterDays = document.querySelector('#kt_coming_soon_counter_days');
+ if (counterDays) {
+ counterHours = document.querySelector('#kt_coming_soon_counter_hours');
+ counterMinutes = document.querySelector('#kt_coming_soon_counter_minutes');
+ counterSeconds = document.querySelector('#kt_coming_soon_counter_seconds');
+
+ initCounter();
+ }
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSignupComingSoon.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/free-trial.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/free-trial.js
new file mode 100644
index 0000000..133485e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/free-trial.js
@@ -0,0 +1,169 @@
+"use strict";
+
+// Class Definition
+var KTSignupFreeTrial = function() {
+ // Elements
+ var form;
+ var submitButton;
+ var validator;
+ var passwordMeter;
+
+ // Handle form
+ var handleForm = function(e) {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'email': {
+ validators: {
+ regexp: {
+ regexp: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
+ message: 'The value is not a valid email address',
+ },
+ notEmpty: {
+ message: 'Email address is required'
+ }
+ }
+ },
+ 'password': {
+ validators: {
+ notEmpty: {
+ message: 'The password is required'
+ },
+ callback: {
+ message: 'Please enter valid password',
+ callback: function(input) {
+ if (input.value.length > 0) {
+ return validatePassword();
+ }
+ }
+ }
+ }
+ },
+ 'confirm-password': {
+ validators: {
+ notEmpty: {
+ message: 'The password confirmation is required'
+ },
+ identical: {
+ compare: function() {
+ return form.querySelector('[name="password"]').value;
+ },
+ message: 'The password and its confirm are not the same'
+ }
+ }
+ },
+ 'toc': {
+ validators: {
+ notEmpty: {
+ message: 'You must accept the terms and conditions'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger({
+ event: {
+ password: false
+ }
+ }),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ validator.revalidateField('password');
+
+ validator.validate().then(function(status) {
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "You have successfully registered!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.reset(); // reset form
+ passwordMeter.reset(); // reset password meter
+
+ //form.submit(); // submit form
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 1500);
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+
+ form.querySelector('input[name="password"]').addEventListener('input', function() {
+ if (this.value.length > 0) {
+ validator.updateFieldStatus('password', 'NotValidated');
+ }
+ });
+ }
+
+ // Password input validation
+ var validatePassword = function() {
+ return (passwordMeter.getScore() === 100);
+ }
+
+ // Public functions
+ return {
+ // Initialization
+ init: function() {
+ form = document.querySelector('#kt_free_trial_form');
+ submitButton = document.querySelector('#kt_free_trial_submit');
+ passwordMeter = KTPasswordMeter.getInstance(form.querySelector('[data-kt-password-meter="true"]'));
+
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSignupFreeTrial.init();
+});
+
+
+
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/general.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/general.js
new file mode 100644
index 0000000..e40e412
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/authentication/sign-up/general.js
@@ -0,0 +1,184 @@
+"use strict";
+
+// Class definition
+var KTSignupGeneral = function() {
+ // Elements
+ var form;
+ var submitButton;
+ var validator;
+ var passwordMeter;
+
+ // Handle form
+ var handleForm = function(e) {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'first-name': {
+ validators: {
+ notEmpty: {
+ message: 'First Name is required'
+ }
+ }
+ },
+ 'last-name': {
+ validators: {
+ notEmpty: {
+ message: 'Last Name is required'
+ }
+ }
+ },
+ 'email': {
+ validators: {
+ regexp: {
+ regexp: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
+ message: 'The value is not a valid email address',
+ },
+ notEmpty: {
+ message: 'Email address is required'
+ }
+ }
+ },
+ 'password': {
+ validators: {
+ notEmpty: {
+ message: 'The password is required'
+ },
+ callback: {
+ message: 'Please enter valid password',
+ callback: function(input) {
+ if (input.value.length > 0) {
+ return validatePassword();
+ }
+ }
+ }
+ }
+ },
+ 'confirm-password': {
+ validators: {
+ notEmpty: {
+ message: 'The password confirmation is required'
+ },
+ identical: {
+ compare: function() {
+ return form.querySelector('[name="password"]').value;
+ },
+ message: 'The password and its confirm are not the same'
+ }
+ }
+ },
+ 'toc': {
+ validators: {
+ notEmpty: {
+ message: 'You must accept the terms and conditions'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger({
+ event: {
+ password: false
+ }
+ }),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '', // comment to enable invalid state icons
+ eleValidClass: '' // comment to enable valid state icons
+ })
+ }
+ }
+ );
+
+ // Handle form submit
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ validator.revalidateField('password');
+
+ validator.validate().then(function(status) {
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax request
+ setTimeout(function() {
+ // Hide loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "You have successfully reset your password!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ form.reset(); // reset form
+ passwordMeter.reset(); // reset password meter
+ //form.submit();
+
+ //form.submit(); // submit form
+ var redirectUrl = form.getAttribute('data-kt-redirect-url');
+ if (redirectUrl) {
+ location.href = redirectUrl;
+ }
+ }
+ });
+ }, 1500);
+ } else {
+ // Show error popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ });
+
+ // Handle password input
+ form.querySelector('input[name="password"]').addEventListener('input', function() {
+ if (this.value.length > 0) {
+ validator.updateFieldStatus('password', 'NotValidated');
+ }
+ });
+ }
+
+ // Password input validation
+ var validatePassword = function() {
+ return (passwordMeter.getScore() === 100);
+ }
+
+ // Public functions
+ return {
+ // Initialization
+ init: function() {
+ // Elements
+ form = document.querySelector('#kt_sign_up_form');
+ submitButton = document.querySelector('#kt_sign_up_submit');
+ passwordMeter = KTPasswordMeter.getInstance(form.querySelector('[data-kt-password-meter="true"]'));
+
+ handleForm ();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSignupGeneral.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/landing.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/landing.js
new file mode 100644
index 0000000..efd63bd
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/landing.js
@@ -0,0 +1,29 @@
+"use strict";
+
+// Class definition
+var KTLandingPage = function () {
+ // Private methods
+ var initTyped = function() {
+ var typed = new Typed("#kt_landing_hero_text", {
+ strings: ["The Best Theme Ever", "The Most Trusted Theme", "#1 Selling Theme"],
+ typeSpeed: 50
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ //initTyped();
+ }
+ }
+}();
+
+// Webpack support
+if (typeof module !== 'undefined') {
+ module.exports = KTLandingPage;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTLandingPage.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/careers/apply.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/careers/apply.js
new file mode 100644
index 0000000..9210dcf
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/careers/apply.js
@@ -0,0 +1,179 @@
+"use strict";
+
+// Class definition
+var KTCareersApply = function () {
+ var submitButton;
+ var validator;
+ var form;
+
+ // Init form inputs
+ var initForm = function() {
+ // Team assign. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="position"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('position');
+ });
+
+ // Start date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var startDate = $(form.querySelector('[name="start_date"]'));
+ startDate.flatpickr({
+ enableTime: false,
+ dateFormat: "d, M Y",
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'first_name': {
+ validators: {
+ notEmpty: {
+ message: 'First name is required'
+ }
+ }
+ },
+ 'last_name': {
+ validators: {
+ notEmpty: {
+ message: 'Last name is required'
+ }
+ }
+ },
+ 'age': {
+ validators: {
+ notEmpty: {
+ message: 'Age is required'
+ }
+ }
+ },
+ 'city': {
+ validators: {
+ notEmpty: {
+ message: 'City is required'
+ }
+ }
+ },
+ 'email': {
+ validators: {
+ notEmpty: {
+ message: 'Email address is required'
+ },
+ emailAddress: {
+ message: 'The value is not a valid email address'
+ }
+ }
+ },
+ 'salary': {
+ validators: {
+ notEmpty: {
+ message: 'Expected salary is required'
+ }
+ }
+ },
+ 'position': {
+ validators: {
+ notEmpty: {
+ message: 'Position is required'
+ }
+ }
+ },
+ 'start_date': {
+ validators: {
+ notEmpty: {
+ message: 'Start date is required'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ //form.submit();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Scroll top
+
+ // Show error popuo. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ KTUtil.scrollTop();
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ form = document.querySelector('#kt_careers_form');
+ submitButton = document.getElementById('kt_careers_submit_button');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCareersApply.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/general/contact.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/general/contact.js
new file mode 100644
index 0000000..f236afc
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/general/contact.js
@@ -0,0 +1,206 @@
+"use strict";
+
+// Class definition
+var KTContactApply = function () {
+ var submitButton;
+ var validator;
+ var form;
+ var selectedlocation;
+
+ // Private functions
+ var initMap = function(elementId) {
+ // Check if Leaflet is included
+ if (!L) {
+ return;
+ }
+
+ // Define Map Location
+ var leaflet = L.map(elementId, {
+ center: [40.725, -73.985],
+ zoom: 30
+ });
+
+ // Init Leaflet Map. For more info check the plugin's documentation: https://leafletjs.com/
+ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
+ attribution: '© OpenStreetMap contributors'
+ }).addTo(leaflet);
+
+ // Set Geocoding
+ var geocodeService;
+ if (typeof L.esri.Geocoding === 'undefined') {
+ geocodeService = L.esri.geocodeService();
+ } else {
+ geocodeService = L.esri.Geocoding.geocodeService();
+ }
+
+ // Define Marker Layer
+ var markerLayer = L.layerGroup().addTo(leaflet);
+
+ // Set Custom SVG icon marker
+ var leafletIcon = L.divIcon({
+ html: ``,
+ bgPos: [10, 10],
+ iconAnchor: [20, 37],
+ popupAnchor: [0, -37],
+ className: 'leaflet-marker'
+ });
+
+ // Show current address
+ L.marker([40.724716, -73.984789], { icon: leafletIcon }).addTo(markerLayer).bindPopup('430 E 6th St, New York, 10009.', { closeButton: false }).openPopup();
+
+ // Map onClick Action
+ leaflet.on('click', function (e) {
+ geocodeService.reverse().latlng(e.latlng).run(function (error, result) {
+ if (error) {
+ return;
+ }
+ markerLayer.clearLayers();
+ selectedlocation = result.address.Match_addr;
+ L.marker(result.latlng, { icon: leafletIcon }).addTo(markerLayer).bindPopup(result.address.Match_addr, { closeButton: false }).openPopup();
+
+ // Show popup confirmation. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ html: 'Your selected - "' + selectedlocation + ' - ' + result.latlng + '".',
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ // Confirmed
+ });
+ });
+ });
+ }
+
+ // Init form inputs
+ var initForm = function() {
+ // Team assign. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="position"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('position');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'Name is required'
+ }
+ }
+ },
+ 'email': {
+ validators: {
+ notEmpty: {
+ message: 'Email address is required'
+ },
+ emailAddress: {
+ message: 'The value is not a valid email address'
+ }
+ }
+ },
+ 'message': {
+ validators: {
+ notEmpty: {
+ message: 'Message is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ //form.submit();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Scroll top
+
+ // Show error popuo. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ KTUtil.scrollTop();
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ form = document.querySelector('#kt_contact_form');
+ submitButton = document.getElementById('kt_contact_submit_button');
+
+ initForm();
+ handleForm();
+ initMap('kt_contact_map');
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTContactApply.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/general/pos.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/general/pos.js
new file mode 100644
index 0000000..181b77a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/general/pos.js
@@ -0,0 +1,66 @@
+"use strict";
+
+// Class definition
+var KTPosSystem = function () {
+ var form;
+
+ var moneyFormat = wNumb({
+ mark: '.',
+ thousand: ',',
+ decimals: 2,
+ prefix: '$',
+ });
+
+ var calculateTotals = function() {
+ var items = [].slice.call(form.querySelectorAll('[data-kt-pos-element="item-total"]'));
+ var total = 0;
+ var tax = 12;
+ var discount = 8;
+ var grantTotal = 0;
+
+ items.map(function (item) {
+ total += moneyFormat.from(item.innerHTML);
+ });
+
+ grantTotal = total;
+ grantTotal -= discount;
+ grantTotal += tax * 8 / 100;
+
+ form.querySelector('[data-kt-pos-element="total"]').innerHTML = moneyFormat.to(total);
+ form.querySelector('[data-kt-pos-element="grant-total"]').innerHTML = moneyFormat.to(grantTotal);
+ }
+
+ var handleQuantity = function() {
+ var dialers = [].slice.call(form.querySelectorAll('[data-kt-pos-element="item"] [data-kt-dialer="true"]'));
+
+ dialers.map(function (dialer) {
+ var dialerObject = KTDialer.getInstance(dialer);
+
+ dialerObject.on('kt.dialer.changed', function(){
+ var quantity = parseInt(dialerObject.getValue());
+ var item = dialerObject.getElement().closest('[data-kt-pos-element="item"]');
+ var value = parseInt(item.getAttribute("data-kt-pos-item-price"));
+ var total = quantity * value;
+
+ item.querySelector('[data-kt-pos-element="item-total"]').innerHTML = moneyFormat.to(total);
+
+ calculateTotals();
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ form = document.querySelector('#kt_pos_form');
+
+ handleQuantity();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTPosSystem.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/pricing/general.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/pricing/general.js
new file mode 100644
index 0000000..0eb564c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/pricing/general.js
@@ -0,0 +1,63 @@
+"use strict";
+
+// Class definition
+var KTPricingGeneral = function () {
+ // Private variables
+ var element;
+ var planPeriodMonthButton;
+ var planPeriodAnnualButton;
+
+ var changePlanPrices = function(type) {
+ var items = [].slice.call(element.querySelectorAll('[data-kt-plan-price-month]'));
+
+ items.map(function (item) {
+ var monthPrice = item.getAttribute('data-kt-plan-price-month');
+ var annualPrice = item.getAttribute('data-kt-plan-price-annual');
+
+ if ( type === 'month' ) {
+ item.innerHTML = monthPrice;
+ } else if ( type === 'annual' ) {
+ item.innerHTML = annualPrice;
+ }
+ });
+ }
+
+ var handlePlanPeriodSelection = function(e) {
+
+ // Handle period change
+ planPeriodMonthButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ planPeriodMonthButton.classList.add('active');
+ planPeriodAnnualButton.classList.remove('active');
+
+ changePlanPrices('month');
+ });
+
+ planPeriodAnnualButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ planPeriodMonthButton.classList.remove('active');
+ planPeriodAnnualButton.classList.add('active');
+
+ changePlanPrices('annual');
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ element = document.querySelector('#kt_pricing');
+ planPeriodMonthButton = element.querySelector('[data-kt-plan="month"]');
+ planPeriodAnnualButton = element.querySelector('[data-kt-plan="annual"]');
+
+ // Handlers
+ handlePlanPeriodSelection();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTPricingGeneral.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/social/feeds.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/social/feeds.js
new file mode 100644
index 0000000..9788415
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/social/feeds.js
@@ -0,0 +1,95 @@
+"use strict";
+
+// Class definition
+var KTSocialFeeds = function () {
+ // init variables
+ var morePostsBtn = document.getElementById('kt_social_feeds_more_posts_btn');
+ var morePosts = document.getElementById('kt_social_feeds_more_posts');
+ var posts = document.getElementById('kt_social_feeds_posts');
+
+ var postInput = document.getElementById('kt_social_feeds_post_input');
+ var postBtn = document.getElementById('kt_social_feeds_post_btn');
+ var newPost = document.getElementById('kt_social_feeds_new_post');
+
+ // Private functions
+ var handleMorePosts = function () {
+ // Show more click
+ morePostsBtn.addEventListener('click', function (e) {
+ // Cancel default behavior
+ e.preventDefault();
+
+ // Show indicator
+ morePostsBtn.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ morePostsBtn.disabled = true;
+
+ // Simulate form submission process
+ setTimeout(function() {
+ // Hide loading indication
+ morePostsBtn.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ morePostsBtn.disabled = false;
+
+ // Hide button
+ morePostsBtn.classList.add('d-none');
+
+ // Show card
+ morePosts.classList.remove('d-none');
+
+ // Scroll to
+ KTUtil.scrollTo(morePosts, 200);
+ }, 1000);
+ });
+ }
+
+ // Private functions
+ var handleNewPost = function () {
+ // Show more click
+ postBtn.addEventListener('click', function (e) {
+ // Cancel default behavior
+ e.preventDefault();
+
+ // Show indicator
+ postBtn.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ postBtn.disabled = true;
+
+ // Simulate form submission process
+ setTimeout(function() {
+ // Hide loading indication
+ postBtn.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ postBtn.disabled = false;
+
+ var message = postInput.value;
+ var post = newPost.querySelector('.card').cloneNode(true);
+
+ posts.prepend(post);
+
+ if (message.length > 0) {
+ post.querySelector('[data-kt-post-element="content"]').innerHTML = message;
+ }
+
+ // Scroll to post
+ KTUtil.scrollTo(post, 200);
+ }, 1000);
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ handleMorePosts();
+ handleNewPost();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTSocialFeeds.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/user-profile/general.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/user-profile/general.js
new file mode 100644
index 0000000..002d51f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/pages/user-profile/general.js
@@ -0,0 +1,153 @@
+"use strict";
+
+// Class definition
+var KTProfileGeneral = function () {
+ // init variables
+ var showMoreButton;
+ var showMoreCards;
+ var followBtn;
+ var profileNav;
+ var pageToolbar;
+
+ // Private functions
+ var handleShowMore = function () {
+ if (!showMoreButton) {
+ return;
+ }
+
+ // Show more click
+ showMoreButton.addEventListener('click', function (e) {
+ showMoreButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ showMoreButton.disabled = true;
+
+ setTimeout(function() {
+ // Hide loading indication
+ showMoreButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ showMoreButton.disabled = false;
+
+ // Hide button
+ showMoreButton.classList.add('d-none');
+
+ // Show card
+ showMoreCards.classList.remove('d-none');
+
+ // Scroll to card
+ KTUtil.scrollTo(showMoreCards, 200);
+ }, 2000);
+ });
+ }
+
+ // Follow button
+ var handleUFollow = function() {
+ if (!followBtn) {
+ return;
+ }
+
+ followBtn.addEventListener('click', function(e){
+ // Prevent default action
+ e.preventDefault();
+
+ // Show indicator
+ followBtn.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ followBtn.disabled = true;
+
+ // Check button state
+ if (followBtn.classList.contains("btn-success")) {
+ setTimeout(function() {
+ followBtn.removeAttribute('data-kt-indicator');
+ followBtn.classList.remove("btn-success");
+ followBtn.classList.add("btn-light");
+ followBtn.querySelector(".svg-icon").classList.add("d-none");
+ followBtn.querySelector(".indicator-label").innerHTML = 'Follow';
+ followBtn.disabled = false;
+ }, 1500);
+ } else {
+ setTimeout(function() {
+ followBtn.removeAttribute('data-kt-indicator');
+ followBtn.classList.add("btn-success");
+ followBtn.classList.remove("btn-light");
+ followBtn.querySelector(".svg-icon").classList.remove("d-none");
+ followBtn.querySelector(".indicator-label").innerHTML = 'Following';
+ followBtn.disabled = false;
+ }, 1000);
+ }
+ });
+ }
+
+ var handleFollowers = function() {
+ KTUtil.on(document.body, '[data-kt-follow-btn="true"]', 'click', function(e) {
+ e.preventDefault();
+
+ var el = this;
+ var label = el.querySelector(".indicator-label");
+ var following = el.querySelector(".following");
+ var follow = el.querySelector(".follow");
+
+ el.setAttribute('data-kt-indicator', 'on');
+ el.disabled = true;
+ follow.classList.add("d-none");
+ following.classList.add("d-none")
+
+ setTimeout(function() {
+ el.removeAttribute('data-kt-indicator');
+ el.disabled = false;
+
+ if (el.classList.contains("btn-light-primary")) { // following
+ el.classList.remove("btn-light-primary");
+ el.classList.add("btn-light");
+
+ follow.classList.remove("d-none");
+
+ label.innerHTML = "Follow";
+ } else { // follow
+ el.classList.add("btn-light-primary");
+ el.classList.remove("btn-light");
+
+ following.classList.remove("d-none");
+
+ label.innerHTML = "Following";
+ }
+ }, 2000);
+ });
+ }
+
+ var handlePageScroll = function() {
+ if ( profileNav && profileNav.getAttribute("data-kt-sticky") && KTUtil.isBreakpointUp('lg')) {
+
+ if ( localStorage.getItem('nav-initialized') === "1") {
+ window.scroll({
+ top: parseInt(profileNav.getAttribute("data-kt-page-scroll-position")),
+ behavior: 'smooth'
+ });
+ }
+
+ localStorage.setItem('nav-initialized', "1");
+ }
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ showMoreButton = document.querySelector('#kt_followers_show_more_button');
+ showMoreCards = document.querySelector('#kt_followers_show_more_cards');
+ followBtn = document.querySelector('#kt_user_follow_button');
+ profileNav = document.querySelector('#kt_user_profile_nav');
+
+ handleShowMore();
+ handleUFollow();
+ handleFollowers();
+ handlePageScroll();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTProfileGeneral.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/bidding.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/bidding.js
new file mode 100644
index 0000000..25bf3ec
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/bidding.js
@@ -0,0 +1,264 @@
+"use strict";
+
+// Class definition
+var KTModalBidding = function () {
+ // Shared variables
+ var element;
+ var form;
+ var modal;
+
+ // Private functions
+ const initForm = () => {
+ // Dynamically create validation non-empty rule
+ const requiredFields = form.querySelectorAll('.required');
+ var detectedField;
+ var validationFields = {
+ fields: {},
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+
+ // Detect required fields
+ requiredFields.forEach(el => {
+ const input = el.closest('.fv-row').querySelector('input');
+ if (input) {
+ detectedField = input;
+ }
+
+ const textarea = el.closest('.fv-row').querySelector('textarea');
+ if (textarea) {
+ detectedField = textarea;
+ }
+
+ const select = el.closest('.fv-row').querySelector('select');
+ if (select) {
+ detectedField = select;
+ }
+
+ // Add validation rule
+ const name = detectedField.getAttribute('name');
+ validationFields.fields[name] = {
+ validators: {
+ notEmpty: {
+ message: el.innerText + ' is required'
+ }
+ }
+ }
+ });
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ var validator = FormValidation.formValidation(
+ form,
+ validationFields
+ );
+
+ // Submit button handler
+ const submitButton = form.querySelector('[data-kt-modal-action-type="submit"]');
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function () {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function () {
+ //form.submit(); // Submit form
+ form.reset();
+ modal.hide();
+ });
+ }, 2000);
+ } else {
+ // Show popup error
+ Swal.fire({
+ text: "Oops! There are some error(s) detected.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ // Init Select2 template options
+ const initSelect2Templates = () => {
+ const elements = form.querySelectorAll('[data-kt-modal-bidding-type] select');
+
+ if (!elements) {
+ return;
+ }
+
+ // Format options
+ const format = (item) => {
+ if (!item.id) {
+ return item.text;
+ }
+
+ var url = 'assets/media/' + item.element.getAttribute('data-kt-bidding-modal-option-icon');
+ var img = $("
", {
+ class: "rounded-circle me-2",
+ width: 26,
+ src: url
+ });
+ var span = $("", {
+ text: " " + item.text
+ });
+ span.prepend(img);
+ return span;
+ }
+
+ elements.forEach(el => {
+ // Init Select2 --- more info: https://select2.org/
+ $(el).select2({
+ minimumResultsForSearch: Infinity,
+ templateResult: function (item) {
+ return format(item);
+ }
+ });
+ });
+ }
+
+ // Handle bid options
+ const handleBidOptions = () => {
+ const options = form.querySelectorAll('[data-kt-modal-bidding="option"]');
+ const inputEl = form.querySelector('[name="bid_amount"]');
+ options.forEach(option => {
+ option.addEventListener('click', e => {
+ e.preventDefault();
+
+ inputEl.value = e.target.innerText;
+ });
+ });
+ }
+
+ // Handle currency selector
+ const handleCurrencySelector = () => {
+ const element = form.querySelector('.form-select[name="currency_type"]');
+
+ // Select2 event listener
+ $(element).on('select2:select', function (e) {
+ const value = e.params.data;
+ swapCurrency(value);
+ });
+
+ const swapCurrency = (target) => {
+ console.log(target);
+ const currencies = form.querySelectorAll('[data-kt-modal-bidding-type]');
+ currencies.forEach(currency => {
+ currency.classList.add('d-none');
+
+ if (currency.getAttribute('data-kt-modal-bidding-type') === target.id) {
+ currency.classList.remove('d-none');
+ }
+ });
+ }
+ }
+
+ // Handle cancel modal
+ const handleCancelAction = () => {
+ const cancelButton = element.querySelector('[data-kt-modal-action-type="cancel"]');
+ const closeButton = element.querySelector('[data-kt-modal-action-type="close"]');
+ cancelButton.addEventListener('click', e => {
+ cancelAction(e);
+ });
+
+ closeButton.addEventListener('click', e => {
+ cancelAction(e);
+ });
+
+ const cancelAction = (e) => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ }
+ }
+
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_modal_bidding');
+ form = document.getElementById('kt_modal_bidding_form');
+ modal = new bootstrap.Modal(element);
+
+ if (!form) {
+ return;
+ }
+
+ initForm();
+ initSelect2Templates();
+ handleBidOptions();
+ handleCurrencySelector();
+ handleCancelAction();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalBidding.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-account.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-account.js
new file mode 100644
index 0000000..9f5059f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-account.js
@@ -0,0 +1,357 @@
+"use strict";
+
+// Class definition
+var KTCreateAccount = function () {
+ // Elements
+ var modal;
+ var modalEl;
+
+ var stepper;
+ var form;
+ var formSubmitButton;
+ var formContinueButton;
+
+ // Variables
+ var stepperObj;
+ var validations = [];
+
+ // Private Functions
+ var initStepper = function () {
+ // Initialize Stepper
+ stepperObj = new KTStepper(stepper);
+
+ // Stepper change event
+ stepperObj.on('kt.stepper.changed', function (stepper) {
+ if (stepperObj.getCurrentStepIndex() === 4) {
+ formSubmitButton.classList.remove('d-none');
+ formSubmitButton.classList.add('d-inline-block');
+ formContinueButton.classList.add('d-none');
+ } else if (stepperObj.getCurrentStepIndex() === 5) {
+ formSubmitButton.classList.add('d-none');
+ formContinueButton.classList.add('d-none');
+ } else {
+ formSubmitButton.classList.remove('d-inline-block');
+ formSubmitButton.classList.remove('d-none');
+ formContinueButton.classList.remove('d-none');
+ }
+ });
+
+ // Validation before going to next page
+ stepperObj.on('kt.stepper.next', function (stepper) {
+ console.log('stepper.next');
+
+ // Validate form before change stepper step
+ var validator = validations[stepper.getCurrentStepIndex() - 1]; // get validator for currnt step
+
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ stepper.goNext();
+
+ KTUtil.scrollTop();
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light"
+ }
+ }).then(function () {
+ KTUtil.scrollTop();
+ });
+ }
+ });
+ } else {
+ stepper.goNext();
+
+ KTUtil.scrollTop();
+ }
+ });
+
+ // Prev event
+ stepperObj.on('kt.stepper.previous', function (stepper) {
+ console.log('stepper.previous');
+
+ stepper.goPrevious();
+ KTUtil.scrollTop();
+ });
+ }
+
+ var handleForm = function() {
+ formSubmitButton.addEventListener('click', function (e) {
+ // Validate form before change stepper step
+ var validator = validations[3]; // get validator for last form
+
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ formSubmitButton.disabled = true;
+
+ // Show loading indication
+ formSubmitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Hide loading indication
+ formSubmitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ formSubmitButton.disabled = false;
+
+ stepperObj.goNext();
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light"
+ }
+ }).then(function () {
+ KTUtil.scrollTop();
+ });
+ }
+ });
+ });
+
+ // Expiry month. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="card_expiry_month"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validations[3].revalidateField('card_expiry_month');
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="card_expiry_year"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validations[3].revalidateField('card_expiry_year');
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="business_type"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validations[2].revalidateField('business_type');
+ });
+ }
+
+ var initValidation = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ // Step 1
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ account_type: {
+ validators: {
+ notEmpty: {
+ message: 'Account type is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 2
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'account_team_size': {
+ validators: {
+ notEmpty: {
+ message: 'Time size is required'
+ }
+ }
+ },
+ 'account_name': {
+ validators: {
+ notEmpty: {
+ message: 'Account name is required'
+ }
+ }
+ },
+ 'account_plan': {
+ validators: {
+ notEmpty: {
+ message: 'Account plan is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ // Bootstrap Framework Integration
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 3
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'business_name': {
+ validators: {
+ notEmpty: {
+ message: 'Busines name is required'
+ }
+ }
+ },
+ 'business_descriptor': {
+ validators: {
+ notEmpty: {
+ message: 'Busines descriptor is required'
+ }
+ }
+ },
+ 'business_type': {
+ validators: {
+ notEmpty: {
+ message: 'Busines type is required'
+ }
+ }
+ },
+ 'business_email': {
+ validators: {
+ notEmpty: {
+ message: 'Busines email is required'
+ },
+ emailAddress: {
+ message: 'The value is not a valid email address'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ // Bootstrap Framework Integration
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 4
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'card_name': {
+ validators: {
+ notEmpty: {
+ message: 'Name on card is required'
+ }
+ }
+ },
+ 'card_number': {
+ validators: {
+ notEmpty: {
+ message: 'Card member is required'
+ },
+ creditCard: {
+ message: 'Card number is not valid'
+ }
+ }
+ },
+ 'card_expiry_month': {
+ validators: {
+ notEmpty: {
+ message: 'Month is required'
+ }
+ }
+ },
+ 'card_expiry_year': {
+ validators: {
+ notEmpty: {
+ message: 'Year is required'
+ }
+ }
+ },
+ 'card_cvv': {
+ validators: {
+ notEmpty: {
+ message: 'CVV is required'
+ },
+ digits: {
+ message: 'CVV must contain only digits'
+ },
+ stringLength: {
+ min: 3,
+ max: 4,
+ message: 'CVV must contain 3 to 4 digits only'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ // Bootstrap Framework Integration
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+ }
+
+ return {
+ // Public Functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_create_account');
+
+ if ( modalEl ) {
+ modal = new bootstrap.Modal(modalEl);
+ }
+
+ stepper = document.querySelector('#kt_create_account_stepper');
+
+ if ( !stepper ) {
+ return;
+ }
+
+ form = stepper.querySelector('#kt_create_account_form');
+ formSubmitButton = stepper.querySelector('[data-kt-stepper-action="submit"]');
+ formContinueButton = stepper.querySelector('[data-kt-stepper-action="next"]');
+
+ initStepper();
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTCreateAccount.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-api-key.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-api-key.js
new file mode 100644
index 0000000..0db049a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-api-key.js
@@ -0,0 +1,183 @@
+"use strict";
+
+// Class definition
+var KTModalCreateApiKey = function () {
+ var submitButton;
+ var cancelButton;
+ var validator;
+ var form;
+ var modal;
+ var modalEl;
+
+ // Init form inputs
+ var initForm = function() {
+ // Team assign. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="category"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('category');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'name': {
+ validators: {
+ notEmpty: {
+ message: 'API name is required'
+ }
+ }
+ },
+ 'description': {
+ validators: {
+ notEmpty: {
+ message: 'Description is required'
+ }
+ }
+ },
+ 'category': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ },
+ 'method': {
+ validators: {
+ notEmpty: {
+ message: 'API method is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show error popuo. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Show confirmation popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ // Show success message.
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_create_api_key');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ form = document.querySelector('#kt_modal_create_api_key_form');
+ submitButton = document.getElementById('kt_modal_create_api_key_submit');
+ cancelButton = document.getElementById('kt_modal_create_api_key_cancel');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalCreateApiKey.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-app.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-app.js
new file mode 100644
index 0000000..b06976c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-app.js
@@ -0,0 +1,327 @@
+"use strict";
+
+// Class definition
+var KTCreateApp = function () {
+ // Elements
+ var modal;
+ var modalEl;
+
+ var stepper;
+ var form;
+ var formSubmitButton;
+ var formContinueButton;
+
+ // Variables
+ var stepperObj;
+ var validations = [];
+
+ // Private Functions
+ var initStepper = function () {
+ // Initialize Stepper
+ stepperObj = new KTStepper(stepper);
+
+ // Stepper change event(handle hiding submit button for the last step)
+ stepperObj.on('kt.stepper.changed', function (stepper) {
+ if (stepperObj.getCurrentStepIndex() === 4) {
+ formSubmitButton.classList.remove('d-none');
+ formSubmitButton.classList.add('d-inline-block');
+ formContinueButton.classList.add('d-none');
+ } else if (stepperObj.getCurrentStepIndex() === 5) {
+ formSubmitButton.classList.add('d-none');
+ formContinueButton.classList.add('d-none');
+ } else {
+ formSubmitButton.classList.remove('d-inline-block');
+ formSubmitButton.classList.remove('d-none');
+ formContinueButton.classList.remove('d-none');
+ }
+ });
+
+ // Validation before going to next page
+ stepperObj.on('kt.stepper.next', function (stepper) {
+ console.log('stepper.next');
+
+ // Validate form before change stepper step
+ var validator = validations[stepper.getCurrentStepIndex() - 1]; // get validator for currnt step
+
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ stepper.goNext();
+
+ //KTUtil.scrollTop();
+ } else {
+ // Show error message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light"
+ }
+ }).then(function () {
+ //KTUtil.scrollTop();
+ });
+ }
+ });
+ } else {
+ stepper.goNext();
+
+ KTUtil.scrollTop();
+ }
+ });
+
+ // Prev event
+ stepperObj.on('kt.stepper.previous', function (stepper) {
+ console.log('stepper.previous');
+
+ stepper.goPrevious();
+ KTUtil.scrollTop();
+ });
+
+ formSubmitButton.addEventListener('click', function (e) {
+ // Validate form before change stepper step
+ var validator = validations[3]; // get validator for last form
+
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ formSubmitButton.disabled = true;
+
+ // Show loading indication
+ formSubmitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Hide loading indication
+ formSubmitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ formSubmitButton.disabled = false;
+
+ stepperObj.goNext();
+ //KTUtil.scrollTop();
+ }, 2000);
+ } else {
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light"
+ }
+ }).then(function () {
+ KTUtil.scrollTop();
+ });
+ }
+ });
+ });
+ }
+
+ // Init form inputs
+ var initForm = function() {
+ // Expiry month. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="card_expiry_month"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validations[3].revalidateField('card_expiry_month');
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="card_expiry_year"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validations[3].revalidateField('card_expiry_year');
+ });
+ }
+
+ var initValidation = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ // Step 1
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ name: {
+ validators: {
+ notEmpty: {
+ message: 'App name is required'
+ }
+ }
+ },
+ category: {
+ validators: {
+ notEmpty: {
+ message: 'Category is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 2
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ framework: {
+ validators: {
+ notEmpty: {
+ message: 'Framework is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ // Bootstrap Framework Integration
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 3
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ dbname: {
+ validators: {
+ notEmpty: {
+ message: 'Database name is required'
+ }
+ }
+ },
+ dbengine: {
+ validators: {
+ notEmpty: {
+ message: 'Database engine is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ // Bootstrap Framework Integration
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 4
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'card_name': {
+ validators: {
+ notEmpty: {
+ message: 'Name on card is required'
+ }
+ }
+ },
+ 'card_number': {
+ validators: {
+ notEmpty: {
+ message: 'Card member is required'
+ },
+ creditCard: {
+ message: 'Card number is not valid'
+ }
+ }
+ },
+ 'card_expiry_month': {
+ validators: {
+ notEmpty: {
+ message: 'Month is required'
+ }
+ }
+ },
+ 'card_expiry_year': {
+ validators: {
+ notEmpty: {
+ message: 'Year is required'
+ }
+ }
+ },
+ 'card_cvv': {
+ validators: {
+ notEmpty: {
+ message: 'CVV is required'
+ },
+ digits: {
+ message: 'CVV must contain only digits'
+ },
+ stringLength: {
+ min: 3,
+ max: 4,
+ message: 'CVV must contain 3 to 4 digits only'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ // Bootstrap Framework Integration
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+ }
+
+ return {
+ // Public Functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_create_app');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ stepper = document.querySelector('#kt_modal_create_app_stepper');
+ form = document.querySelector('#kt_modal_create_app_form');
+ formSubmitButton = stepper.querySelector('[data-kt-stepper-action="submit"]');
+ formContinueButton = stepper.querySelector('[data-kt-stepper-action="next"]');
+
+ initStepper();
+ initForm();
+ initValidation();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTCreateApp.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-campaign.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-campaign.js
new file mode 100644
index 0000000..bc12792
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-campaign.js
@@ -0,0 +1,352 @@
+"use strict";
+
+// Class definition
+var KTCreateCampaign = function () {
+ // Elements
+ var modal;
+ var modalEl;
+
+ var stepper;
+ var form;
+ var formSubmitButton;
+ var formContinueButton;
+
+ // Variables
+ var stepperObj;
+ var validations = [];
+
+ // Private Functions
+ var initStepper = function () {
+ // Initialize Stepper
+ stepperObj = new KTStepper(stepper);
+
+ // Stepper change event(handle hiding submit button for the last step)
+ stepperObj.on('kt.stepper.changed', function (stepper) {
+ if (stepperObj.getCurrentStepIndex() === 4) {
+ formSubmitButton.classList.remove('d-none');
+ formSubmitButton.classList.add('d-inline-block');
+ formContinueButton.classList.add('d-none');
+ } else if (stepperObj.getCurrentStepIndex() === 5) {
+ formSubmitButton.classList.add('d-none');
+ formContinueButton.classList.add('d-none');
+ } else {
+ formSubmitButton.classList.remove('d-inline-block');
+ formSubmitButton.classList.remove('d-none');
+ formContinueButton.classList.remove('d-none');
+ }
+ });
+
+ // Validation before going to next page
+ stepperObj.on('kt.stepper.next', function (stepper) {
+ console.log('stepper.next');
+
+ // Validate form before change stepper step
+ var validator = validations[stepper.getCurrentStepIndex() - 1]; // get validator for currnt step
+
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ stepper.goNext();
+
+ //KTUtil.scrollTop();
+ } else {
+ // Show error message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light"
+ }
+ }).then(function () {
+ //KTUtil.scrollTop();
+ });
+ }
+ });
+ } else {
+ stepper.goNext();
+
+ KTUtil.scrollTop();
+ }
+ });
+
+ // Prev event
+ stepperObj.on('kt.stepper.previous', function (stepper) {
+ console.log('stepper.previous');
+
+ stepper.goPrevious();
+ KTUtil.scrollTop();
+ });
+
+ formSubmitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ formSubmitButton.disabled = true;
+
+ // Show loading indication
+ formSubmitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Hide loading indication
+ formSubmitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ formSubmitButton.disabled = false;
+
+ stepperObj.goNext();
+ //KTUtil.scrollTop();
+ }, 2000);
+ });
+ }
+
+ // Init form inputs
+ var initForm = function () {
+ // Init age slider
+ var slider = document.querySelector("#kt_modal_create_campaign_age_slider");
+ var valueMin = document.querySelector("#kt_modal_create_campaign_age_min");
+ var valueMax = document.querySelector("#kt_modal_create_campaign_age_max");
+
+ noUiSlider.create(slider, {
+ start: [18, 40],
+ connect: true,
+ range: {
+ "min": 13,
+ "max": 80
+ }
+ });
+
+ slider.noUiSlider.on("update", function (values, handle) {
+ if (handle) {
+ valueMax.innerHTML = Math.round(values[handle]);
+ } else {
+ valueMin.innerHTML = Math.round(values[handle]);
+ }
+ });
+
+ // Init tagify
+ var tagifyElement = document.querySelector('#kt_modal_create_campaign_location');
+ var tagify = new Tagify(tagifyElement, {
+ delimiters: null,
+ templates: {
+ tag: function (tagData) {
+ const countryPath = tagifyElement.getAttribute("data-kt-flags-path") + tagData.value.toLowerCase().replace(/\s+/g, '-') + '.svg';
+ try {
+ // _ESCAPE_START_
+ return `
+
+
+ ${tagData.code ?
+ `

` : ''
+ }
+
${tagData.value}
+
+ `
+ // _ESCAPE_END_
+ }
+ catch (err) { }
+ },
+
+ dropdownItem: function (tagData) {
+ const countryPath = tagifyElement.getAttribute("data-kt-flags-path") + tagData.value.toLowerCase().replace(/\s+/g, '-') + '.svg';
+ try {
+ // _ESCAPE_START_
+ return `
+

+
${tagData.value}
+
`
+ // _ESCAPE_END_
+ }
+ catch (err) { }
+ }
+ },
+ enforceWhitelist: true,
+ whitelist: [
+ { value: 'Argentina', code: 'AR' },
+ { value: 'Australia', code: 'AU', searchBy: 'beach, sub-tropical' },
+ { value: 'Austria', code: 'AT' },
+ { value: 'Brazil', code: 'BR' },
+ { value: 'China', code: 'CN' },
+ { value: 'Egypt', code: 'EG' },
+ { value: 'Finland', code: 'FI' },
+ { value: 'France', code: 'FR' },
+ { value: 'Germany', code: 'DE' },
+ { value: 'Hong Kong', code: 'HK' },
+ { value: 'Hungary', code: 'HU' },
+ { value: 'Iceland', code: 'IS' },
+ { value: 'India', code: 'IN' },
+ { value: 'Indonesia', code: 'ID' },
+ { value: 'Italy', code: 'IT' },
+ { value: 'Jamaica', code: 'JM' },
+ { value: 'Japan', code: 'JP' },
+ { value: 'Jersey', code: 'JE' },
+ { value: 'Luxembourg', code: 'LU' },
+ { value: 'Mexico', code: 'MX' },
+ { value: 'Netherlands', code: 'NL' },
+ { value: 'New Zealand', code: 'NZ' },
+ { value: 'Norway', code: 'NO' },
+ { value: 'Philippines', code: 'PH' },
+ { value: 'Singapore', code: 'SG' },
+ { value: 'South Korea', code: 'KR' },
+ { value: 'Sweden', code: 'SE' },
+ { value: 'Switzerland', code: 'CH' },
+ { value: 'Thailand', code: 'TH' },
+ { value: 'Ukraine', code: 'UA' },
+ { value: 'United Kingdom', code: 'GB' },
+ { value: 'United States', code: 'US' },
+ { value: 'Vietnam', code: 'VN' }
+ ],
+ dropdown: {
+ enabled: 1, // suggest tags after a single character input
+ classname: 'extra-properties' // custom class for the suggestions dropdown
+ } // map tags' values to this property name, so this property will be the actual value and not the printed value on the screen
+ })
+
+ // add the first 2 tags and makes them readonly
+ var tagsToAdd = tagify.settings.whitelist.slice(0, 2);
+ tagify.addTags(tagsToAdd);
+
+ // Init flatpickr
+ $("#kt_modal_create_campaign_datepicker").flatpickr({
+ altInput: true,
+ enableTime: true,
+ altFormat: "F j, Y H:i",
+ dateFormat: "Y-m-d H:i",
+ mode: "range"
+ });
+
+ // Init dropzone
+ var myDropzone = new Dropzone("#kt_modal_create_campaign_files_upload", {
+ url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
+ paramName: "file", // The name that will be used to transfer the file
+ maxFiles: 10,
+ maxFilesize: 10, // MB
+ addRemoveLinks: true,
+ accept: function(file, done) {
+ if (file.name == "wow.jpg") {
+ done("Naha, you don't.");
+ } else {
+ done();
+ }
+ }
+ });
+
+ // Handle campaign duration options
+ const allDuration = document.querySelector('#kt_modal_create_campaign_duration_all');
+ const fixedDuration = document.querySelector('#kt_modal_create_campaign_duration_fixed');
+ const datepicker = document.querySelector('#kt_modal_create_campaign_datepicker');
+
+ [allDuration, fixedDuration].forEach(option => {
+ option.addEventListener('click', e => {
+ if (option.classList.contains('active')) {
+ return;
+ }
+ allDuration.classList.toggle('active');
+ fixedDuration.classList.toggle('active');
+
+ if (fixedDuration.classList.contains('active')) {
+ datepicker.nextElementSibling.classList.remove('d-none');
+ } else {
+ datepicker.nextElementSibling.classList.add('d-none');
+ }
+ });
+ });
+
+ // Init budget slider
+ var budgetSlider = document.querySelector("#kt_modal_create_campaign_budget_slider");
+ var budgetValue = document.querySelector("#kt_modal_create_campaign_budget_label");
+
+ noUiSlider.create(budgetSlider, {
+ start: [5],
+ connect: true,
+ range: {
+ "min": 1,
+ "max": 500
+ }
+ });
+
+ budgetSlider.noUiSlider.on("update", function (values, handle) {
+ budgetValue.innerHTML = Math.round(values[handle]);
+ if (handle) {
+ budgetValue.innerHTML = Math.round(values[handle]);
+ }
+ });
+
+ // Handle create new campaign button
+ const restartButton = document.querySelector('#kt_modal_create_campaign_create_new');
+ restartButton.addEventListener('click', function () {
+ form.reset();
+ stepperObj.goTo(1);
+ });
+ }
+
+ var initValidation = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ // Step 1
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ campaign_name: {
+ validators: {
+ notEmpty: {
+ message: 'App name is required'
+ }
+ }
+ },
+ avatar: {
+ validators: {
+ file: {
+ extension: 'png,jpg,jpeg',
+ type: 'image/jpeg,image/png',
+ message: 'Please choose a png, jpg or jpeg files only',
+ },
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+ }
+
+ return {
+ // Public Functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_create_campaign');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ stepper = document.querySelector('#kt_modal_create_campaign_stepper');
+ form = document.querySelector('#kt_modal_create_campaign_stepper_form');
+ formSubmitButton = stepper.querySelector('[data-kt-stepper-action="submit"]');
+ formContinueButton = stepper.querySelector('[data-kt-stepper-action="next"]');
+
+ initStepper();
+ initForm();
+ initValidation();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCreateCampaign.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/budget.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/budget.js
new file mode 100644
index 0000000..f5b476e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/budget.js
@@ -0,0 +1,140 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectBudget = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'budget_setup': {
+ validators: {
+ notEmpty: {
+ message: 'Budget amount is required'
+ },
+ callback: {
+ message: 'The budget amount must be greater than $100',
+ callback: function(input) {
+ var currency = input.value;
+ currency = currency.replace(/[$,]+/g,"");
+
+ if (parseFloat(currency) < 100) {
+ return false;
+ }
+ }
+ }
+ }
+ },
+ 'budget_usage': {
+ validators: {
+ notEmpty: {
+ message: 'Budget usage type is required'
+ }
+ }
+ },
+ 'budget_allow': {
+ validators: {
+ notEmpty: {
+ message: 'Allowing budget is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate on change
+ KTDialer.getInstance(form.querySelector('#kt_modal_create_project_budget_setup')).on('kt.dialer.changed', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('budget_setup');
+ });
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ previousButton.addEventListener('click', function () {
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="budget-next"]');
+ previousButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="budget-previous"]');
+
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectBudget = module.exports = KTModalCreateProjectBudget;
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/complete.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/complete.js
new file mode 100644
index 0000000..b8c569f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/complete.js
@@ -0,0 +1,32 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectComplete = function () {
+ // Variables
+ var startButton;
+ var form;
+ var stepper;
+
+ // Private functions
+ var handleForm = function() {
+ startButton.addEventListener('click', function () {
+ stepper.goTo(1);
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ startButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="complete-start"]');
+
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectComplete = module.exports = KTModalCreateProjectComplete;
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/files.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/files.js
new file mode 100644
index 0000000..027ec26
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/files.js
@@ -0,0 +1,77 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectFiles = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initForm = function() {
+ // Project logo
+ // For more info about Dropzone plugin visit: https://www.dropzonejs.com/#usage
+ var myDropzone = new Dropzone("#kt_modal_create_project_files_upload", {
+ url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
+ paramName: "file", // The name that will be used to transfer the file
+ maxFiles: 10,
+ maxFilesize: 10, // MB
+ addRemoveLinks: true,
+ accept: function(file, done) {
+ if (file.name == "justinbieber.jpg") {
+ done("Naha, you don't.");
+ } else {
+ done();
+ }
+ }
+ });
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Hide loading indication
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ });
+
+ previousButton.addEventListener('click', function () {
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="files-next"]');
+ previousButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="files-previous"]');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectFiles = module.exports = KTModalCreateProjectFiles;
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/main.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/main.js
new file mode 100644
index 0000000..4310265
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/main.js
@@ -0,0 +1,58 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProject = function () {
+ // Private variables
+ var stepper;
+ var stepperObj;
+ var form;
+
+ // Private functions
+ var initStepper = function () {
+ // Initialize Stepper
+ stepperObj = new KTStepper(stepper);
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ stepper = document.querySelector('#kt_modal_create_project_stepper');
+ form = document.querySelector('#kt_modal_create_project_form');
+
+ initStepper();
+ },
+
+ getStepperObj: function () {
+ return stepperObj;
+ },
+
+ getStepper: function () {
+ return stepper;
+ },
+
+ getForm: function () {
+ return form;
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ if (!document.querySelector('#kt_modal_create_project')) {
+ return;
+ }
+
+ KTModalCreateProject.init();
+ KTModalCreateProjectType.init();
+ KTModalCreateProjectBudget.init();
+ KTModalCreateProjectSettings.init();
+ KTModalCreateProjectTeam.init();
+ KTModalCreateProjectTargets.init();
+ KTModalCreateProjectFiles.init();
+ KTModalCreateProjectComplete.init();
+});
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProject = module.exports = KTModalCreateProject;
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/settings.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/settings.js
new file mode 100644
index 0000000..e4ba4ab
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/settings.js
@@ -0,0 +1,171 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectSettings = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initForm = function() {
+ // Project logo
+ // For more info about Dropzone plugin visit: https://www.dropzonejs.com/#usage
+ var myDropzone = new Dropzone("#kt_modal_create_project_settings_logo", {
+ url: "https://keenthemes.com/scripts/void.php", // Set the url for your upload script location
+ paramName: "file", // The name that will be used to transfer the file
+ maxFiles: 10,
+ maxFilesize: 10, // MB
+ addRemoveLinks: true,
+ accept: function(file, done) {
+ if (file.name == "justinbieber.jpg") {
+ done("Naha, you don't.");
+ } else {
+ done();
+ }
+ }
+ });
+
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var releaseDate = $(form.querySelector('[name="settings_release_date"]'));
+ releaseDate.flatpickr({
+ enableTime: true,
+ dateFormat: "d, M Y, H:i",
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="settings_customer"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('settings_customer');
+ });
+ }
+
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'settings_name': {
+ validators: {
+ notEmpty: {
+ message: 'Project name is required'
+ }
+ }
+ },
+ 'settings_customer': {
+ validators: {
+ notEmpty: {
+ message: 'Customer is required'
+ }
+ }
+ },
+ 'settings_description': {
+ validators: {
+ notEmpty: {
+ message: 'Description is required'
+ }
+ }
+ },
+ 'settings_release_date': {
+ validators: {
+ notEmpty: {
+ message: 'Release date is required'
+ }
+ }
+ },
+ 'settings_notifications[]': {
+ validators: {
+ notEmpty: {
+ message: 'Notifications are required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ previousButton.addEventListener('click', function () {
+ // Go to previous step
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="settings-next"]');
+ previousButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="settings-previous"]');
+
+ initForm();
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectSettings = module.exports = KTModalCreateProjectSettings;
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/targets.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/targets.js
new file mode 100644
index 0000000..6e73651
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/targets.js
@@ -0,0 +1,176 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectTargets = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initForm = function() {
+ // Tags. For more info, please visit the official plugin site: https://yaireo.github.io/tagify/
+ var tags = new Tagify(form.querySelector('[name="target_tags"]'), {
+ whitelist: ["Important", "Urgent", "High", "Medium", "Low"],
+ maxTags: 5,
+ dropdown: {
+ maxItems: 10, // <- mixumum allowed rendered suggestions
+ enabled: 0, // <- show suggestions on focus
+ closeOnSelect: false // <- do not hide the suggestions dropdown once an item has been selected
+ }
+ });
+ tags.on("change", function(){
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('tags');
+ });
+
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var dueDate = $(form.querySelector('[name="target_due_date"]'));
+ dueDate.flatpickr({
+ enableTime: true,
+ dateFormat: "d, M Y, H:i",
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="target_assign"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('target_assign');
+ });
+ }
+
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'target_title': {
+ validators: {
+ notEmpty: {
+ message: 'Target title is required'
+ }
+ }
+ },
+ 'target_assign': {
+ validators: {
+ notEmpty: {
+ message: 'Customer is required'
+ }
+ }
+ },
+ 'target_due_date': {
+ validators: {
+ notEmpty: {
+ message: 'Due date is required'
+ }
+ }
+ },
+ 'target_tags': {
+ validators: {
+ notEmpty: {
+ message: 'Target tags are required'
+ }
+ }
+ },
+ 'target_allow': {
+ validators: {
+ notEmpty: {
+ message: 'Allowing target is required'
+ }
+ }
+ },
+ 'target_notifications[]': {
+ validators: {
+ notEmpty: {
+ message: 'Notifications are required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ previousButton.addEventListener('click', function () {
+ // Go to previous step
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="targets-next"]');
+ previousButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="targets-previous"]');
+
+ initForm();
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectTargets = module.exports = KTModalCreateProjectTargets;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/team.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/team.js
new file mode 100644
index 0000000..7b9ae0f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/team.js
@@ -0,0 +1,57 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectTeam = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var form;
+ var stepper;
+
+ // Private functions
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ });
+
+ previousButton.addEventListener('click', function () {
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="team-next"]');
+ previousButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="team-previous"]');
+
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectTeam = module.exports = KTModalCreateProjectTeam;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/type.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/type.js
new file mode 100644
index 0000000..06e38dd
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/create-project/type.js
@@ -0,0 +1,104 @@
+"use strict";
+
+// Class definition
+var KTModalCreateProjectType = function () {
+ // Variables
+ var nextButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'project_type': {
+ validators: {
+ notEmpty: {
+ message: 'Project type is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+ e.preventDefault();
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1000);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalCreateProject.getForm();
+ stepper = KTModalCreateProject.getStepperObj();
+ nextButton = KTModalCreateProject.getStepper().querySelector('[data-kt-element="type-next"]');
+
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalCreateProjectType = module.exports = KTModalCreateProjectType;
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-address.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-address.js
new file mode 100644
index 0000000..4cce217
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-address.js
@@ -0,0 +1,211 @@
+"use strict";
+
+// Class definition
+var KTModalNewAddress = function () {
+ var submitButton;
+ var cancelButton;
+ var validator;
+ var form;
+ var modal;
+ var modalEl;
+
+ // Init form inputs
+ var initForm = function() {
+ // Team assign. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="country"]')).select2().on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('country');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'first-name': {
+ validators: {
+ notEmpty: {
+ message: 'First name is required'
+ }
+ }
+ },
+ 'last-name': {
+ validators: {
+ notEmpty: {
+ message: 'Last name is required'
+ }
+ }
+ },
+ 'country': {
+ validators: {
+ notEmpty: {
+ message: 'Country is required'
+ }
+ }
+ },
+ 'address1': {
+ validators: {
+ notEmpty: {
+ message: 'Address 1 is required'
+ }
+ }
+ },
+ 'address2': {
+ validators: {
+ notEmpty: {
+ message: 'Address 2 is required'
+ }
+ }
+ },
+ 'city': {
+ validators: {
+ notEmpty: {
+ message: 'City is required'
+ }
+ }
+ },
+ 'state': {
+ validators: {
+ notEmpty: {
+ message: 'State is required'
+ }
+ }
+ },
+ 'postcode': {
+ validators: {
+ notEmpty: {
+ message: 'Postcode is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate ajax process
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show success message. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show error message.
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_new_address');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ form = document.querySelector('#kt_modal_new_address_form');
+ submitButton = document.getElementById('kt_modal_new_address_submit');
+ cancelButton = document.getElementById('kt_modal_new_address_cancel');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalNewAddress.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-card.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-card.js
new file mode 100644
index 0000000..f13a7bf
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-card.js
@@ -0,0 +1,213 @@
+"use strict";
+
+// Class definition
+var KTModalNewCard = function () {
+ var submitButton;
+ var cancelButton;
+ var validator;
+ var form;
+ var modal;
+ var modalEl;
+
+ // Init form inputs
+ var initForm = function() {
+ // Expiry month. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="card_expiry_month"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('card_expiry_month');
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="card_expiry_year"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('card_expiry_year');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'card_name': {
+ validators: {
+ notEmpty: {
+ message: 'Name on card is required'
+ }
+ }
+ },
+ 'card_number': {
+ validators: {
+ notEmpty: {
+ message: 'Card member is required'
+ },
+ creditCard: {
+ message: 'Card number is not valid'
+ }
+ }
+ },
+ 'card_expiry_month': {
+ validators: {
+ notEmpty: {
+ message: 'Month is required'
+ }
+ }
+ },
+ 'card_expiry_year': {
+ validators: {
+ notEmpty: {
+ message: 'Year is required'
+ }
+ }
+ },
+ 'card_cvv': {
+ validators: {
+ notEmpty: {
+ message: 'CVV is required'
+ },
+ digits: {
+ message: 'CVV must contain only digits'
+ },
+ stringLength: {
+ min: 3,
+ max: 4,
+ message: 'CVV must contain 3 to 4 digits only'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ // Simulate form submission. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ setTimeout(function() {
+ // Remove loading indication
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show popup confirmation
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Show success message. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ // Show error message.
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_new_card');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ form = document.querySelector('#kt_modal_new_card_form');
+ submitButton = document.getElementById('kt_modal_new_card_submit');
+ cancelButton = document.getElementById('kt_modal_new_card_cancel');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalNewCard.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-target.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-target.js
new file mode 100644
index 0000000..da1bf6f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/new-target.js
@@ -0,0 +1,211 @@
+"use strict";
+
+// Class definition
+var KTModalNewTarget = function () {
+ var submitButton;
+ var cancelButton;
+ var validator;
+ var form;
+ var modal;
+ var modalEl;
+
+ // Init form inputs
+ var initForm = function() {
+ // Tags. For more info, please visit the official plugin site: https://yaireo.github.io/tagify/
+ var tags = new Tagify(form.querySelector('[name="tags"]'), {
+ whitelist: ["Important", "Urgent", "High", "Medium", "Low"],
+ maxTags: 5,
+ dropdown: {
+ maxItems: 10, // <- mixumum allowed rendered suggestions
+ enabled: 0, // <- show suggestions on focus
+ closeOnSelect: false // <- do not hide the suggestions dropdown once an item has been selected
+ }
+ });
+ tags.on("change", function(){
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('tags');
+ });
+
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var dueDate = $(form.querySelector('[name="due_date"]'));
+ dueDate.flatpickr({
+ enableTime: true,
+ dateFormat: "d, M Y, H:i",
+ });
+
+ // Team assign. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="team_assign"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('team_assign');
+ });
+ }
+
+ // Handle form validation and submittion
+ var handleForm = function() {
+ // Stepper custom navigation
+
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ target_title: {
+ validators: {
+ notEmpty: {
+ message: 'Target title is required'
+ }
+ }
+ },
+ target_assign: {
+ validators: {
+ notEmpty: {
+ message: 'Target assign is required'
+ }
+ }
+ },
+ target_due_date: {
+ validators: {
+ notEmpty: {
+ message: 'Target due date is required'
+ }
+ }
+ },
+ target_tags: {
+ validators: {
+ notEmpty: {
+ message: 'Target tags are required'
+ }
+ }
+ },
+ 'targets_notifications[]': {
+ validators: {
+ notEmpty: {
+ message: 'Please select at least one communication method'
+ }
+ }
+ },
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Action buttons
+ submitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ submitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ submitButton.disabled = true;
+
+ setTimeout(function() {
+ submitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ submitButton.disabled = false;
+
+ // Show success message. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Form has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modal.hide();
+ }
+ });
+
+ //form.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show error message.
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ cancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_new_target');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ form = document.querySelector('#kt_modal_new_target_form');
+ submitButton = document.getElementById('kt_modal_new_target_submit');
+ cancelButton = document.getElementById('kt_modal_new_target_cancel');
+
+ initForm();
+ handleForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalNewTarget.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/complete.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/complete.js
new file mode 100644
index 0000000..98b7229
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/complete.js
@@ -0,0 +1,32 @@
+"use strict";
+
+// Class definition
+var KTModalOfferADealComplete = function () {
+ // Variables
+ var startButton;
+ var form;
+ var stepper;
+
+ // Private functions
+ var handleForm = function() {
+ startButton.addEventListener('click', function () {
+ stepper.goTo(1);
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalOfferADeal.getForm();
+ stepper = KTModalOfferADeal.getStepperObj();
+ startButton = KTModalOfferADeal.getStepper().querySelector('[data-kt-element="complete-start"]');
+
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalOfferADealComplete = module.exports = KTModalOfferADealComplete;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/details.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/details.js
new file mode 100644
index 0000000..49dd6d9
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/details.js
@@ -0,0 +1,147 @@
+"use strict";
+
+// Class definition
+var KTModalOfferADealDetails = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initForm = function() {
+ // Due date. For more info, please visit the official plugin site: https://flatpickr.js.org/
+ var dueDate = $(form.querySelector('[name="details_activation_date"]'));
+ dueDate.flatpickr({
+ enableTime: true,
+ dateFormat: "d, M Y, H:i",
+ });
+
+ // Expiry year. For more info, plase visit the official plugin site: https://select2.org/
+ $(form.querySelector('[name="details_customer"]')).on('change', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('details_customer');
+ });
+ }
+
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'details_customer': {
+ validators: {
+ notEmpty: {
+ message: 'Customer is required'
+ }
+ }
+ },
+ 'details_title': {
+ validators: {
+ notEmpty: {
+ message: 'Deal title is required'
+ }
+ }
+ },
+ 'details_activation_date': {
+ validators: {
+ notEmpty: {
+ message: 'Activation date is required'
+ }
+ }
+ },
+ 'details_notifications[]': {
+ validators: {
+ notEmpty: {
+ message: 'Notifications are required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ previousButton.addEventListener('click', function () {
+ // Go to previous step
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalOfferADeal.getForm();
+ stepper = KTModalOfferADeal.getStepperObj();
+ nextButton = KTModalOfferADeal.getStepper().querySelector('[data-kt-element="details-next"]');
+ previousButton = KTModalOfferADeal.getStepper().querySelector('[data-kt-element="details-previous"]');
+
+ initForm();
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalOfferADealDetails = module.exports = KTModalOfferADealDetails;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/finance.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/finance.js
new file mode 100644
index 0000000..fe0457b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/finance.js
@@ -0,0 +1,140 @@
+"use strict";
+
+// Class definition
+var KTModalOfferADealFinance = function () {
+ // Variables
+ var nextButton;
+ var previousButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'finance_setup': {
+ validators: {
+ notEmpty: {
+ message: 'Amount is required'
+ },
+ callback: {
+ message: 'The amount must be greater than $100',
+ callback: function(input) {
+ var currency = input.value;
+ currency = currency.replace(/[$,]+/g,"");
+
+ if (parseFloat(currency) < 100) {
+ return false;
+ }
+ }
+ }
+ }
+ },
+ 'finance_usage': {
+ validators: {
+ notEmpty: {
+ message: 'Usage type is required'
+ }
+ }
+ },
+ 'finance_allow': {
+ validators: {
+ notEmpty: {
+ message: 'Allowing budget is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Revalidate on change
+ KTDialer.getInstance(form.querySelector('#kt_modal_finance_setup')).on('kt.dialer.changed', function() {
+ // Revalidate the field when an option is chosen
+ validator.revalidateField('finance_setup');
+ });
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1500);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ previousButton.addEventListener('click', function () {
+ stepper.goPrevious();
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalOfferADeal.getForm();
+ stepper = KTModalOfferADeal.getStepperObj();
+ nextButton = KTModalOfferADeal.getStepper().querySelector('[data-kt-element="finance-next"]');
+ previousButton = KTModalOfferADeal.getStepper().querySelector('[data-kt-element="finance-previous"]');
+
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalOfferADealFinance = module.exports = KTModalOfferADealFinance;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/main.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/main.js
new file mode 100644
index 0000000..324a318
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/main.js
@@ -0,0 +1,55 @@
+"use strict";
+
+// Class definition
+var KTModalOfferADeal = function () {
+ // Private variables
+ var stepper;
+ var stepperObj;
+ var form;
+
+ // Private functions
+ var initStepper = function () {
+ // Initialize Stepper
+ stepperObj = new KTStepper(stepper);
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ stepper = document.querySelector('#kt_modal_offer_a_deal_stepper');
+ form = document.querySelector('#kt_modal_offer_a_deal_form');
+
+ initStepper();
+ },
+
+ getStepper: function () {
+ return stepper;
+ },
+
+ getStepperObj: function () {
+ return stepperObj;
+ },
+
+ getForm: function () {
+ return form;
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ if (!document.querySelector('#kt_modal_offer_a_deal')) {
+ return;
+ }
+
+ KTModalOfferADeal.init();
+ KTModalOfferADealType.init();
+ KTModalOfferADealDetails.init();
+ KTModalOfferADealFinance.init();
+ KTModalOfferADealComplete.init();
+});
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalOfferADeal = module.exports = KTModalOfferADeal;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/type.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/type.js
new file mode 100644
index 0000000..5f896d1
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/offer-a-deal/type.js
@@ -0,0 +1,103 @@
+"use strict";
+
+// Class definition
+var KTModalOfferADealType = function () {
+ // Variables
+ var nextButton;
+ var validator;
+ var form;
+ var stepper;
+
+ // Private functions
+ var initValidation = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ validator = FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ 'offer_type': {
+ validators: {
+ notEmpty: {
+ message: 'Offer type is required'
+ }
+ }
+ }
+ },
+
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+ }
+
+ var handleForm = function() {
+ nextButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ nextButton.disabled = true;
+
+ // Validate form before submit
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ nextButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function() {
+ // Simulate form submission
+ nextButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ nextButton.disabled = false;
+
+ // Go to next step
+ stepper.goNext();
+ }, 1000);
+ } else {
+ // Enable button
+ nextButton.disabled = false;
+
+ // Show popup warning. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+ }
+
+ return {
+ // Public functions
+ init: function () {
+ form = KTModalOfferADeal.getForm();
+ stepper = KTModalOfferADeal.getStepperObj();
+ nextButton = KTModalOfferADeal.getStepper().querySelector('[data-kt-element="type-next"]');
+
+ initValidation();
+ handleForm();
+ }
+ };
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTModalOfferADealType = module.exports = KTModalOfferADealType;
+}
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/select-location.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/select-location.js
new file mode 100644
index 0000000..f48f4be
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/select-location.js
@@ -0,0 +1,117 @@
+"use strict";
+
+// Class definition
+var KTModalSelectLocation = function () {
+ // Private variables
+ var locationSelectTarget;
+ var locationSelectButton;
+
+ var modal;
+ var selectedlocation = '';
+ var mapInitialized = false;
+
+ // Private functions
+ var initMap = function() {
+ // Check if Leaflet is included
+ if (!L) {
+ return;
+ }
+
+ // Define Map Location
+ var leaflet = L.map('kt_modal_select_location_map', {
+ center: [40.725, -73.985],
+ zoom: 30
+ });
+
+ // Init Leaflet Map. For more info check the plugin's documentation: https://leafletjs.com/
+ L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
+ attribution: '© OpenStreetMap contributors'
+ }).addTo(leaflet);
+
+ // Set Geocoding
+ var geocodeService;
+ if (typeof L.esri.Geocoding === 'undefined') {
+ geocodeService = L.esri.geocodeService();
+ } else {
+ geocodeService = L.esri.Geocoding.geocodeService();
+ }
+
+ // Define Marker Layer
+ var markerLayer = L.layerGroup().addTo(leaflet);
+
+ // Set Custom SVG icon marker
+ var leafletIcon = L.divIcon({
+ html: ``,
+ bgPos: [10, 10],
+ iconAnchor: [20, 37],
+ popupAnchor: [0, -37],
+ className: 'leaflet-marker'
+ });
+
+ // Map onClick Action
+ leaflet.on('click', function (e) {
+ geocodeService.reverse().latlng(e.latlng).run(function (error, result) {
+ if (error) {
+ return;
+ }
+ markerLayer.clearLayers();
+ selectedlocation = result.address.Match_addr;
+ L.marker(result.latlng, { icon: leafletIcon }).addTo(markerLayer).bindPopup(result.address.Match_addr, { closeButton: false }).openPopup();
+
+ // Show popup confirmation. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ html: 'Your selected - "' + selectedlocation + '".
' + 'Click on the "Apply" button to select this location.',
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ // Confirmed
+ });
+ });
+ });
+ }
+
+ var handleSelection = function() {
+ locationSelectButton.addEventListener('click', function() {
+ if (locationSelectTarget) {
+ if (locationSelectTarget.value) {
+ locationSelectTarget.value = selectedlocation;
+ } else {
+ locationSelectTarget.innerHTML = selectedlocation;
+ }
+ }
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ modal = document.querySelector('#kt_modal_select_location');
+
+ if (!modal) {
+ return;
+ }
+
+ locationSelectTarget = document.querySelector('#kt_modal_select_location_target');
+ locationSelectButton = document.querySelector('#kt_modal_select_location_button');
+
+ handleSelection();
+
+ modal.addEventListener('shown.bs.modal', function () {
+ if (!mapInitialized) {
+ initMap();
+ mapInitialized = true;
+ }
+ });
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTModalSelectLocation.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/share-earn.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/share-earn.js
new file mode 100644
index 0000000..3d44992
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/share-earn.js
@@ -0,0 +1,47 @@
+"use strict";
+
+// Class definition
+var KTModalShareEarn = function () {
+ // Private functions
+ var handleForm = function() {
+ var button = document.querySelector('#kt_share_earn_link_copy_button');
+ var input = document.querySelector('#kt_share_earn_link_input');
+ var clipboard = new ClipboardJS(button);
+
+ if (!clipboard) {
+ return;
+ }
+
+ // Copy text to clipboard. For more info check the plugin's documentation: https://clipboardjs.com/
+ clipboard.on('success', function(e) {
+ var buttonCaption = button.innerHTML;
+ //Add bgcolor
+ input.classList.add('bg-success');
+ input.classList.add('text-inverse-success');
+
+ button.innerHTML = 'Copied!';
+
+ setTimeout(function() {
+ button.innerHTML = buttonCaption;
+
+ // Remove bgcolor
+ input.classList.remove('bg-success');
+ input.classList.remove('text-inverse-success');
+ }, 3000); // 3seconds
+
+ e.clearSelection();
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ handleForm();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTModalShareEarn.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/top-up-wallet.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/top-up-wallet.js
new file mode 100644
index 0000000..52362ce
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/top-up-wallet.js
@@ -0,0 +1,280 @@
+"use strict";
+
+// Class definition
+var KTModalTopUpWallet = function () {
+ // Elements
+ var modal;
+ var modalEl;
+
+ var stepper;
+ var form;
+ var formSubmitButton;
+ var formContinueButton;
+
+ // Variables
+ var stepperObj;
+ var validations = [];
+
+ // Private Functions
+ var initStepper = function () {
+ // Initialize Stepper
+ stepperObj = new KTStepper(stepper);
+
+ // Stepper change event(handle hiding submit button for the last step)
+ stepperObj.on('kt.stepper.changed', function (stepper) {
+ if (stepperObj.getCurrentStepIndex() === 4) {
+ formSubmitButton.classList.remove('d-none');
+ formSubmitButton.classList.add('d-inline-block');
+ formContinueButton.classList.add('d-none');
+ } else if (stepperObj.getCurrentStepIndex() === 5) {
+ formSubmitButton.classList.add('d-none');
+ formContinueButton.classList.add('d-none');
+ } else {
+ formSubmitButton.classList.remove('d-inline-block');
+ formSubmitButton.classList.remove('d-none');
+ formContinueButton.classList.remove('d-none');
+ }
+ });
+
+ // Validation before going to next page
+ stepperObj.on('kt.stepper.next', function (stepper) {
+ console.log('stepper.next');
+
+ // Validate form before change stepper step
+ var validator = validations[stepper.getCurrentStepIndex() - 1]; // get validator for currnt step
+
+ if (validator) {
+ validator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ stepper.goNext();
+
+ //KTUtil.scrollTop();
+ } else {
+ // Show error message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-light"
+ }
+ }).then(function () {
+ //KTUtil.scrollTop();
+ });
+ }
+ });
+ } else {
+ stepper.goNext();
+
+ KTUtil.scrollTop();
+ }
+ });
+
+ // Prev event
+ stepperObj.on('kt.stepper.previous', function (stepper) {
+ console.log('stepper.previous');
+
+ stepper.goPrevious();
+ KTUtil.scrollTop();
+ });
+
+ formSubmitButton.addEventListener('click', function (e) {
+ // Prevent default button action
+ e.preventDefault();
+
+ // Disable button to avoid multiple click
+ formSubmitButton.disabled = true;
+
+ // Show loading indication
+ formSubmitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Simulate form submission
+ setTimeout(function () {
+ // Hide loading indication
+ formSubmitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ formSubmitButton.disabled = false;
+
+ stepperObj.goNext();
+ //KTUtil.scrollTop();
+ }, 2000);
+ });
+ }
+
+ // Init form inputs
+ var initForm = function () {
+ // Handle currency swap logic
+ const currencyTypes = form.querySelectorAll('[name="currency_type"]');
+ const targets = form.querySelectorAll('[data-kt-modal-top-up-wallet-option]');
+ let value = "dollar";
+ currencyTypes.forEach(currency => {
+ currency.addEventListener('change', e => {
+ value = e.target.value;
+
+ targets.forEach(target => {
+ target.classList.add('d-none');
+
+ if(target.getAttribute('data-kt-modal-top-up-wallet-option') === value){
+ target.classList.remove('d-none');
+ }
+ });
+ });
+ });
+
+ // Handle top up wallet button
+ const restartButton = document.querySelector('#kt_modal_top_up_wallet_create_new');
+ restartButton.addEventListener('click', function () {
+ form.reset();
+ stepperObj.goTo(1);
+ });
+ }
+
+ // Init validation
+ var initValidation = function () {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ // Step 1
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ top_up_amount: {
+ validators: {
+ notEmpty: {
+ message: 'Top up amount is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 2
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ payment_methods: {
+ validators: {
+ notEmpty: {
+ message: 'Payment method is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+
+ // Step 3
+ validations.push(FormValidation.formValidation(
+ form,
+ {
+ fields: {
+ top_up_password: {
+ validators: {
+ notEmpty: {
+ message: 'Password is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ ));
+ }
+
+ // Handle cancel modal
+ const handleCancelAction = () => {
+ const closeButton = modalEl.querySelector('[data-kt-modal-action-type="close"]');
+ closeButton.addEventListener('click', e => {
+ cancelAction(e);
+ });
+
+ const cancelAction = (e) => {
+ e.preventDefault();
+
+ Swal.fire({
+ text: "Are you sure you would like to cancel?",
+ icon: "warning",
+ showCancelButton: true,
+ buttonsStyling: false,
+ confirmButtonText: "Yes, cancel it!",
+ cancelButtonText: "No, return",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ cancelButton: "btn btn-active-light"
+ }
+ }).then(function (result) {
+ if (result.value) {
+ form.reset(); // Reset form
+ modal.hide(); // Hide modal
+ } else if (result.dismiss === 'cancel') {
+ Swal.fire({
+ text: "Your form has not been cancelled!.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ }
+ });
+ }
+ });
+ }
+ }
+
+ return {
+ // Public Functions
+ init: function () {
+ // Elements
+ modalEl = document.querySelector('#kt_modal_top_up_wallet');
+
+ if (!modalEl) {
+ return;
+ }
+
+ modal = new bootstrap.Modal(modalEl);
+
+ stepper = document.querySelector('#kt_modal_top_up_wallet_stepper');
+ form = document.querySelector('#kt_modal_top_up_wallet_stepper_form');
+ formSubmitButton = stepper.querySelector('[data-kt-stepper-action="submit"]');
+ formContinueButton = stepper.querySelector('[data-kt-stepper-action="next"]');
+
+ initStepper();
+ initForm();
+ initValidation();
+ handleCancelAction();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalTopUpWallet.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/two-factor-authentication.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/two-factor-authentication.js
new file mode 100644
index 0000000..29488f2
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/two-factor-authentication.js
@@ -0,0 +1,266 @@
+"use strict";
+
+// Class definition
+var KTModalTwoFactorAuthentication = function () {
+ // Private variables
+ var modal;
+ var modalObject;
+
+ var optionsWrapper;
+ var optionsSelectButton;
+
+ var smsWrapper;
+ var smsForm;
+ var smsSubmitButton;
+ var smsCancelButton;
+ var smsValidator;
+
+ var appsWrapper;
+ var appsForm;
+ var appsSubmitButton;
+ var appsCancelButton;
+ var appsValidator;
+
+ // Private functions
+ var handleOptionsForm = function() {
+ // Handle options selection
+ optionsSelectButton.addEventListener('click', function (e) {
+ e.preventDefault();
+ var option = optionsWrapper.querySelector('[name="auth_option"]:checked');
+
+ optionsWrapper.classList.add('d-none');
+
+ if (option.value == 'sms') {
+ smsWrapper.classList.remove('d-none');
+ } else {
+ appsWrapper.classList.remove('d-none');
+ }
+ });
+ }
+
+ var showOptionsForm = function() {
+ optionsWrapper.classList.remove('d-none');
+ smsWrapper.classList.add('d-none');
+ appsWrapper.classList.add('d-none');
+ }
+
+ var handleSMSForm = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ smsValidator = FormValidation.formValidation(
+ smsForm,
+ {
+ fields: {
+ 'mobile': {
+ validators: {
+ notEmpty: {
+ message: 'Mobile no is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Handle apps submition
+ smsSubmitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (smsValidator) {
+ smsValidator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ // Show loading indication
+ smsSubmitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ smsSubmitButton.disabled = true;
+
+ // Simulate ajax process
+ setTimeout(function() {
+ // Remove loading indication
+ smsSubmitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ smsSubmitButton.disabled = false;
+
+ // Show success message. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: "Mobile number has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modalObject.hide();
+ showOptionsForm();
+ }
+ });
+
+ //smsForm.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show error message.
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ // Handle sms cancelation
+ smsCancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+ var option = optionsWrapper.querySelector('[name="auth_option"]:checked');
+
+ optionsWrapper.classList.remove('d-none');
+ smsWrapper.classList.add('d-none');
+ });
+ }
+
+ var handleAppsForm = function() {
+ // Init form validation rules. For more info check the FormValidation plugin's official documentation:https://formvalidation.io/
+ appsValidator = FormValidation.formValidation(
+ appsForm,
+ {
+ fields: {
+ 'code': {
+ validators: {
+ notEmpty: {
+ message: 'Code is required'
+ }
+ }
+ }
+ },
+ plugins: {
+ trigger: new FormValidation.plugins.Trigger(),
+ bootstrap: new FormValidation.plugins.Bootstrap5({
+ rowSelector: '.fv-row',
+ eleInvalidClass: '',
+ eleValidClass: ''
+ })
+ }
+ }
+ );
+
+ // Handle apps submition
+ appsSubmitButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ // Validate form before submit
+ if (appsValidator) {
+ appsValidator.validate().then(function (status) {
+ console.log('validated!');
+
+ if (status == 'Valid') {
+ appsSubmitButton.setAttribute('data-kt-indicator', 'on');
+
+ // Disable button to avoid multiple click
+ appsSubmitButton.disabled = true;
+
+ setTimeout(function() {
+ appsSubmitButton.removeAttribute('data-kt-indicator');
+
+ // Enable button
+ appsSubmitButton.disabled = false;
+
+ // Show success message.
+ Swal.fire({
+ text: "Code has been successfully submitted!",
+ icon: "success",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ modalObject.hide();
+ showOptionsForm();
+ }
+ });
+
+ //appsForm.submit(); // Submit form
+ }, 2000);
+ } else {
+ // Show error message.
+ Swal.fire({
+ text: "Sorry, looks like there are some errors detected, please try again.",
+ icon: "error",
+ buttonsStyling: false,
+ confirmButtonText: "Ok, got it!",
+ customClass: {
+ confirmButton: "btn btn-primary"
+ }
+ });
+ }
+ });
+ }
+ });
+
+ // Handle apps cancelation
+ appsCancelButton.addEventListener('click', function (e) {
+ e.preventDefault();
+ var option = optionsWrapper.querySelector('[name="auth_option"]:checked');
+
+ optionsWrapper.classList.remove('d-none');
+ appsWrapper.classList.add('d-none');
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ modal = document.querySelector('#kt_modal_two_factor_authentication');
+
+ if (!modal) {
+ return;
+ }
+
+ modalObject = new bootstrap.Modal(modal);
+
+ optionsWrapper = modal.querySelector('[data-kt-element="options"]');
+ optionsSelectButton = modal.querySelector('[data-kt-element="options-select"]');
+
+ smsWrapper = modal.querySelector('[data-kt-element="sms"]');
+ smsForm = modal.querySelector('[data-kt-element="sms-form"]');
+ smsSubmitButton = modal.querySelector('[data-kt-element="sms-submit"]');
+ smsCancelButton = modal.querySelector('[data-kt-element="sms-cancel"]');
+
+ appsWrapper = modal.querySelector('[data-kt-element="apps"]');
+ appsForm = modal.querySelector('[data-kt-element="apps-form"]');
+ appsSubmitButton = modal.querySelector('[data-kt-element="apps-submit"]');
+ appsCancelButton = modal.querySelector('[data-kt-element="apps-cancel"]');
+
+ // Handle forms
+ handleOptionsForm();
+ handleSMSForm();
+ handleAppsForm();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTModalTwoFactorAuthentication.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/upgrade-plan.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/upgrade-plan.js
new file mode 100644
index 0000000..47f69b0
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/upgrade-plan.js
@@ -0,0 +1,118 @@
+"use strict";
+
+// Class definition
+var KTModalUpgradePlan = function () {
+ // Private variables
+ var modal;
+ var planPeriodMonthButton;
+ var planPeriodAnnualButton;
+ var planUpgradeButton;
+
+ // Private functions
+ var changePlanPrices = function(type) {
+ var items = [].slice.call(modal.querySelectorAll('[data-kt-plan-price-month]'));
+
+ items.map(function (item) {
+ var monthPrice = item.getAttribute('data-kt-plan-price-month');
+ var annualPrice = item.getAttribute('data-kt-plan-price-annual');
+
+ if ( type === 'month' ) {
+ item.innerHTML = monthPrice;
+ } else if ( type === 'annual' ) {
+ item.innerHTML = annualPrice;
+ }
+ });
+ }
+
+ var handlePlanPeriodSelection = function() {
+ // Handle period change
+ planPeriodMonthButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ planPeriodMonthButton.classList.add('active');
+ planPeriodAnnualButton.classList.remove('active');
+
+ changePlanPrices('month');
+ });
+
+ planPeriodAnnualButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ planPeriodMonthButton.classList.remove('active');
+ planPeriodAnnualButton.classList.add('active');
+
+ changePlanPrices('annual');
+ });
+ }
+
+ var handlePlanUpgrade = function () {
+ if ( !planUpgradeButton ) {
+ return;
+ }
+
+ planUpgradeButton.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ var el = this;
+
+ swal.fire({
+ text: "Are you sure you would like to upgrade to selected plan ?",
+ icon: "warning",
+ buttonsStyling: false,
+ showDenyButton: true,
+ confirmButtonText: "Yes",
+ denyButtonText: 'No',
+ customClass: {
+ confirmButton: "btn btn-primary",
+ denyButton: "btn btn-light-danger"
+ }
+ }).then((result) => {
+ if (result.isConfirmed) {
+ el.setAttribute('data-kt-indicator', 'on');
+ el.disabled = true;
+
+ setTimeout(function() {
+ Swal.fire({
+ text: 'Your subscription plan has been successfully upgraded',
+ icon: 'success',
+ confirmButtonText: "Ok",
+ buttonsStyling: false,
+ customClass: {
+ confirmButton: "btn btn-light-primary"
+ }
+ }).then((result) => {
+ bootstrap.Modal.getInstance(modal).hide();
+ })
+
+ }, 2000);
+ }
+ });
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ modal = document.querySelector('#kt_modal_upgrade_plan');
+
+ if (!modal) {
+ return;
+ }
+
+ planPeriodMonthButton = modal.querySelector('[data-kt-plan="month"]');
+ planPeriodAnnualButton = modal.querySelector('[data-kt-plan="annual"]');
+ planUpgradeButton = document.querySelector('#kt_modal_upgrade_plan_btn');
+
+ // Handlers
+ handlePlanPeriodSelection();
+ handlePlanUpgrade();
+ changePlanPrices();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTModalUpgradePlan.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/users-search.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/users-search.js
new file mode 100644
index 0000000..1ac2964
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/modals/users-search.js
@@ -0,0 +1,77 @@
+"use strict";
+
+// Class definition
+var KTModalUserSearch = function () {
+ // Private variables
+ var element;
+ var suggestionsElement;
+ var resultsElement;
+ var wrapperElement;
+ var emptyElement;
+ var searchObject;
+
+ // Private functions
+ var processs = function (search) {
+ var timeout = setTimeout(function () {
+ var number = KTUtil.getRandomInt(1, 3);
+
+ // Hide recently viewed
+ suggestionsElement.classList.add('d-none');
+
+ if (number === 3) {
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Show empty message
+ emptyElement.classList.remove('d-none');
+ } else {
+ // Show results
+ resultsElement.classList.remove('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+ }
+
+ // Complete search
+ search.complete();
+ }, 1500);
+ }
+
+ var clear = function (search) {
+ // Show recently viewed
+ suggestionsElement.classList.remove('d-none');
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ element = document.querySelector('#kt_modal_users_search_handler');
+
+ if (!element) {
+ return;
+ }
+
+ wrapperElement = element.querySelector('[data-kt-search-element="wrapper"]');
+ suggestionsElement = element.querySelector('[data-kt-search-element="suggestions"]');
+ resultsElement = element.querySelector('[data-kt-search-element="results"]');
+ emptyElement = element.querySelector('[data-kt-search-element="empty"]');
+
+ // Initialize search handler
+ searchObject = new KTSearch(element);
+
+ // Search handler
+ searchObject.on('kt.search.process', processs);
+
+ // Clear handler
+ searchObject.on('kt.search.clear', clear);
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTModalUserSearch.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/search/horizontal.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/search/horizontal.js
new file mode 100644
index 0000000..2ad9dd7
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/utilities/search/horizontal.js
@@ -0,0 +1,40 @@
+"use strict";
+
+// Class definition
+var KTSearchHorizontal = function () {
+ // Private functions
+ var initAdvancedSearchForm = function () {
+ var form = document.querySelector('#kt_advanced_search_form');
+
+ // Init tags
+ var tags = form.querySelector('[name="tags"]');
+ new Tagify(tags);
+ }
+
+ var handleAdvancedSearchToggle = function () {
+ var link = document.querySelector('#kt_horizontal_search_advanced_link');
+
+ link.addEventListener('click', function (e) {
+ e.preventDefault();
+
+ if (link.innerHTML === "Advanced Search") {
+ link.innerHTML = "Hide Advanced Search";
+ } else {
+ link.innerHTML = "Advanced Search";
+ }
+ })
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ initAdvancedSearchForm();
+ handleAdvancedSearchToggle();
+ }
+ }
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSearchHorizontal.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/custom/widgets.js b/think-backend.greaterchiangmai.com/public/assets/js/custom/widgets.js
new file mode 100644
index 0000000..1c40918
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/custom/widgets.js
@@ -0,0 +1,3597 @@
+"use strict";
+
+// Class definition
+var KTWidgets = function () {
+ // Statistics widgets
+ var initStatisticsWidget3 = function() {
+ var charts = document.querySelectorAll('.statistics-widget-3-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 45, 32, 70, 40]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 0.3
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: '#E4E6EF',
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 80,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function(val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor],
+ markers: {
+ colors: [baseColor],
+ strokeColor: [lightColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initStatisticsWidget4 = function() {
+ var charts = document.querySelectorAll('.statistics-widget-4-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light' );
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [40, 40, 30, 30, 35, 35, 50]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 0.3
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: '#E4E6EF',
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function(val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor],
+ markers: {
+ colors: [baseColor],
+ strokeColor: [lightColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ // Charts widgets
+ var initChartsWidget1 = function() {
+ var element = document.getElementById("kt_charts_widget_1_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var baseColor = KTUtil.getCssVariableValue('--bs-primary');
+ var secondaryColor = KTUtil.getCssVariableValue('--bs-gray-300');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [44, 55, 57, 56, 61, 58]
+ }, {
+ name: 'Revenue',
+ data: [76, 85, 101, 98, 87, 105]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'bar',
+ height: height,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ['30%'],
+ borderRadius: [6]
+ },
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ opacity: 1
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget2 = function() {
+ var element = document.getElementById("kt_charts_widget_2_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var baseColor = KTUtil.getCssVariableValue('--bs-warning');
+ var secondaryColor = KTUtil.getCssVariableValue('--bs-gray-300');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [44, 55, 57, 56, 61, 58]
+ }, {
+ name: 'Revenue',
+ data: [76, 85, 101, 98, 87, 105]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'bar',
+ height: height,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ['30%'],
+ borderRadius: 4
+ },
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ opacity: 1
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget3 = function() {
+ var element = document.getElementById("kt_charts_widget_3_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var baseColor = KTUtil.getCssVariableValue('--bs-info');
+ var lightColor = KTUtil.getCssVariableValue('--bs-info-light');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 40, 40, 90, 90, 70, 70]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: 350,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ position: 'front',
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget4 = function() {
+ var element = document.getElementById("kt_charts_widget_4_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+
+ var baseColor = KTUtil.getCssVariableValue('--bs-success');
+ var baseLightColor = KTUtil.getCssVariableValue('--bs-success-light');
+ var secondaryColor = KTUtil.getCssVariableValue('--bs-warning');
+ var secondaryLightColor = KTUtil.getCssVariableValue('--bs-warning-light');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [60, 50, 80, 40, 100, 60]
+ }, {
+ name: 'Revenue',
+ data: [70, 60, 110, 40, 50, 70]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: 350,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth'
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ position: 'front',
+ stroke: {
+ color: labelColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ },
+ markers: {
+ colors: [baseLightColor, secondaryLightColor],
+ strokeColor: [baseLightColor, secondaryLightColor],
+ strokeWidth: 3
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget5 = function() {
+ var element = document.getElementById("kt_charts_widget_5_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+
+ var baseColor = KTUtil.getCssVariableValue('--bs-primary');
+ var secondaryColor = KTUtil.getCssVariableValue('--bs-info');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [40, 50, 65, 70, 50, 30]
+ }, {
+ name: 'Revenue',
+ data: [-30, -40, -55, -60, -40, -20]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'bar',
+ stacked: true,
+ height: 350,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ['12%'],
+ borderRadius: [6, 6]
+ },
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: -80,
+ max: 80,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ opacity: 1
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget6 = function() {
+ var element = document.getElementById("kt_charts_widget_6_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+
+ var baseColor = KTUtil.getCssVariableValue('--bs-primary');
+ var baseLightColor = KTUtil.getCssVariableValue('--bs-primary-light');
+ var secondaryColor = KTUtil.getCssVariableValue('--bs-info');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ type: 'bar',
+ stacked: true,
+ data: [40, 50, 65, 70, 50, 30]
+ }, {
+ name: 'Revenue',
+ type: 'bar',
+ stacked: true,
+ data: [20, 20, 25, 30, 30, 20]
+ }, {
+ name: 'Expenses',
+ type: 'area',
+ data: [50, 80, 60, 90, 50, 70]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ stacked: true,
+ height: 350,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+ bar: {
+ stacked: true,
+ horizontal: false,
+ borderRadius: 4,
+ columnWidth: ['12%']
+ },
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 2,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ max: 120,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ opacity: 1
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [baseColor, secondaryColor, baseLightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ },
+ padding: {
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0
+ }
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget7 = function() {
+ var element = document.getElementById("kt_charts_widget_7_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-gray-300');
+
+ var color1 = KTUtil.getCssVariableValue('--bs-warning');
+ var color1Light = KTUtil.getCssVariableValue('--bs-warning-light');
+
+ var color2 = KTUtil.getCssVariableValue('--bs-success');
+ var color2Light = KTUtil.getCssVariableValue('--bs-success-light');
+
+ var color3 = KTUtil.getCssVariableValue('--bs-primary');
+ var color3Light = KTUtil.getCssVariableValue('--bs-primary-light');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 30, 50, 50, 35, 35]
+ }, {
+ name: 'Revenue',
+ data: [55, 20, 20, 20, 70, 70]
+ }, {
+ name: 'Expenses',
+ data: [60, 60, 40, 40, 30, 30]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 2,
+ colors: [color1, 'transparent', 'transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [color1, color2, color3],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ },
+ markers: {
+ colors: [color1Light, color2Light, color3Light],
+ strokeColor: [color1, color2, color3],
+ strokeWidth: 3
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ var initChartsWidget8 = function() {
+ var element = document.getElementById("kt_charts_widget_8_chart");
+
+ if ( !element ) {
+ return;
+ }
+
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ var initChart = function() {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-gray-300');
+
+ var color1 = KTUtil.getCssVariableValue('--bs-warning');
+ var color1Light = KTUtil.getCssVariableValue('--bs-warning-light');
+
+ var color2 = KTUtil.getCssVariableValue('--bs-success');
+ var color2Light = KTUtil.getCssVariableValue('--bs-success-light');
+
+ var color3 = KTUtil.getCssVariableValue('--bs-primary');
+ var color3Light = KTUtil.getCssVariableValue('--bs-primary-light');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 30, 50, 50, 35, 35]
+ }, {
+ name: 'Revenue',
+ data: [55, 20, 20, 20, 70, 70]
+ }, {
+ name: 'Expenses',
+ data: [60, 60, 40, 40, 30, 30]
+ },],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 2,
+ colors: [color1, color2, color3]
+ },
+ xaxis: {
+ x: 0,
+ offsetX: 0,
+ offsetY: 0,
+ padding: {
+ left: 0,
+ right: 0,
+ top: 0,
+ },
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ y: 0,
+ offsetX: 0,
+ offsetY: 0,
+ padding: {
+ left: 0,
+ right: 0
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [color1Light, color2Light, color3Light],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ padding: {
+ top: 0,
+ bottom: 0,
+ left: 0,
+ right: 0
+ }
+ },
+ markers: {
+ colors: [color1, color2, color3],
+ strokeColor: [color1, color2, color3],
+ strokeWidth: 3
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ }
+
+ // Init chart
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ // Mixed widgets
+ var initMixedWidget2 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-2-chart');
+
+ var color;
+ var strokeColor;
+ var height;
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var options;
+ var chart;
+
+ [].slice.call(charts).map(function(element) {
+ height = parseInt(KTUtil.css(element, 'height'));
+ color = KTUtil.getCssVariableValue('--bs-' + element.getAttribute("data-kt-color"));
+ strokeColor = KTUtil.colorDarken(color, 15);
+
+ options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 45, 32, 70, 40, 40, 40]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ },
+ dropShadow: {
+ enabled: true,
+ enabledOnSeries: undefined,
+ top: 5,
+ left: 0,
+ blur: 3,
+ color: strokeColor,
+ opacity: 0.5
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 0
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [strokeColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: borderColor,
+ width: 1,
+ dashArray: 3
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 80,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px',
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ },
+ marker: {
+ show: false
+ }
+ },
+ colors: ['transparent'],
+ markers: {
+ colors: [color],
+ strokeColor: [strokeColor],
+ strokeWidth: 3
+ }
+ };
+
+ chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget3 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-3-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'gray-300');
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light' );
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 25, 45, 30, 55, 55]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget4 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-4-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light' );
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-700');
+
+ var options = {
+ series: [74],
+ chart: {
+ fontFamily: 'inherit',
+ height: height,
+ type: 'radialBar',
+ },
+ plotOptions: {
+ radialBar: {
+ hollow: {
+ margin: 0,
+ size: "65%"
+ },
+ dataLabels: {
+ showOn: "always",
+ name: {
+ show: false,
+ fontWeight: '700'
+ },
+ value: {
+ color: labelColor,
+ fontSize: "30px",
+ fontWeight: '700',
+ offsetY: 12,
+ show: true,
+ formatter: function (val) {
+ return val + '%';
+ }
+ }
+ },
+ track: {
+ background: lightColor,
+ strokeWidth: '100%'
+ }
+ }
+ },
+ colors: [baseColor],
+ stroke: {
+ lineCap: "round",
+ },
+ labels: ["Progress"]
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget5 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-5-chart');
+
+ var initChart = function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'gray-300');
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light' );
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 30, 60, 25, 25, 40]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ fill1: {
+ type: 'gradient',
+ opacity: 1,
+ gradient: {
+ type: "vertical",
+ shadeIntensity: 0.5,
+ gradientToColors: undefined,
+ inverseColors: true,
+ opacityFrom: 1,
+ opacityTo: 0.375,
+ stops: [25, 50, 100],
+ colorStops: []
+ }
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 65,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+ };
+
+ [].slice.call(charts).map(function(element) {
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ initChart(element);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ });
+ }
+
+ var initMixedWidget6 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-6-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'gray-300');
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light' );
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 25, 45, 30, 55, 55]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget7 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-7-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'gray-300');
+ var baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+ var lightColor = KTUtil.getCssVariableValue('--bs-' + color + '-light');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [15, 25, 15, 40, 20, 50]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [baseColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget10 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-10-chart');
+
+ var color;
+ var height;
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var baseLightColor;
+ var secondaryColor = KTUtil.getCssVariableValue('--bs-gray-300');
+ var baseColor;
+ var options;
+ var chart;
+
+ [].slice.call(charts).map(function(element) {
+ color = element.getAttribute("data-kt-color");
+ height = parseInt(KTUtil.css(element, 'height'));
+ baseColor = KTUtil.getCssVariableValue('--bs-' + color);
+
+ options = {
+ series: [{
+ name: 'Net Profit',
+ data: [50, 60, 70, 80, 60, 50, 70, 60]
+ }, {
+ name: 'Revenue',
+ data: [50, 60, 70, 80, 60, 50, 70, 60]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'bar',
+ height: height,
+ toolbar: {
+ show: false
+ }
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ['50%'],
+ borderRadius: 4
+ },
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ y: 0,
+ offsetX: 0,
+ offsetY: 0,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ type: 'solid'
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " revenue"
+ }
+ }
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ padding: {
+ top: 10
+ },
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ }
+ }
+ };
+
+ chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget12 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-12-chart');
+
+ var color;
+ var strokeColor;
+ var height;
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-500');
+ var borderColor = KTUtil.getCssVariableValue('--bs-gray-200');
+ var options;
+ var chart;
+
+ [].slice.call(charts).map(function(element) {
+ height = parseInt(KTUtil.css(element, 'height'));
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [35, 65, 75, 55, 45, 60, 55]
+ }, {
+ name: 'Revenue',
+ data: [40, 70, 80, 60, 50, 65, 60]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'bar',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ sparkline: {
+ enabled: true
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ['30%'],
+ borderRadius: 2
+ }
+ },
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ show: true,
+ width: 1,
+ colors: ['transparent']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 100,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ fill: {
+ type: ['solid', 'solid'],
+ opacity: [0.25, 1]
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ },
+ marker: {
+ show: false
+ }
+ },
+ colors: ['#ffffff', '#ffffff'],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true
+ }
+ },
+ padding: {
+ left: 20,
+ right: 20
+ }
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render()
+ });
+ }
+
+ var initMixedWidget13 = function() {
+ var height;
+ var charts = document.querySelectorAll('.mixed-widget-13-chart');
+
+ [].slice.call(charts).map(function(element) {
+ height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'gray-300');
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [15, 25, 15, 40, 20, 50]
+ }],
+ grid: {
+ show: false,
+ padding: {
+ top: 0,
+ bottom: 0,
+ left: 0,
+ right: 0
+ }
+ },
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'gradient',
+ gradient: {
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [20, 120, 120, 120]
+ }
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: ['#FFFFFF']
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: ['#ffffff'],
+ markers: {
+ colors: [labelColor],
+ strokeColor: [strokeColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget14 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-14-chart');
+ var options;
+ var chart;
+ var height;
+
+ [].slice.call(charts).map(function(element) {
+ height = parseInt(KTUtil.css(element, 'height'));
+ var labelColor = KTUtil.getCssVariableValue('--bs-gray-800');
+
+ options = {
+ series: [{
+ name: 'Inflation',
+ data: [1, 2.1, 1, 2.1, 4.1, 6.1, 4.1, 4.1, 2.1, 4.1, 2.1, 3.1, 1, 1, 2.1]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ height: height,
+ type: 'bar',
+ toolbar: {
+ show: false
+ }
+ },
+ grid: {
+ show: false,
+ padding: {
+ top: 0,
+ bottom: 0,
+ left: 0,
+ right: 0
+ }
+ },
+ colors: ['#ffffff'],
+ plotOptions: {
+ bar: {
+ borderRadius: 2.5,
+ dataLabels: {
+ position: 'top', // top, center, bottom
+ },
+ columnWidth: '20%'
+ }
+ },
+ dataLabels: {
+ enabled: false,
+ formatter: function(val) {
+ return val + "%";
+ },
+ offsetY: -20,
+ style: {
+ fontSize: '12px',
+ colors: ["#304758"]
+ }
+ },
+ xaxis: {
+ labels: {
+ show: false,
+ },
+ categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar"],
+ position: 'top',
+ axisBorder: {
+ show: false
+ },
+ axisTicks: {
+ show: false
+ },
+ crosshairs: {
+ show: false
+ },
+ tooltip: {
+ enabled: false
+ }
+ },
+ yaxis: {
+ show: false,
+ axisBorder: {
+ show: false
+ },
+ axisTicks: {
+ show: false,
+ background: labelColor
+ },
+ labels: {
+ show: false,
+ formatter: function(val) {
+ return val + "%";
+ }
+ }
+ }
+ };
+
+ chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget16 = function() {
+ var element = document.getElementById("kt_charts_mixed_widget_16_chart");
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if (!element) {
+ return;
+ }
+
+ var options = {
+ labels: ["Total Members"],
+ series: [74],
+ chart: {
+ fontFamily: 'inherit',
+ height: height,
+ type: 'radialBar',
+ offsetY: 0
+ },
+ plotOptions: {
+ radialBar: {
+ startAngle: -90,
+ endAngle: 90,
+
+ hollow: {
+ margin: 0,
+ size: "70%"
+ },
+ dataLabels: {
+ showOn: "always",
+ name: {
+ show: true,
+ fontSize: "13px",
+ fontWeight: "700",
+ offsetY: -5,
+ color: KTUtil.getCssVariableValue('--bs-gray-500')
+ },
+ value: {
+ color: KTUtil.getCssVariableValue('--bs-gray-700'),
+ fontSize: "30px",
+ fontWeight: "700",
+ offsetY: -40,
+ show: true
+ }
+ },
+ track: {
+ background: KTUtil.getCssVariableValue('--bs-primary-light'),
+ strokeWidth: '100%'
+ }
+ }
+ },
+ colors: [KTUtil.getCssVariableValue('--bs-primary')],
+ stroke: {
+ lineCap: "round",
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ }
+
+ var initMixedWidget17 = function() {
+ var charts = document.querySelectorAll('.mixed-widget-17-chart');
+
+ [].slice.call(charts).map(function(element) {
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute('data-kt-chart-color');
+
+ var options = {
+ labels: ["Total Orders"],
+ series: [75],
+ chart: {
+ fontFamily: 'inherit',
+ height: height,
+ type: 'radialBar',
+ offsetY: 0
+ },
+ plotOptions: {
+ radialBar: {
+ startAngle: -90,
+ endAngle: 90,
+ hollow: {
+ margin: 0,
+ size: "55%"
+ },
+ dataLabels: {
+ showOn: "always",
+ name: {
+ show: true,
+ fontSize: "12px",
+ fontWeight: "700",
+ offsetY: -5,
+ color: KTUtil.getCssVariableValue('--bs-gray-500')
+ },
+ value: {
+ color: KTUtil.getCssVariableValue('--bs-gray-900'),
+ fontSize: "24px",
+ fontWeight: "600",
+ offsetY: -40,
+ show: true,
+ formatter: function (value) {
+ return '8,346';
+ }
+ }
+ },
+ track: {
+ background: KTUtil.getCssVariableValue('--bs-gray-300'),
+ strokeWidth: '100%'
+ }
+ }
+ },
+ colors: [KTUtil.getCssVariableValue('--bs-' + color)],
+ stroke: {
+ lineCap: "round",
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ });
+ }
+
+ var initMixedWidget18 = function() {
+ var element = document.getElementById("kt_charts_mixed_widget_18_chart");
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var fillColor = KTThemeMode.getMode() === "dark" ? KTUtil.getCssVariableValue('--bs-gray-200') : '#D6D6E0';
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 25, 45, 30, 55, 55]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [strokeColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [fillColor],
+ markers: {
+ colors: [fillColor],
+ strokeColor: [strokeColor],
+ strokeWidth: 3
+ }
+ };
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ }
+
+ var initMixedWidget19 = function() {
+ var chart = {
+ self: null,
+ rendered: false
+ };
+
+ function initChart() {
+ var element = document.getElementById("kt_charts_mixed_widget_19_chart");
+ var height = parseInt(KTUtil.css(element, 'height'));
+
+ if ( !element ) {
+ return;
+ }
+
+ var labelColor = KTUtil.getCssVariableValue('--bs-' + 'gray-800');
+ var strokeColor = KTUtil.getCssVariableValue('--bs-' + 'info');
+ var fillColor = KTUtil.getCssVariableValue('--bs-info-light')
+
+ var options = {
+ series: [{
+ name: 'Net Profit',
+ data: [30, 25, 45, 30, 55, 55]
+ }],
+ chart: {
+ fontFamily: 'inherit',
+ type: 'area',
+ height: height,
+ toolbar: {
+ show: false
+ },
+ zoom: {
+ enabled: false
+ },
+ sparkline: {
+ enabled: true
+ }
+ },
+ plotOptions: {},
+ legend: {
+ show: false
+ },
+ dataLabels: {
+ enabled: false
+ },
+ fill: {
+ type: 'solid',
+ opacity: 1
+ },
+ stroke: {
+ curve: 'smooth',
+ show: true,
+ width: 3,
+ colors: [strokeColor]
+ },
+ xaxis: {
+ categories: ['Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ },
+ crosshairs: {
+ show: false,
+ position: 'front',
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3
+ }
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: '12px'
+ }
+ }
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: '12px'
+ }
+ }
+ },
+ states: {
+ normal: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ hover: {
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: 'none',
+ value: 0
+ }
+ }
+ },
+ tooltip: {
+ style: {
+ fontSize: '12px'
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands"
+ }
+ }
+ },
+ colors: [fillColor],
+ markers: {
+ colors: [fillColor],
+ strokeColor: [strokeColor],
+ strokeWidth: 3
+ }
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function() {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ }
+
+ // Feeds Widgets
+ var initFeedWidget1 = function() {
+ var formEl = document.querySelector("#kt_forms_widget_1_form");
+ var editorId = 'kt_forms_widget_1_editor';
+
+ if ( !formEl ) {
+ return;
+ }
+
+ // init editor
+ var options = {
+ modules: {
+ toolbar: {
+ container: "#kt_forms_widget_1_editor_toolbar"
+ }
+ },
+ placeholder: 'What is on your mind ?',
+ theme: 'snow'
+ };
+
+ if (!formEl) {
+ return;
+ }
+
+ // Init editor
+ var editorObj = new Quill('#' + editorId, options);
+ }
+
+ var initFeedsWidget4 = function() {
+ var btn = document.querySelector('#kt_widget_5_load_more_btn');
+ var widget5 = document.querySelector('#kt_widget_5');
+
+ if (btn) {
+ btn.addEventListener('click', function(e){
+ e.preventDefault();
+ btn.setAttribute('data-kt-indicator', 'on');
+
+ setTimeout(function() {
+ btn.removeAttribute('data-kt-indicator');
+ widget5.classList.remove('d-none');
+ btn.classList.add('d-none');
+
+ KTUtil.scrollTo(widget5, 200);
+ }, 2000);
+ });
+ }
+ }
+
+ // Calendar
+ var initCalendarWidget1 = function() {
+ if (typeof FullCalendar === 'undefined' || !document.querySelector('#kt_calendar_widget_1')) {
+ return;
+ }
+
+ var todayDate = moment().startOf('day');
+ var YM = todayDate.format('YYYY-MM');
+ var YESTERDAY = todayDate.clone().subtract(1, 'day').format('YYYY-MM-DD');
+ var TODAY = todayDate.format('YYYY-MM-DD');
+ var TOMORROW = todayDate.clone().add(1, 'day').format('YYYY-MM-DD');
+
+ var calendarEl = document.getElementById('kt_calendar_widget_1');
+ var calendar = new FullCalendar.Calendar(calendarEl, {
+ headerToolbar: {
+ left: 'prev,next today',
+ center: 'title',
+ right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
+ },
+
+ height: 800,
+ contentHeight: 780,
+ aspectRatio: 3, // see: https://fullcalendar.io/docs/aspectRatio
+
+ nowIndicator: true,
+ now: TODAY + 'T09:25:00', // just for demo
+
+ views: {
+ dayGridMonth: { buttonText: 'month' },
+ timeGridWeek: { buttonText: 'week' },
+ timeGridDay: { buttonText: 'day' }
+ },
+
+ initialView: 'dayGridMonth',
+ initialDate: TODAY,
+
+ editable: true,
+ dayMaxEvents: true, // allow "more" link when too many events
+ navLinks: true,
+ events: [
+ {
+ title: 'All Day Event',
+ start: YM + '-01',
+ description: 'Toto lorem ipsum dolor sit incid idunt ut',
+ className: "fc-event-danger fc-event-solid-warning"
+ },
+ {
+ title: 'Reporting',
+ start: YM + '-14T13:30:00',
+ description: 'Lorem ipsum dolor incid idunt ut labore',
+ end: YM + '-14',
+ className: "fc-event-success"
+ },
+ {
+ title: 'Company Trip',
+ start: YM + '-02',
+ description: 'Lorem ipsum dolor sit tempor incid',
+ end: YM + '-03',
+ className: "fc-event-primary"
+ },
+ {
+ title: 'ICT Expo 2017 - Product Release',
+ start: YM + '-03',
+ description: 'Lorem ipsum dolor sit tempor inci',
+ end: YM + '-05',
+ className: "fc-event-light fc-event-solid-primary"
+ },
+ {
+ title: 'Dinner',
+ start: YM + '-12',
+ description: 'Lorem ipsum dolor sit amet, conse ctetur',
+ end: YM + '-10'
+ },
+ {
+ id: 999,
+ title: 'Repeating Event',
+ start: YM + '-09T16:00:00',
+ description: 'Lorem ipsum dolor sit ncididunt ut labore',
+ className: "fc-event-danger"
+ },
+ {
+ id: 1000,
+ title: 'Repeating Event',
+ description: 'Lorem ipsum dolor sit amet, labore',
+ start: YM + '-16T16:00:00'
+ },
+ {
+ title: 'Conference',
+ start: YESTERDAY,
+ end: TOMORROW,
+ description: 'Lorem ipsum dolor eius mod tempor labore',
+ className: "fc-event-primary"
+ },
+ {
+ title: 'Meeting',
+ start: TODAY + 'T10:30:00',
+ end: TODAY + 'T12:30:00',
+ description: 'Lorem ipsum dolor eiu idunt ut labore'
+ },
+ {
+ title: 'Lunch',
+ start: TODAY + 'T12:00:00',
+ className: "fc-event-info",
+ description: 'Lorem ipsum dolor sit amet, ut labore'
+ },
+ {
+ title: 'Meeting',
+ start: TODAY + 'T14:30:00',
+ className: "fc-event-warning",
+ description: 'Lorem ipsum conse ctetur adipi scing'
+ },
+ {
+ title: 'Happy Hour',
+ start: TODAY + 'T17:30:00',
+ className: "fc-event-info",
+ description: 'Lorem ipsum dolor sit amet, conse ctetur'
+ },
+ {
+ title: 'Dinner',
+ start: TOMORROW + 'T05:00:00',
+ className: "fc-event-solid-danger fc-event-light",
+ description: 'Lorem ipsum dolor sit ctetur adipi scing'
+ },
+ {
+ title: 'Birthday Party',
+ start: TOMORROW + 'T07:00:00',
+ className: "fc-event-primary",
+ description: 'Lorem ipsum dolor sit amet, scing'
+ },
+ {
+ title: 'Click for Google',
+ url: 'http://google.com/',
+ start: YM + '-28',
+ className: "fc-event-solid-info fc-event-light",
+ description: 'Lorem ipsum dolor sit amet, labore'
+ }
+ ]
+ });
+
+ calendar.render();
+ }
+
+ // Daterangepicker
+ var initDaterangepicker = function () {
+ if (!document.querySelector('#kt_dashboard_daterangepicker')) {
+ return;
+ }
+
+ var picker = $('#kt_dashboard_daterangepicker');
+ var start = moment();
+ var end = moment();
+
+ function cb(start, end, label) {
+ var title = '';
+ var range = '';
+
+ if ((end - start) < 100 || label == 'Today') {
+ title = 'Today:';
+ range = start.format('MMM D');
+ } else if (label == 'Yesterday') {
+ title = 'Yesterday:';
+ range = start.format('MMM D');
+ } else {
+ range = start.format('MMM D') + ' - ' + end.format('MMM D');
+ }
+
+ $('#kt_dashboard_daterangepicker_date').html(range);
+ $('#kt_dashboard_daterangepicker_title').html(title);
+ }
+
+ picker.daterangepicker({
+ direction: KTUtil.isRTL(),
+ startDate: start,
+ endDate: end,
+ opens: 'left',
+ applyClass: 'btn-primary',
+ cancelClass: 'btn-light-primary',
+ ranges: {
+ 'Today': [moment(), moment()],
+ 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
+ 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
+ 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
+ 'This Month': [moment().startOf('month'), moment().endOf('month')],
+ 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
+ }
+ }, cb);
+
+ cb(start, end, '');
+ }
+
+ // Dark mode toggler
+ var initDarkModeToggle = function() {
+ var toggle = document.querySelector('#kt_user_menu_dark_mode_toggle');
+
+ if (toggle) {
+ toggle.addEventListener('click', function() {
+ window.location.href = this.getAttribute('data-kt-url');
+ });
+ }
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Daterangepicker
+ initDaterangepicker();
+
+ // Dark Mode
+ initDarkModeToggle();
+
+ // Statistics widgets
+ initStatisticsWidget3();
+ initStatisticsWidget4();
+
+ // Charts widgets
+ initChartsWidget1();
+ initChartsWidget2();
+ initChartsWidget3();
+ initChartsWidget4();
+ initChartsWidget5();
+ initChartsWidget6();
+ initChartsWidget7();
+ initChartsWidget8();
+
+ // Mixed widgets
+ initMixedWidget2();
+ initMixedWidget3();
+ initMixedWidget4();
+ initMixedWidget5();
+ initMixedWidget6();
+ initMixedWidget7();
+ initMixedWidget10();
+ initMixedWidget12();
+ initMixedWidget13();
+ initMixedWidget14();
+ initMixedWidget16();
+ initMixedWidget17();
+ initMixedWidget18();
+ initMixedWidget19();
+
+ // Feeds
+ initFeedWidget1();
+ initFeedsWidget4();
+
+ // Calendar
+ initCalendarWidget1();
+ }
+ }
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTWidgets;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTWidgets.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/scripts.bundle.js b/think-backend.greaterchiangmai.com/public/assets/js/scripts.bundle.js
new file mode 100644
index 0000000..abd6ce4
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/scripts.bundle.js
@@ -0,0 +1,8194 @@
+"use strict";
+
+// Class definition
+var KTApp = function () {
+ var initialized = false;
+ var select2FocusFixInitialized = false;
+ var countUpInitialized = false;
+
+ var createBootstrapTooltip = function (el, options) {
+ if (el.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ var delay = {};
+
+ // Handle delay options
+ if (el.hasAttribute('data-bs-delay-hide')) {
+ delay['hide'] = el.getAttribute('data-bs-delay-hide');
+ }
+
+ if (el.hasAttribute('data-bs-delay-show')) {
+ delay['show'] = el.getAttribute('data-bs-delay-show');
+ }
+
+ if (delay) {
+ options['delay'] = delay;
+ }
+
+ // Check dismiss options
+ if (el.hasAttribute('data-bs-dismiss') && el.getAttribute('data-bs-dismiss') == 'click') {
+ options['dismiss'] = 'click';
+ }
+
+ // Initialize popover
+ var tp = new bootstrap.Tooltip(el, options);
+
+ // Handle dismiss
+ if (options['dismiss'] && options['dismiss'] === 'click') {
+ // Hide popover on element click
+ el.addEventListener("click", function (e) {
+ tp.hide();
+ });
+ }
+
+ el.setAttribute("data-kt-initialized", "1");
+
+ return tp;
+ }
+
+ var createBootstrapTooltips = function () {
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
+
+ var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
+ createBootstrapTooltip(tooltipTriggerEl, {});
+ });
+ }
+
+ var createBootstrapPopover = function (el, options) {
+ if (el.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ var delay = {};
+
+ // Handle delay options
+ if (el.hasAttribute('data-bs-delay-hide')) {
+ delay['hide'] = el.getAttribute('data-bs-delay-hide');
+ }
+
+ if (el.hasAttribute('data-bs-delay-show')) {
+ delay['show'] = el.getAttribute('data-bs-delay-show');
+ }
+
+ if (delay) {
+ options['delay'] = delay;
+ }
+
+ // Handle dismiss option
+ if (el.getAttribute('data-bs-dismiss') == 'true') {
+ options['dismiss'] = true;
+ }
+
+ if (options['dismiss'] === true) {
+ options['template'] = ''
+ }
+
+ // Initialize popover
+ var popover = new bootstrap.Popover(el, options);
+
+ // Handle dismiss click
+ if (options['dismiss'] === true) {
+ var dismissHandler = function (e) {
+ popover.hide();
+ }
+
+ el.addEventListener('shown.bs.popover', function () {
+ var dismissEl = document.getElementById(el.getAttribute('aria-describedby'));
+ dismissEl.addEventListener('click', dismissHandler);
+ });
+
+ el.addEventListener('hide.bs.popover', function () {
+ var dismissEl = document.getElementById(el.getAttribute('aria-describedby'));
+ dismissEl.removeEventListener('click', dismissHandler);
+ });
+ }
+
+ el.setAttribute("data-kt-initialized", "1");
+
+ return popover;
+ }
+
+ var createBootstrapPopovers = function () {
+ var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
+
+ var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
+ createBootstrapPopover(popoverTriggerEl, {});
+ });
+ }
+
+ var createBootstrapToasts = function () {
+ var toastElList = [].slice.call(document.querySelectorAll('.toast'));
+ var toastList = toastElList.map(function (toastEl) {
+ if (toastEl.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ toastEl.setAttribute("data-kt-initialized", "1");
+
+ return new bootstrap.Toast(toastEl, {})
+ });
+ }
+
+ var createButtons = function () {
+ var buttonsGroup = [].slice.call(document.querySelectorAll('[data-kt-buttons="true"]'));
+
+ buttonsGroup.map(function (group) {
+ if (group.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ var selector = group.hasAttribute('data-kt-buttons-target') ? group.getAttribute('data-kt-buttons-target') : '.btn';
+ var activeButtons = [].slice.call(group.querySelectorAll(selector));
+
+ // Toggle Handler
+ KTUtil.on(group, selector, 'click', function (e) {
+ activeButtons.map(function (button) {
+ button.classList.remove('active');
+ });
+
+ this.classList.add('active');
+ });
+
+ group.setAttribute("data-kt-initialized", "1");
+ });
+ }
+
+ var createDateRangePickers = function() {
+ // Check if jQuery included
+ if (typeof jQuery == 'undefined') {
+ return;
+ }
+
+ // Check if daterangepicker included
+ if (typeof $.fn.daterangepicker === 'undefined') {
+ return;
+ }
+
+ var elements = [].slice.call(document.querySelectorAll('[data-kt-daterangepicker="true"]'));
+ var start = moment().subtract(29, 'days');
+ var end = moment();
+
+ elements.map(function (element) {
+ if (element.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ var display = element.querySelector('div');
+ var attrOpens = element.hasAttribute('data-kt-daterangepicker-opens') ? element.getAttribute('data-kt-daterangepicker-opens') : 'left';
+ var range = element.getAttribute('data-kt-daterangepicker-range');
+
+ var cb = function(start, end) {
+ var current = moment();
+
+ if (display) {
+ if ( current.isSame(start, "day") && current.isSame(end, "day") ) {
+ display.innerHTML = start.format('D MMM YYYY');
+ } else {
+ display.innerHTML = start.format('D MMM YYYY') + ' - ' + end.format('D MMM YYYY');
+ }
+ }
+ }
+
+ if ( range === "today" ) {
+ start = moment();
+ end = moment();
+ }
+
+ $(element).daterangepicker({
+ startDate: start,
+ endDate: end,
+ opens: attrOpens,
+ ranges: {
+ 'Today': [moment(), moment()],
+ 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
+ 'Last 7 Days': [moment().subtract(6, 'days'), moment()],
+ 'Last 30 Days': [moment().subtract(29, 'days'), moment()],
+ 'This Month': [moment().startOf('month'), moment().endOf('month')],
+ 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
+ }
+ }, cb);
+
+ cb(start, end);
+
+ element.setAttribute("data-kt-initialized", "1");
+ });
+ }
+
+ var createSelect2 = function () {
+ // Check if jQuery included
+ if (typeof jQuery == 'undefined') {
+ return;
+ }
+
+ // Check if select2 included
+ if (typeof $.fn.select2 === 'undefined') {
+ return;
+ }
+
+ var elements = [].slice.call(document.querySelectorAll('[data-control="select2"], [data-kt-select2="true"]'));
+
+ elements.map(function (element) {
+ if (element.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ var options = {
+ dir: document.body.getAttribute('direction')
+ };
+
+ if (element.getAttribute('data-hide-search') == 'true') {
+ options.minimumResultsForSearch = Infinity;
+ }
+
+ $(element).select2(options);
+
+ element.setAttribute("data-kt-initialized", "1");
+ });
+
+ /*
+ * Hacky fix for a bug in select2 with jQuery 3.6.0's new nested-focus "protection"
+ * see: https://github.com/select2/select2/issues/5993
+ * see: https://github.com/jquery/jquery/issues/4382
+ *
+ * TODO: Recheck with the select2 GH issue and remove once this is fixed on their side
+ */
+
+ if (select2FocusFixInitialized === false) {
+ select2FocusFixInitialized = true;
+
+ $(document).on('select2:open', function(e) {
+ var elements = document.querySelectorAll('.select2-container--open .select2-search__field');
+ if (elements.length > 0) {
+ elements[elements.length - 1].focus();
+ }
+ });
+ }
+ }
+
+ var createAutosize = function () {
+ if (typeof autosize === 'undefined') {
+ return;
+ }
+
+ var inputs = [].slice.call(document.querySelectorAll('[data-kt-autosize="true"]'));
+
+ inputs.map(function (input) {
+ if (input.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ autosize(input);
+
+ input.setAttribute("data-kt-initialized", "1");
+ });
+ }
+
+ var createCountUp = function () {
+ if (typeof countUp === 'undefined') {
+ return;
+ }
+
+ var elements = [].slice.call(document.querySelectorAll('[data-kt-countup="true"]:not(.counted)'));
+
+ elements.map(function (element) {
+ if (KTUtil.isInViewport(element) && KTUtil.visible(element)) {
+ if (element.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ var options = {};
+
+ var value = element.getAttribute('data-kt-countup-value');
+ value = parseFloat(value.replace(/,/g, ""));
+
+ if (element.hasAttribute('data-kt-countup-start-val')) {
+ options.startVal = parseFloat(element.getAttribute('data-kt-countup-start-val'));
+ }
+
+ if (element.hasAttribute('data-kt-countup-duration')) {
+ options.duration = parseInt(element.getAttribute('data-kt-countup-duration'));
+ }
+
+ if (element.hasAttribute('data-kt-countup-decimal-places')) {
+ options.decimalPlaces = parseInt(element.getAttribute('data-kt-countup-decimal-places'));
+ }
+
+ if (element.hasAttribute('data-kt-countup-prefix')) {
+ options.prefix = element.getAttribute('data-kt-countup-prefix');
+ }
+
+ if (element.hasAttribute('data-kt-countup-separator')) {
+ options.separator = element.getAttribute('data-kt-countup-separator');
+ }
+
+ if (element.hasAttribute('data-kt-countup-suffix')) {
+ options.suffix = element.getAttribute('data-kt-countup-suffix');
+ }
+
+ var count = new countUp.CountUp(element, value, options);
+
+ count.start();
+
+ element.classList.add('counted');
+
+ element.setAttribute("data-kt-initialized", "1");
+ }
+ });
+ }
+
+ var createCountUpTabs = function () {
+ if (typeof countUp === 'undefined') {
+ return;
+ }
+
+ if (countUpInitialized === false) {
+ // Initial call
+ createCountUp();
+
+ // Window scroll event handler
+ window.addEventListener('scroll', createCountUp);
+ }
+
+ // Tabs shown event handler
+ var tabs = [].slice.call(document.querySelectorAll('[data-kt-countup-tabs="true"][data-bs-toggle="tab"]'));
+ tabs.map(function (tab) {
+ if (tab.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ tab.addEventListener('shown.bs.tab', createCountUp);
+
+ tab.setAttribute("data-kt-initialized", "1");
+ });
+
+ countUpInitialized = true;
+ }
+
+ var createTinySliders = function () {
+ if (typeof tns === 'undefined') {
+ return;
+ }
+
+ // Init Slider
+ var initSlider = function (el) {
+ if (!el) {
+ return;
+ }
+
+ const tnsOptions = {};
+
+ // Convert string boolean
+ const checkBool = function (val) {
+ if (val === 'true') {
+ return true;
+ }
+ if (val === 'false') {
+ return false;
+ }
+ return val;
+ };
+
+ // get extra options via data attributes
+ el.getAttributeNames().forEach(function (attrName) {
+ // more options; https://github.com/ganlanyuan/tiny-slider#options
+ if ((/^data-tns-.*/g).test(attrName)) {
+ let optionName = attrName.replace('data-tns-', '').toLowerCase().replace(/(?:[\s-])\w/g, function (match) {
+ return match.replace('-', '').toUpperCase();
+ });
+
+ if (attrName === 'data-tns-responsive') {
+ // fix string with a valid json
+ const jsonStr = el.getAttribute(attrName).replace(/(\w+:)|(\w+ :)/g, function (matched) {
+ return '"' + matched.substring(0, matched.length - 1) + '":';
+ });
+ try {
+ // convert json string to object
+ tnsOptions[optionName] = JSON.parse(jsonStr);
+ }
+ catch (e) {
+ }
+ }
+ else {
+ tnsOptions[optionName] = checkBool(el.getAttribute(attrName));
+ }
+ }
+ });
+
+ const opt = Object.assign({}, {
+ container: el,
+ slideBy: 'page',
+ autoplay: true,
+ autoplayButtonOutput: false,
+ }, tnsOptions);
+
+ if (el.closest('.tns')) {
+ KTUtil.addClass(el.closest('.tns'), 'tns-initiazlied');
+ }
+
+ return tns(opt);
+ }
+
+ // Sliders
+ const elements = Array.prototype.slice.call(document.querySelectorAll('[data-tns="true"]'), 0);
+
+ if (!elements && elements.length === 0) {
+ return;
+ }
+
+ elements.forEach(function (el) {
+ if (el.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ initSlider(el);
+
+ el.setAttribute("data-kt-initialized", "1");
+ });
+ }
+
+ var initSmoothScroll = function () {
+ if (initialized === true) {
+ return;
+ }
+
+ if (typeof SmoothScroll === 'undefined') {
+ return;
+ }
+
+ new SmoothScroll('a[data-kt-scroll-toggle][href*="#"]', {
+ speed: 1000,
+ speedAsDuration: true,
+ offset: function (anchor, toggle) {
+ // Integer or Function returning an integer. How far to offset the scrolling anchor location in pixels
+ // This example is a function, but you could do something as simple as `offset: 25`
+
+ // An example returning different values based on whether the clicked link was in the header nav or not
+ if (anchor.hasAttribute('data-kt-scroll-offset')) {
+ var val = KTUtil.getResponsiveValue(anchor.getAttribute('data-kt-scroll-offset'));
+
+ return val;
+ } else {
+ return 0;
+ }
+ }
+ });
+ }
+
+ var initCard = function() {
+ // Toggle Handler
+ KTUtil.on(document.body, '[data-kt-card-action="remove"]', 'click', function (e) {
+ e.preventDefault();
+
+ const card = this.closest('.card');
+
+ if (!card) {
+ return;
+ }
+
+ const confirmMessage = this.getAttribute("data-kt-card-confirm-message");
+ const confirm = this.getAttribute("data-kt-card-confirm") === "true";
+
+ if (confirm) {
+ // Show message popup. For more info check the plugin's official documentation: https://sweetalert2.github.io/
+ Swal.fire({
+ text: confirmMessage ? confirmMessage : "Are you sure to remove ?",
+ icon: "warning",
+ buttonsStyling: false,
+ confirmButtonText: "Confirm",
+ denyButtonText: "Cancel",
+ customClass: {
+ confirmButton: "btn btn-primary",
+ denyButton: "btn btn-danger"
+ }
+ }).then(function (result) {
+ if (result.isConfirmed) {
+ card.remove();
+ }
+ });
+ } else {
+ card.remove();
+ }
+ });
+ }
+
+ var initModal = function() {
+ var elements = Array.prototype.slice.call(document.querySelectorAll("[data-bs-stacked-modal]"));
+
+ if (elements && elements.length > 0) {
+ elements.forEach((element) => {
+ if (element.getAttribute("data-kt-initialized") === "1") {
+ return;
+ }
+
+ element.setAttribute("data-kt-initialized", "1");
+
+ element.addEventListener("click", function(e) {
+ e.preventDefault();
+
+ const modalEl = document.querySelector(this.getAttribute("data-bs-stacked-modal"));
+
+ if (modalEl) {
+ const modal = new bootstrap.Modal(modalEl);
+ modal.show();
+ }
+ });
+ });
+ }
+ }
+
+ var initCheck = function () {
+ if (initialized === true) {
+ return;
+ }
+
+ // Toggle Handler
+ KTUtil.on(document.body, '[data-kt-check="true"]', 'change', function (e) {
+ var check = this;
+ var targets = document.querySelectorAll(check.getAttribute('data-kt-check-target'));
+
+ KTUtil.each(targets, function (target) {
+ if (target.type == 'checkbox') {
+ target.checked = check.checked;
+ } else {
+ target.classList.toggle('active');
+ }
+ });
+ });
+ }
+
+ var initBootstrapCollapse = function() {
+ if (initialized === true) {
+ return;
+ }
+
+ KTUtil.on(document.body, '.collapsible[data-bs-toggle="collapse"]', 'click', function(e) {
+ if (this.classList.contains('collapsed')) {
+ this.classList.remove('active');
+ this.blur();
+ } else {
+ this.classList.add('active');
+ }
+
+ if (this.hasAttribute('data-kt-toggle-text')) {
+ var text = this.getAttribute('data-kt-toggle-text');
+ var target = this.querySelector('[data-kt-toggle-text-target="true"]');
+ var target = target ? target : this;
+
+ this.setAttribute('data-kt-toggle-text', target.innerText);
+ target.innerText = text;
+ }
+ });
+ }
+
+ var initBootstrapRotate = function() {
+ if (initialized === true) {
+ return;
+ }
+
+ KTUtil.on(document.body, '[data-kt-rotate="true"]', 'click', function(e) {
+ if (this.classList.contains('active')) {
+ this.classList.remove('active');
+ this.blur();
+ } else {
+ this.classList.add('active');
+ }
+ });
+ }
+
+ var initLozad = function() {
+ // Check if lozad included
+ if (typeof lozad === 'undefined') {
+ return;
+ }
+
+ const observer = lozad(); // lazy loads elements with default selector as '.lozad'
+ observer.observe();
+ }
+
+ var showPageLoading = function() {
+ document.body.classList.add('page-loading');
+ document.body.setAttribute('data-kt-app-page-loading', "on");
+ }
+
+ var hidePageLoading = function() {
+ // CSS3 Transitions only after page load(.page-loading or .app-page-loading class added to body tag and remove with JS on page load)
+ document.body.classList.remove('page-loading');
+ document.body.removeAttribute('data-kt-app-page-loading');
+ }
+
+ return {
+ init: function () {
+ initLozad();
+
+ initSmoothScroll();
+
+ initCard();
+
+ initModal();
+
+ initCheck();
+
+ initBootstrapCollapse();
+
+ initBootstrapRotate();
+
+ createBootstrapTooltips();
+
+ createBootstrapPopovers();
+
+ createBootstrapToasts();
+
+ createDateRangePickers();
+
+ createButtons();
+
+ createSelect2();
+
+ createCountUp();
+
+ createCountUpTabs();
+
+ createAutosize();
+
+ createTinySliders();
+
+ initialized = true;
+ },
+
+ showPageLoading: function () {
+ showPageLoading();
+ },
+
+ hidePageLoading: function () {
+ hidePageLoading();
+ },
+
+ createBootstrapPopover: function(el, options) {
+ return createBootstrapPopover(el, options);
+ },
+
+ createBootstrapTooltip: function(el, options) {
+ return createBootstrapTooltip(el, options);
+ }
+ };
+}();
+
+// Declare KTApp for Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTApp;
+}
+"use strict";
+
+// Class definition
+var KTBlockUI = function(element, options) {
+ //////////////////////////////
+ // ** Private variables ** //
+ //////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default options
+ var defaultOptions = {
+ zIndex: false,
+ overlayClass: '',
+ overflow: 'hidden',
+ message: ''
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('blockui') ) {
+ the = KTUtil.data(element).get('blockui');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.element = element;
+ the.overlayElement = null;
+ the.blocked = false;
+ the.positionChanged = false;
+ the.overflowChanged = false;
+
+ // Bind Instance
+ KTUtil.data(the.element).set('blockui', the);
+ }
+
+ var _block = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.blockui.block', the) === false ) {
+ return;
+ }
+
+ var isPage = (the.element.tagName === 'BODY');
+
+ var position = KTUtil.css(the.element, 'position');
+ var overflow = KTUtil.css(the.element, 'overflow');
+ var zIndex = isPage ? 10000 : 1;
+
+ if (the.options.zIndex > 0) {
+ zIndex = the.options.zIndex;
+ } else {
+ if (KTUtil.css(the.element, 'z-index') != 'auto') {
+ zIndex = KTUtil.css(the.element, 'z-index');
+ }
+ }
+
+ the.element.classList.add('blockui');
+
+ if (position === "absolute" || position === "relative" || position === "fixed") {
+ KTUtil.css(the.element, 'position', 'relative');
+ the.positionChanged = true;
+ }
+
+ if (the.options.overflow === 'hidden' && overflow === 'visible') {
+ KTUtil.css(the.element, 'overflow', 'hidden');
+ the.overflowChanged = true;
+ }
+
+ the.overlayElement = document.createElement('DIV');
+ the.overlayElement.setAttribute('class', 'blockui-overlay ' + the.options.overlayClass);
+
+ the.overlayElement.innerHTML = the.options.message;
+
+ KTUtil.css(the.overlayElement, 'z-index', zIndex);
+
+ the.element.append(the.overlayElement);
+ the.blocked = true;
+
+ KTEventHandler.trigger(the.element, 'kt.blockui.after.blocked', the)
+ }
+
+ var _release = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.blockui.release', the) === false ) {
+ return;
+ }
+
+ the.element.classList.add('blockui');
+
+ if (the.positionChanged) {
+ KTUtil.css(the.element, 'position', '');
+ }
+
+ if (the.overflowChanged) {
+ KTUtil.css(the.element, 'overflow', '');
+ }
+
+ if (the.overlayElement) {
+ KTUtil.remove(the.overlayElement);
+ }
+
+ the.blocked = false;
+
+ KTEventHandler.trigger(the.element, 'kt.blockui.released', the);
+ }
+
+ var _isBlocked = function() {
+ return the.blocked;
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('blockui');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.block = function() {
+ _block();
+ }
+
+ the.release = function() {
+ _release();
+ }
+
+ the.isBlocked = function() {
+ return _isBlocked();
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTBlockUI.getInstance = function(element) {
+ if (element !== null && KTUtil.data(element).has('blockui')) {
+ return KTUtil.data(element).get('blockui');
+ } else {
+ return null;
+ }
+}
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTBlockUI;
+}
+"use strict";
+// DOCS: https://javascript.info/cookie
+
+// Class definition
+var KTCookie = function() {
+ return {
+ // returns the cookie with the given name,
+ // or undefined if not found
+ get: function(name) {
+ var matches = document.cookie.match(new RegExp(
+ "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
+ ));
+
+ return matches ? decodeURIComponent(matches[1]) : null;
+ },
+
+ // Please note that a cookie value is encoded,
+ // so getCookie uses a built-in decodeURIComponent function to decode it.
+ set: function(name, value, options) {
+ if ( typeof options === "undefined" || options === null ) {
+ options = {};
+ }
+
+ options = Object.assign({}, {
+ path: '/'
+ }, options);
+
+ if ( options.expires instanceof Date ) {
+ options.expires = options.expires.toUTCString();
+ }
+
+ var updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value);
+
+ for ( var optionKey in options ) {
+ if ( options.hasOwnProperty(optionKey) === false ) {
+ continue;
+ }
+
+ updatedCookie += "; " + optionKey;
+ var optionValue = options[optionKey];
+
+ if ( optionValue !== true ) {
+ updatedCookie += "=" + optionValue;
+ }
+ }
+
+ document.cookie = updatedCookie;
+ },
+
+ // To remove a cookie, we can call it with a negative expiration date:
+ remove: function(name) {
+ this.set(name, "", {
+ 'max-age': -1
+ });
+ }
+ }
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTCookie;
+}
+
+"use strict";
+
+// Class definition
+var KTDialer = function(element, options) {
+ ////////////////////////////
+ // ** Private variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if (!element) {
+ return;
+ }
+
+ // Default options
+ var defaultOptions = {
+ min: null,
+ max: null,
+ step: 1,
+ decimals: 0,
+ prefix: "",
+ suffix: ""
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ // Constructor
+ var _construct = function() {
+ if ( KTUtil.data(element).has('dialer') === true ) {
+ the = KTUtil.data(element).get('dialer');
+ } else {
+ _init();
+ }
+ }
+
+ // Initialize
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+
+ // Elements
+ the.element = element;
+ the.incElement = the.element.querySelector('[data-kt-dialer-control="increase"]');
+ the.decElement = the.element.querySelector('[data-kt-dialer-control="decrease"]');
+ the.inputElement = the.element.querySelector('input[type]');
+
+ // Set Values
+ if (_getOption('decimals')) {
+ the.options.decimals = parseInt(_getOption('decimals'));
+ }
+
+ if (_getOption('prefix')) {
+ the.options.prefix = _getOption('prefix');
+ }
+
+ if (_getOption('suffix')) {
+ the.options.suffix = _getOption('suffix');
+ }
+
+ if (_getOption('step')) {
+ the.options.step = parseFloat(_getOption('step'));
+ }
+
+ if (_getOption('min')) {
+ the.options.min = parseFloat(_getOption('min'));
+ }
+
+ if (_getOption('max')) {
+ the.options.max = parseFloat(_getOption('max'));
+ }
+
+ the.value = parseFloat(the.inputElement.value.replace(/[^\d.]/g, ''));
+
+ _setValue();
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('dialer', the);
+ }
+
+ // Handlers
+ var _handlers = function() {
+ KTUtil.addEvent(the.incElement, 'click', function(e) {
+ e.preventDefault();
+
+ _increase();
+ });
+
+ KTUtil.addEvent(the.decElement, 'click', function(e) {
+ e.preventDefault();
+
+ _decrease();
+ });
+
+ KTUtil.addEvent(the.inputElement, 'input', function(e) {
+ e.preventDefault();
+
+ _setValue();
+ });
+ }
+
+ // Event handlers
+ var _increase = function() {
+ // Trigger "after.dialer" event
+ KTEventHandler.trigger(the.element, 'kt.dialer.increase', the);
+
+ the.inputElement.value = the.value + the.options.step;
+ _setValue();
+
+ // Trigger "before.dialer" event
+ KTEventHandler.trigger(the.element, 'kt.dialer.increased', the);
+
+ return the;
+ }
+
+ var _decrease = function() {
+ // Trigger "after.dialer" event
+ KTEventHandler.trigger(the.element, 'kt.dialer.decrease', the);
+
+ the.inputElement.value = the.value - the.options.step;
+
+ _setValue();
+
+ // Trigger "before.dialer" event
+ KTEventHandler.trigger(the.element, 'kt.dialer.decreased', the);
+
+ return the;
+ }
+
+ // Set Input Value
+ var _setValue = function(value) {
+ // Trigger "after.dialer" event
+ KTEventHandler.trigger(the.element, 'kt.dialer.change', the);
+
+ if (value !== undefined) {
+ the.value = value;
+ } else {
+ the.value = _parse(the.inputElement.value);
+ }
+
+ if (the.options.min !== null && the.value < the.options.min) {
+ the.value = the.options.min;
+ }
+
+ if (the.options.max !== null && the.value > the.options.max) {
+ the.value = the.options.max;
+ }
+
+ the.inputElement.value = _format(the.value);
+
+ // Trigger input change event
+ the.inputElement.dispatchEvent(new Event('change'));
+
+ // Trigger "after.dialer" event
+ KTEventHandler.trigger(the.element, 'kt.dialer.changed', the);
+ }
+
+ var _parse = function(val) {
+ val = val
+ .replace(/[^0-9.-]/g, '') // remove chars except number, hyphen, point.
+ .replace(/(\..*)\./g, '$1') // remove multiple points.
+ .replace(/(?!^)-/g, '') // remove middle hyphen.
+ .replace(/^0+(\d)/gm, '$1'); // remove multiple leading zeros. <-- I added this.
+
+ val = parseFloat(val);
+
+ if (isNaN(val)) {
+ val = 0;
+ }
+
+ return val;
+ }
+
+ // Format
+ var _format = function(val){
+ return the.options.prefix + parseFloat(val).toFixed(the.options.decimals) + the.options.suffix;
+ }
+
+ // Get option
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-dialer-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-dialer-' + name);
+ var value = attr;
+
+ return value;
+ } else {
+ return null;
+ }
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('dialer');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.setMinValue = function(value) {
+ the.options.min = value;
+ }
+
+ the.setMaxValue = function(value) {
+ the.options.max = value;
+ }
+
+ the.setValue = function(value) {
+ _setValue(value);
+ }
+
+ the.getValue = function() {
+ return the.inputElement.value;
+ }
+
+ the.update = function() {
+ _setValue();
+ }
+
+ the.increase = function() {
+ return _increase();
+ }
+
+ the.decrease = function() {
+ return _decrease();
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTDialer.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('dialer') ) {
+ return KTUtil.data(element).get('dialer');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTDialer.createInstances = function(selector = '[data-kt-dialer="true"]') {
+ // Get instances
+ var elements = document.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ new KTDialer(elements[i]);
+ }
+ }
+}
+
+// Global initialization
+KTDialer.init = function() {
+ KTDialer.createInstances();
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTDialer;
+}
+"use strict";
+
+var KTDrawerHandlersInitialized = false;
+
+// Class definition
+var KTDrawer = function(element, options) {
+ //////////////////////////////
+ // ** Private variables ** //
+ //////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default options
+ var defaultOptions = {
+ overlay: true,
+ direction: 'end',
+ baseClass: 'drawer',
+ overlayClass: 'drawer-overlay'
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('drawer') ) {
+ the = KTUtil.data(element).get('drawer');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('drawer');
+ the.element = element;
+ the.overlayElement = null;
+ the.name = the.element.getAttribute('data-kt-drawer-name');
+ the.shown = false;
+ the.lastWidth;
+ the.toggleElement = null;
+
+ // Set initialized
+ the.element.setAttribute('data-kt-drawer', 'true');
+
+ // Event Handlers
+ _handlers();
+
+ // Update Instance
+ _update();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('drawer', the);
+ }
+
+ var _handlers = function() {
+ var togglers = _getOption('toggle');
+ var closers = _getOption('close');
+
+ if ( togglers !== null && togglers.length > 0 ) {
+ KTUtil.on(document.body, togglers, 'click', function(e) {
+ e.preventDefault();
+
+ the.toggleElement = this;
+ _toggle();
+ });
+ }
+
+ if ( closers !== null && closers.length > 0 ) {
+ KTUtil.on(document.body, closers, 'click', function(e) {
+ e.preventDefault();
+
+ the.closeElement = this;
+ _hide();
+ });
+ }
+ }
+
+ var _toggle = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.drawer.toggle', the) === false ) {
+ return;
+ }
+
+ if ( the.shown === true ) {
+ _hide();
+ } else {
+ _show();
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.drawer.toggled', the);
+ }
+
+ var _hide = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.drawer.hide', the) === false ) {
+ return;
+ }
+
+ the.shown = false;
+
+ _deleteOverlay();
+
+ document.body.removeAttribute('data-kt-drawer-' + the.name, 'on');
+ document.body.removeAttribute('data-kt-drawer');
+
+ KTUtil.removeClass(the.element, the.options.baseClass + '-on');
+
+ if ( the.toggleElement !== null ) {
+ KTUtil.removeClass(the.toggleElement, 'active');
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.drawer.after.hidden', the) === false
+ }
+
+ var _show = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.drawer.show', the) === false ) {
+ return;
+ }
+
+ the.shown = true;
+
+ _createOverlay();
+ document.body.setAttribute('data-kt-drawer-' + the.name, 'on');
+ document.body.setAttribute('data-kt-drawer', 'on');
+
+ KTUtil.addClass(the.element, the.options.baseClass + '-on');
+
+ if ( the.toggleElement !== null ) {
+ KTUtil.addClass(the.toggleElement, 'active');
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.drawer.shown', the);
+ }
+
+ var _update = function() {
+ var width = _getWidth();
+ var direction = _getOption('direction');
+
+ var top = _getOption('top');
+ var bottom = _getOption('bottom');
+ var start = _getOption('start');
+ var end = _getOption('end');
+
+ // Reset state
+ if ( KTUtil.hasClass(the.element, the.options.baseClass + '-on') === true && String(document.body.getAttribute('data-kt-drawer-' + the.name + '-')) === 'on' ) {
+ the.shown = true;
+ } else {
+ the.shown = false;
+ }
+
+ // Activate/deactivate
+ if ( _getOption('activate') === true ) {
+ KTUtil.addClass(the.element, the.options.baseClass);
+ KTUtil.addClass(the.element, the.options.baseClass + '-' + direction);
+
+ KTUtil.css(the.element, 'width', width, true);
+ the.lastWidth = width;
+
+ if (top) {
+ KTUtil.css(the.element, 'top', top);
+ }
+
+ if (bottom) {
+ KTUtil.css(the.element, 'bottom', bottom);
+ }
+
+ if (start) {
+ if (KTUtil.isRTL()) {
+ KTUtil.css(the.element, 'right', start);
+ } else {
+ KTUtil.css(the.element, 'left', start);
+ }
+ }
+
+ if (end) {
+ if (KTUtil.isRTL()) {
+ KTUtil.css(the.element, 'left', end);
+ } else {
+ KTUtil.css(the.element, 'right', end);
+ }
+ }
+ } else {
+ KTUtil.removeClass(the.element, the.options.baseClass);
+ KTUtil.removeClass(the.element, the.options.baseClass + '-' + direction);
+
+ KTUtil.css(the.element, 'width', '');
+
+ if (top) {
+ KTUtil.css(the.element, 'top', '');
+ }
+
+ if (bottom) {
+ KTUtil.css(the.element, 'bottom', '');
+ }
+
+ if (start) {
+ if (KTUtil.isRTL()) {
+ KTUtil.css(the.element, 'right', '');
+ } else {
+ KTUtil.css(the.element, 'left', '');
+ }
+ }
+
+ if (end) {
+ if (KTUtil.isRTL()) {
+ KTUtil.css(the.element, 'left', '');
+ } else {
+ KTUtil.css(the.element, 'right', '');
+ }
+ }
+
+ _hide();
+ }
+ }
+
+ var _createOverlay = function() {
+ if ( _getOption('overlay') === true ) {
+ the.overlayElement = document.createElement('DIV');
+
+ KTUtil.css(the.overlayElement, 'z-index', KTUtil.css(the.element, 'z-index') - 1); // update
+
+ document.body.append(the.overlayElement);
+
+ KTUtil.addClass(the.overlayElement, _getOption('overlay-class'));
+
+ KTUtil.addEvent(the.overlayElement, 'click', function(e) {
+ e.preventDefault();
+
+ if ( _getOption('permanent') !== true ) {
+ _hide();
+ }
+ });
+ }
+ }
+
+ var _deleteOverlay = function() {
+ if ( the.overlayElement !== null ) {
+ KTUtil.remove(the.overlayElement);
+ }
+ }
+
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-drawer-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-drawer-' + name);
+ var value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+
+ return value;
+ } else {
+ var optionName = KTUtil.snakeToCamel(name);
+
+ if ( the.options[optionName] ) {
+ return KTUtil.getResponsiveValue(the.options[optionName]);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ var _getWidth = function() {
+ var width = _getOption('width');
+
+ if ( width === 'auto') {
+ width = KTUtil.css(the.element, 'width');
+ }
+
+ return width;
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('drawer');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.toggle = function() {
+ return _toggle();
+ }
+
+ the.show = function() {
+ return _show();
+ }
+
+ the.hide = function() {
+ return _hide();
+ }
+
+ the.isShown = function() {
+ return the.shown;
+ }
+
+ the.update = function() {
+ _update();
+ }
+
+ the.goElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTDrawer.getInstance = function(element) {
+ if (element !== null && KTUtil.data(element).has('drawer')) {
+ return KTUtil.data(element).get('drawer');
+ } else {
+ return null;
+ }
+}
+
+// Hide all drawers and skip one if provided
+KTDrawer.hideAll = function(skip = null, selector = '[data-kt-drawer="true"]') {
+ var items = document.querySelectorAll(selector);
+
+ if (items && items.length > 0) {
+ for (var i = 0, len = items.length; i < len; i++) {
+ var item = items[i];
+ var drawer = KTDrawer.getInstance(item);
+
+ if (!drawer) {
+ continue;
+ }
+
+ if ( skip ) {
+ if ( item !== skip ) {
+ drawer.hide();
+ }
+ } else {
+ drawer.hide();
+ }
+ }
+ }
+}
+
+// Update all drawers
+KTDrawer.updateAll = function(selector = '[data-kt-drawer="true"]') {
+ var items = document.querySelectorAll(selector);
+
+ if (items && items.length > 0) {
+ for (var i = 0, len = items.length; i < len; i++) {
+ var drawer = KTDrawer.getInstance(items[i]);
+
+ if (drawer) {
+ drawer.update();
+ }
+ }
+ }
+}
+
+// Create instances
+KTDrawer.createInstances = function(selector = '[data-kt-drawer="true"]') {
+ // Initialize Menus
+ var elements = document.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ new KTDrawer(elements[i]);
+ }
+ }
+}
+
+// Toggle instances
+KTDrawer.handleShow = function() {
+ // External drawer toggle handler
+ KTUtil.on(document.body, '[data-kt-drawer-show="true"][data-kt-drawer-target]', 'click', function(e) {
+ e.preventDefault();
+
+ var element = document.querySelector(this.getAttribute('data-kt-drawer-target'));
+
+ if (element) {
+ KTDrawer.getInstance(element).show();
+ }
+ });
+}
+
+// Dismiss instances
+KTDrawer.handleDismiss = function() {
+ // External drawer toggle handler
+ KTUtil.on(document.body, '[data-kt-drawer-dismiss="true"]', 'click', function(e) {
+ var element = this.closest('[data-kt-drawer="true"]');
+
+ if (element) {
+ var drawer = KTDrawer.getInstance(element);
+ if (drawer.isShown()) {
+ drawer.hide();
+ }
+ }
+ });
+}
+
+// Handle resize
+KTDrawer.handleResize = function() {
+ // Window resize Handling
+ window.addEventListener('resize', function() {
+ var timer;
+
+ KTUtil.throttle(timer, function() {
+ // Locate and update drawer instances on window resize
+ var elements = document.querySelectorAll('[data-kt-drawer="true"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var drawer = KTDrawer.getInstance(elements[i]);
+ if (drawer) {
+ drawer.update();
+ }
+ }
+ }
+ }, 200);
+ });
+}
+
+// Global initialization
+KTDrawer.init = function() {
+ KTDrawer.createInstances();
+
+ if (KTDrawerHandlersInitialized === false) {
+ KTDrawer.handleResize();
+ KTDrawer.handleShow();
+ KTDrawer.handleDismiss();
+
+ KTDrawerHandlersInitialized = true;
+ }
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTDrawer;
+}
+"use strict";
+
+// Class definition
+var KTEventHandler = function() {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var _handlers = {};
+
+ ////////////////////////////
+ // ** Private Methods ** //
+ ////////////////////////////
+ var _triggerEvent = function(element, name, target) {
+ var returnValue = true;
+ var eventValue;
+
+ if ( KTUtil.data(element).has(name) === true ) {
+ var handlerIds = KTUtil.data(element).get(name);
+ var handlerId;
+
+ for (var i = 0; i < handlerIds.length; i++) {
+ handlerId = handlerIds[i];
+
+ if ( _handlers[name] && _handlers[name][handlerId] ) {
+ var handler = _handlers[name][handlerId];
+ var value;
+
+ if ( handler.name === name ) {
+ if ( handler.one == true ) {
+ if ( handler.fired == false ) {
+ _handlers[name][handlerId].fired = true;
+
+ eventValue = handler.callback.call(this, target);
+ }
+ } else {
+ eventValue = handler.callback.call(this, target);
+ }
+
+ if ( eventValue === false ) {
+ returnValue = false;
+ }
+ }
+ }
+ }
+ }
+
+ return returnValue;
+ }
+
+ var _addEvent = function(element, name, callback, one) {
+ var handlerId = KTUtil.getUniqueId('event');
+ var handlerIds = KTUtil.data(element).get(name);
+
+ if ( !handlerIds ) {
+ handlerIds = [];
+ }
+
+ handlerIds.push(handlerId);
+
+ KTUtil.data(element).set(name, handlerIds);
+
+ if ( !_handlers[name] ) {
+ _handlers[name] = {};
+ }
+
+ _handlers[name][handlerId] = {
+ name: name,
+ callback: callback,
+ one: one,
+ fired: false
+ };
+
+ return handlerId;
+ }
+
+ var _removeEvent = function(element, name, handlerId) {
+ var handlerIds = KTUtil.data(element).get(name);
+ var index = handlerIds && handlerIds.indexOf(handlerId);
+
+ if (index !== -1) {
+ handlerIds.splice(index, 1);
+ KTUtil.data(element).set(name, handlerIds);
+ }
+
+ if (_handlers[name] && _handlers[name][handlerId]) {
+ delete _handlers[name][handlerId];
+ }
+ }
+
+ ////////////////////////////
+ // ** Public Methods ** //
+ ////////////////////////////
+ return {
+ trigger: function(element, name, target) {
+ return _triggerEvent(element, name, target);
+ },
+
+ on: function(element, name, handler) {
+ return _addEvent(element, name, handler);
+ },
+
+ one: function(element, name, handler) {
+ return _addEvent(element, name, handler, true);
+ },
+
+ off: function(element, name, handlerId) {
+ return _removeEvent(element, name, handlerId);
+ },
+
+ debug: function() {
+ for (var b in _handlers) {
+ if ( _handlers.hasOwnProperty(b) ) console.log(b);
+ }
+ }
+ }
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTEventHandler;
+}
+
+"use strict";
+
+// Class definition
+var KTFeedback = function(options) {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var the = this;
+
+ // Default options
+ var defaultOptions = {
+ 'width' : 100,
+ 'placement' : 'top-center',
+ 'content' : '',
+ 'type': 'popup'
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ _init();
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('feedback');
+ the.element;
+ the.shown = false;
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('feedback', the);
+ }
+
+ var _handlers = function() {
+ KTUtil.addEvent(the.element, 'click', function(e) {
+ e.preventDefault();
+
+ _go();
+ });
+ }
+
+ var _show = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.feedback.show', the) === false ) {
+ return;
+ }
+
+ if ( the.options.type === 'popup') {
+ _showPopup();
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.feedback.shown', the);
+
+ return the;
+ }
+
+ var _hide = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.feedback.hide', the) === false ) {
+ return;
+ }
+
+ if ( the.options.type === 'popup') {
+ _hidePopup();
+ }
+
+ the.shown = false;
+
+ KTEventHandler.trigger(the.element, 'kt.feedback.hidden', the);
+
+ return the;
+ }
+
+ var _showPopup = function() {
+ the.element = document.createElement("DIV");
+
+ KTUtil.addClass(the.element, 'feedback feedback-popup');
+ KTUtil.setHTML(the.element, the.options.content);
+
+ if (the.options.placement == 'top-center') {
+ _setPopupTopCenterPosition();
+ }
+
+ document.body.appendChild(the.element);
+
+ KTUtil.addClass(the.element, 'feedback-shown');
+
+ the.shown = true;
+ }
+
+ var _setPopupTopCenterPosition = function() {
+ var width = KTUtil.getResponsiveValue(the.options.width);
+ var height = KTUtil.css(the.element, 'height');
+
+ KTUtil.addClass(the.element, 'feedback-top-center');
+
+ KTUtil.css(the.element, 'width', width);
+ KTUtil.css(the.element, 'left', '50%');
+ KTUtil.css(the.element, 'top', '-' + height);
+ }
+
+ var _hidePopup = function() {
+ the.element.remove();
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('feedback');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.show = function() {
+ return _show();
+ }
+
+ the.hide = function() {
+ return _hide();
+ }
+
+ the.isShown = function() {
+ return the.shown;
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTFeedback;
+}
+
+"use strict";
+
+// Class definition
+var KTImageInput = function(element, options) {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+
+ };
+
+ ////////////////////////////
+ // ** Private Methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('image-input') === true ) {
+ the = KTUtil.data(element).get('image-input');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('image-input');
+
+ // Elements
+ the.element = element;
+ the.inputElement = KTUtil.find(element, 'input[type="file"]');
+ the.wrapperElement = KTUtil.find(element, '.image-input-wrapper');
+ the.cancelElement = KTUtil.find(element, '[data-kt-image-input-action="cancel"]');
+ the.removeElement = KTUtil.find(element, '[data-kt-image-input-action="remove"]');
+ the.hiddenElement = KTUtil.find(element, 'input[type="hidden"]');
+ the.src = KTUtil.css(the.wrapperElement, 'backgroundImage');
+
+ // Set initialized
+ the.element.setAttribute('data-kt-image-input', 'true');
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('image-input', the);
+ }
+
+ // Init Event Handlers
+ var _handlers = function() {
+ KTUtil.addEvent(the.inputElement, 'change', _change);
+ KTUtil.addEvent(the.cancelElement, 'click', _cancel);
+ KTUtil.addEvent(the.removeElement, 'click', _remove);
+ }
+
+ // Event Handlers
+ var _change = function(e) {
+ e.preventDefault();
+
+ if ( the.inputElement !== null && the.inputElement.files && the.inputElement.files[0] ) {
+ // Fire change event
+ if ( KTEventHandler.trigger(the.element, 'kt.imageinput.change', the) === false ) {
+ return;
+ }
+
+ var reader = new FileReader();
+
+ reader.onload = function(e) {
+ KTUtil.css(the.wrapperElement, 'background-image', 'url('+ e.target.result +')');
+ }
+
+ reader.readAsDataURL(the.inputElement.files[0]);
+
+ the.element.classList.add('image-input-changed');
+ the.element.classList.remove('image-input-empty');
+
+ // Fire removed event
+ KTEventHandler.trigger(the.element, 'kt.imageinput.changed', the);
+ }
+ }
+
+ var _cancel = function(e) {
+ e.preventDefault();
+
+ // Fire cancel event
+ if ( KTEventHandler.trigger(the.element, 'kt.imageinput.cancel', the) === false ) {
+ return;
+ }
+
+ the.element.classList.remove('image-input-changed');
+ the.element.classList.remove('image-input-empty');
+
+ if (the.src === 'none') {
+ KTUtil.css(the.wrapperElement, 'background-image', '');
+ the.element.classList.add('image-input-empty');
+ } else {
+ KTUtil.css(the.wrapperElement, 'background-image', the.src);
+ }
+
+ the.inputElement.value = "";
+
+ if ( the.hiddenElement !== null ) {
+ the.hiddenElement.value = "0";
+ }
+
+ // Fire canceled event
+ KTEventHandler.trigger(the.element, 'kt.imageinput.canceled', the);
+ }
+
+ var _remove = function(e) {
+ e.preventDefault();
+
+ // Fire remove event
+ if ( KTEventHandler.trigger(the.element, 'kt.imageinput.remove', the) === false ) {
+ return;
+ }
+
+ the.element.classList.remove('image-input-changed');
+ the.element.classList.add('image-input-empty');
+
+ KTUtil.css(the.wrapperElement, 'background-image', "none");
+ the.inputElement.value = "";
+
+ if ( the.hiddenElement !== null ) {
+ the.hiddenElement.value = "1";
+ }
+
+ // Fire removed event
+ KTEventHandler.trigger(the.element, 'kt.imageinput.removed', the);
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('image-input');
+ }
+
+ // Construct Class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.getInputElement = function() {
+ return the.inputElement;
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTImageInput.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('image-input') ) {
+ return KTUtil.data(element).get('image-input');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTImageInput.createInstances = function(selector = '[data-kt-image-input]') {
+ // Initialize Menus
+ var elements = document.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ new KTImageInput(elements[i]);
+ }
+ }
+}
+
+// Global initialization
+KTImageInput.init = function() {
+ KTImageInput.createInstances();
+};
+
+// Webpack Support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTImageInput;
+}
+
+"use strict";
+
+var KTMenuHandlersInitialized = false;
+
+// Class definition
+var KTMenu = function(element, options) {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ dropdown: {
+ hoverTimeout: 200,
+ zindex: 107
+ },
+
+ accordion: {
+ slideSpeed: 250,
+ expand: false
+ }
+ };
+
+ ////////////////////////////
+ // ** Private Methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('menu') === true ) {
+ the = KTUtil.data(element).get('menu');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('menu');
+ the.element = element;
+ the.triggerElement;
+ the.disabled = false;
+
+ // Set initialized
+ the.element.setAttribute('data-kt-menu', 'true');
+
+ _setTriggerElement();
+ _update();
+
+ KTUtil.data(the.element).set('menu', the);
+ }
+
+ var _destroy = function() { // todo
+
+ }
+
+ // Event Handlers
+ // Toggle handler
+ var _click = function(element, e) {
+ e.preventDefault();
+
+ if (the.disabled === true) {
+ return;
+ }
+
+ var item = _getItemElement(element);
+
+ if ( _getOptionFromElementAttribute(item, 'trigger') !== 'click' ) {
+ return;
+ }
+
+ if ( _getOptionFromElementAttribute(item, 'toggle') === false ) {
+ _show(item);
+ } else {
+ _toggle(item);
+ }
+ }
+
+ // Link handler
+ var _link = function(element, e) {
+ if (the.disabled === true) {
+ return;
+ }
+
+ if ( KTEventHandler.trigger(the.element, 'kt.menu.link.click', element) === false ) {
+ return;
+ }
+
+ // Dismiss all shown dropdowns
+ KTMenu.hideDropdowns();
+
+ KTEventHandler.trigger(the.element, 'kt.menu.link.clicked', element);
+ }
+
+ // Dismiss handler
+ var _dismiss = function(element, e) {
+ var item = _getItemElement(element);
+ var items = _getItemChildElements(item);
+
+ if ( item !== null && _getItemSubType(item) === 'dropdown') {
+ _hide(item); // hide items dropdown
+ // Hide all child elements as well
+
+ if ( items.length > 0 ) {
+ for (var i = 0, len = items.length; i < len; i++) {
+ if ( items[i] !== null && _getItemSubType(items[i]) === 'dropdown') {
+ _hide(tems[i]);
+ }
+ }
+ }
+ }
+ }
+
+ // Mouseover handle
+ var _mouseover = function(element, e) {
+ var item = _getItemElement(element);
+
+ if (the.disabled === true) {
+ return;
+ }
+
+ if ( item === null ) {
+ return;
+ }
+
+ if ( _getOptionFromElementAttribute(item, 'trigger') !== 'hover' ) {
+ return;
+ }
+
+ if ( KTUtil.data(item).get('hover') === '1' ) {
+ clearTimeout(KTUtil.data(item).get('timeout'));
+ KTUtil.data(item).remove('hover');
+ KTUtil.data(item).remove('timeout');
+ }
+
+ _show(item);
+ }
+
+ // Mouseout handle
+ var _mouseout = function(element, e) {
+ var item = _getItemElement(element);
+
+ if (the.disabled === true) {
+ return;
+ }
+
+ if ( item === null ) {
+ return;
+ }
+
+ if ( _getOptionFromElementAttribute(item, 'trigger') !== 'hover' ) {
+ return;
+ }
+
+ var timeout = setTimeout(function() {
+ if ( KTUtil.data(item).get('hover') === '1' ) {
+ _hide(item);
+ }
+ }, the.options.dropdown.hoverTimeout);
+
+ KTUtil.data(item).set('hover', '1');
+ KTUtil.data(item).set('timeout', timeout);
+ }
+
+ // Toggle item sub
+ var _toggle = function(item) {
+ if ( !item ) {
+ item = the.triggerElement;
+ }
+
+ if ( _isItemSubShown(item) === true ) {
+ _hide(item);
+ } else {
+ _show(item);
+ }
+ }
+
+ // Show item sub
+ var _show = function(item) {
+ if ( !item ) {
+ item = the.triggerElement;
+ }
+
+ if ( _isItemSubShown(item) === true ) {
+ return;
+ }
+
+ if ( _getItemSubType(item) === 'dropdown' ) {
+ _showDropdown(item); // // show current dropdown
+ } else if ( _getItemSubType(item) === 'accordion' ) {
+ _showAccordion(item);
+ }
+
+ // Remember last submenu type
+ KTUtil.data(item).set('type', _getItemSubType(item)); // updated
+ }
+
+ // Hide item sub
+ var _hide = function(item) {
+ if ( !item ) {
+ item = the.triggerElement;
+ }
+
+ if ( _isItemSubShown(item) === false ) {
+ return;
+ }
+
+ if ( _getItemSubType(item) === 'dropdown' ) {
+ _hideDropdown(item);
+ } else if ( _getItemSubType(item) === 'accordion' ) {
+ _hideAccordion(item);
+ }
+ }
+
+ // Reset item state classes if item sub type changed
+ var _reset = function(item) {
+ if ( _hasItemSub(item) === false ) {
+ return;
+ }
+
+ var sub = _getItemSubElement(item);
+
+ // Reset sub state if sub type is changed during the window resize
+ if ( KTUtil.data(item).has('type') && KTUtil.data(item).get('type') !== _getItemSubType(item) ) { // updated
+ KTUtil.removeClass(item, 'hover');
+ KTUtil.removeClass(item, 'show');
+ KTUtil.removeClass(sub, 'show');
+ } // updated
+ }
+
+ // Update all item state classes if item sub type changed
+ var _update = function() {
+ var items = the.element.querySelectorAll('.menu-item[data-kt-menu-trigger]');
+
+ if ( items && items.length > 0 ) {
+ for (var i = 0, len = items.length; i < len; i++) {
+ _reset(items[i]);
+ }
+ }
+ }
+
+ // Set external trigger element
+ var _setTriggerElement = function() {
+ var target = document.querySelector('[data-kt-menu-target="# ' + the.element.getAttribute('id') + '"]');
+
+ if ( target !== null ) {
+ the.triggerElement = target;
+ } else if ( the.element.closest('[data-kt-menu-trigger]') ) {
+ the.triggerElement = the.element.closest('[data-kt-menu-trigger]');
+ } else if ( the.element.parentNode && KTUtil.child(the.element.parentNode, '[data-kt-menu-trigger]')) {
+ the.triggerElement = KTUtil.child(the.element.parentNode, '[data-kt-menu-trigger]');
+ }
+
+ if ( the.triggerElement ) {
+ KTUtil.data(the.triggerElement).set('menu', the);
+ }
+ }
+
+ // Test if menu has external trigger element
+ var _isTriggerElement = function(item) {
+ return ( the.triggerElement === item ) ? true : false;
+ }
+
+ // Test if item's sub is shown
+ var _isItemSubShown = function(item) {
+ var sub = _getItemSubElement(item);
+
+ if ( sub !== null ) {
+ if ( _getItemSubType(item) === 'dropdown' ) {
+ if ( KTUtil.hasClass(sub, 'show') === true && sub.hasAttribute('data-popper-placement') === true ) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return KTUtil.hasClass(item, 'show');
+ }
+ } else {
+ return false;
+ }
+ }
+
+ // Test if item dropdown is permanent
+ var _isItemDropdownPermanent = function(item) {
+ return _getOptionFromElementAttribute(item, 'permanent') === true ? true : false;
+ }
+
+ // Test if item's parent is shown
+ var _isItemParentShown = function(item) {
+ return KTUtil.parents(item, '.menu-item.show').length > 0;
+ }
+
+ // Test of it is item sub element
+ var _isItemSubElement = function(item) {
+ return KTUtil.hasClass(item, 'menu-sub');
+ }
+
+ // Test if item has sub
+ var _hasItemSub = function(item) {
+ return (KTUtil.hasClass(item, 'menu-item') && item.hasAttribute('data-kt-menu-trigger'));
+ }
+
+ // Get link element
+ var _getItemLinkElement = function(item) {
+ return KTUtil.child(item, '.menu-link');
+ }
+
+ // Get toggle element
+ var _getItemToggleElement = function(item) {
+ if ( the.triggerElement ) {
+ return the.triggerElement;
+ } else {
+ return _getItemLinkElement(item);
+ }
+ }
+
+ // Get item sub element
+ var _getItemSubElement = function(item) {
+ if ( _isTriggerElement(item) === true ) {
+ return the.element;
+ } if ( item.classList.contains('menu-sub') === true ) {
+ return item;
+ } else if ( KTUtil.data(item).has('sub') ) {
+ return KTUtil.data(item).get('sub');
+ } else {
+ return KTUtil.child(item, '.menu-sub');
+ }
+ }
+
+ // Get item sub type
+ var _getItemSubType = function(element) {
+ var sub = _getItemSubElement(element);
+
+ if ( sub && parseInt(KTUtil.css(sub, 'z-index')) > 0 ) {
+ return "dropdown";
+ } else {
+ return "accordion";
+ }
+ }
+
+ // Get item element
+ var _getItemElement = function(element) {
+ var item, sub;
+
+ // Element is the external trigger element
+ if (_isTriggerElement(element) ) {
+ return element;
+ }
+
+ // Element has item toggler attribute
+ if ( element.hasAttribute('data-kt-menu-trigger') ) {
+ return element;
+ }
+
+ // Element has item DOM reference in it's data storage
+ if ( KTUtil.data(element).has('item') ) {
+ return KTUtil.data(element).get('item');
+ }
+
+ // Item is parent of element
+ if ( (item = element.closest('.menu-item[data-kt-menu-trigger]')) ) {
+ return item;
+ }
+
+ // Element's parent has item DOM reference in it's data storage
+ if ( (sub = element.closest('.menu-sub')) ) {
+ if ( KTUtil.data(sub).has('item') === true ) {
+ return KTUtil.data(sub).get('item')
+ }
+ }
+ }
+
+ // Get item parent element
+ var _getItemParentElement = function(item) {
+ var sub = item.closest('.menu-sub');
+ var parentItem;
+
+ if ( KTUtil.data(sub).has('item') ) {
+ return KTUtil.data(sub).get('item');
+ }
+
+ if ( sub && (parentItem = sub.closest('.menu-item[data-kt-menu-trigger]')) ) {
+ return parentItem;
+ }
+
+ return null;
+ }
+
+ // Get item parent elements
+ var _getItemParentElements = function(item) {
+ var parents = [];
+ var parent;
+ var i = 0;
+
+ do {
+ parent = _getItemParentElement(item);
+
+ if ( parent ) {
+ parents.push(parent);
+ item = parent;
+ }
+
+ i++;
+ } while (parent !== null && i < 20);
+
+ if ( the.triggerElement ) {
+ parents.unshift(the.triggerElement);
+ }
+
+ return parents;
+ }
+
+ // Get item child element
+ var _getItemChildElement = function(item) {
+ var selector = item;
+ var element;
+
+ if ( KTUtil.data(item).get('sub') ) {
+ selector = KTUtil.data(item).get('sub');
+ }
+
+ if ( selector !== null ) {
+ //element = selector.querySelector('.show.menu-item[data-kt-menu-trigger]');
+ element = selector.querySelector('.menu-item[data-kt-menu-trigger]');
+
+ if ( element ) {
+ return element;
+ } else {
+ return null;
+ }
+ } else {
+ return null;
+ }
+ }
+
+ // Get item child elements
+ var _getItemChildElements = function(item) {
+ var children = [];
+ var child;
+ var i = 0;
+
+ do {
+ child = _getItemChildElement(item);
+
+ if ( child ) {
+ children.push(child);
+ item = child;
+ }
+
+ i++;
+ } while (child !== null && i < 20);
+
+ return children;
+ }
+
+ // Show item dropdown
+ var _showDropdown = function(item) {
+ // Handle dropdown show event
+ if ( KTEventHandler.trigger(the.element, 'kt.menu.dropdown.show', item) === false ) {
+ return;
+ }
+
+ // Hide all currently shown dropdowns except current one
+ KTMenu.hideDropdowns(item);
+
+ var toggle = _isTriggerElement(item) ? item : _getItemLinkElement(item);
+ var sub = _getItemSubElement(item);
+
+ var width = _getOptionFromElementAttribute(item, 'width');
+ var height = _getOptionFromElementAttribute(item, 'height');
+
+ var zindex = the.options.dropdown.zindex; // update
+ var parentZindex = KTUtil.getHighestZindex(item); // update
+
+ // Apply a new z-index if dropdown's toggle element or it's parent has greater z-index // update
+ if ( parentZindex !== null && parentZindex >= zindex ) {
+ zindex = parentZindex + 1;
+ }
+
+ if ( zindex > 0 ) {
+ KTUtil.css(sub, 'z-index', zindex);
+ }
+
+ if ( width !== null ) {
+ KTUtil.css(sub, 'width', width);
+ }
+
+ if ( height !== null ) {
+ KTUtil.css(sub, 'height', height);
+ }
+
+ KTUtil.css(sub, 'display', '');
+ KTUtil.css(sub, 'overflow', '');
+
+ // Init popper(new)
+ _initDropdownPopper(item, sub);
+
+ KTUtil.addClass(item, 'show');
+ KTUtil.addClass(item, 'menu-dropdown');
+ KTUtil.addClass(sub, 'show');
+
+ // Append the sub the the root of the menu
+ if ( _getOptionFromElementAttribute(item, 'overflow') === true ) {
+ document.body.appendChild(sub);
+ KTUtil.data(item).set('sub', sub);
+ KTUtil.data(sub).set('item', item);
+ KTUtil.data(sub).set('menu', the);
+ } else {
+ KTUtil.data(sub).set('item', item);
+ }
+
+ // Handle dropdown shown event
+ KTEventHandler.trigger(the.element, 'kt.menu.dropdown.shown', item);
+ }
+
+ // Hide item dropdown
+ var _hideDropdown = function(item) {
+ // Handle dropdown hide event
+ if ( KTEventHandler.trigger(the.element, 'kt.menu.dropdown.hide', item) === false ) {
+ return;
+ }
+
+ var sub = _getItemSubElement(item);
+
+ KTUtil.css(sub, 'z-index', '');
+ KTUtil.css(sub, 'width', '');
+ KTUtil.css(sub, 'height', '');
+
+ KTUtil.removeClass(item, 'show');
+ KTUtil.removeClass(item, 'menu-dropdown');
+ KTUtil.removeClass(sub, 'show');
+
+ // Append the sub back to it's parent
+ if ( _getOptionFromElementAttribute(item, 'overflow') === true ) {
+ if (item.classList.contains('menu-item')) {
+ item.appendChild(sub);
+ } else {
+ KTUtil.insertAfter(the.element, item);
+ }
+
+ KTUtil.data(item).remove('sub');
+ KTUtil.data(sub).remove('item');
+ KTUtil.data(sub).remove('menu');
+ }
+
+ // Destroy popper(new)
+ _destroyDropdownPopper(item);
+
+ // Handle dropdown hidden event
+ KTEventHandler.trigger(the.element, 'kt.menu.dropdown.hidden', item);
+ }
+
+ // Init dropdown popper(new)
+ var _initDropdownPopper = function(item, sub) {
+ // Setup popper instance
+ var reference;
+ var attach = _getOptionFromElementAttribute(item, 'attach');
+
+ if ( attach ) {
+ if ( attach === 'parent') {
+ reference = item.parentNode;
+ } else {
+ reference = document.querySelector(attach);
+ }
+ } else {
+ reference = item;
+ }
+
+ var popper = Popper.createPopper(reference, sub, _getDropdownPopperConfig(item));
+ KTUtil.data(item).set('popper', popper);
+ }
+
+ // Destroy dropdown popper(new)
+ var _destroyDropdownPopper = function(item) {
+ if ( KTUtil.data(item).has('popper') === true ) {
+ KTUtil.data(item).get('popper').destroy();
+ KTUtil.data(item).remove('popper');
+ }
+ }
+
+ // Prepare popper config for dropdown(see: https://popper.js.org/docs/v2/)
+ var _getDropdownPopperConfig = function(item) {
+ // Placement
+ var placement = _getOptionFromElementAttribute(item, 'placement');
+ if (!placement) {
+ placement = 'right';
+ }
+
+ // Offset
+ var offsetValue = _getOptionFromElementAttribute(item, 'offset');
+ var offset = offsetValue ? offsetValue.split(",") : [];
+
+ if (offset.length === 2) {
+ offset[0] = parseInt(offset[0]);
+ offset[1] = parseInt(offset[1]);
+ }
+
+ // Strategy
+ var strategy = _getOptionFromElementAttribute(item, 'overflow') === true ? 'absolute' : 'fixed';
+
+ var altAxis = _getOptionFromElementAttribute(item, 'flip') !== false ? true : false;
+
+ var popperConfig = {
+ placement: placement,
+ strategy: strategy,
+ modifiers: [{
+ name: 'offset',
+ options: {
+ offset: offset
+ }
+ }, {
+ name: 'preventOverflow',
+ options: {
+ altAxis: altAxis
+ }
+ }, {
+ name: 'flip',
+ options: {
+ flipVariations: false
+ }
+ }]
+ };
+
+ return popperConfig;
+ }
+
+ // Show item accordion
+ var _showAccordion = function(item) {
+ if ( KTEventHandler.trigger(the.element, 'kt.menu.accordion.show', item) === false ) {
+ return;
+ }
+
+ var sub = _getItemSubElement(item);
+ var expand = the.options.accordion.expand;
+
+ if (_getOptionFromElementAttribute(item, 'expand') === true) {
+ expand = true;
+ } else if (_getOptionFromElementAttribute(item, 'expand') === false) {
+ expand = false;
+ } else if (_getOptionFromElementAttribute(the.element, 'expand') === true) {
+ expand = true;
+ }
+
+ if ( expand === false ) {
+ _hideAccordions(item);
+ }
+
+ if ( KTUtil.data(item).has('popper') === true ) {
+ _hideDropdown(item);
+ }
+
+ KTUtil.addClass(item, 'hover');
+
+ KTUtil.addClass(item, 'showing');
+
+ KTUtil.slideDown(sub, the.options.accordion.slideSpeed, function() {
+ KTUtil.removeClass(item, 'showing');
+ KTUtil.addClass(item, 'show');
+ KTUtil.addClass(sub, 'show');
+
+ KTEventHandler.trigger(the.element, 'kt.menu.accordion.shown', item);
+ });
+ }
+
+ // Hide item accordion
+ var _hideAccordion = function(item) {
+ if ( KTEventHandler.trigger(the.element, 'kt.menu.accordion.hide', item) === false ) {
+ return;
+ }
+
+ var sub = _getItemSubElement(item);
+
+ KTUtil.addClass(item, 'hiding');
+
+ KTUtil.slideUp(sub, the.options.accordion.slideSpeed, function() {
+ KTUtil.removeClass(item, 'hiding');
+ KTUtil.removeClass(item, 'show');
+ KTUtil.removeClass(sub, 'show');
+
+ KTUtil.removeClass(item, 'hover'); // update
+
+ KTEventHandler.trigger(the.element, 'kt.menu.accordion.hidden', item);
+ });
+ }
+
+ var _setActiveLink = function(link) {
+ var item = _getItemElement(link);
+ var parentItems = _getItemParentElements(item);
+ var parentTabPane = link.closest('.tab-pane');
+
+ var activeLinks = [].slice.call(the.element.querySelectorAll('.menu-link.active'));
+ var activeParentItems = [].slice.call(the.element.querySelectorAll('.menu-item.here, .menu-item.show'));
+
+ if (_getItemSubType(item) === "accordion") {
+ _showAccordion(item);
+ } else {
+ item.classList.add("here");
+ }
+
+ if ( parentItems && parentItems.length > 0 ) {
+ for (var i = 0, len = parentItems.length; i < len; i++) {
+ var parentItem = parentItems[i];
+
+ if (_getItemSubType(parentItem) === "accordion") {
+ _showAccordion(parentItem);
+ } else {
+ parentItem.classList.add("here");
+ }
+ }
+ }
+
+ activeLinks.map(function (activeLink) {
+ activeLink.classList.remove("active");
+ });
+
+ activeParentItems.map(function (activeParentItem) {
+ if (activeParentItem.contains(item) === false) {
+ activeParentItem.classList.remove("here");
+ activeParentItem.classList.remove("show");
+ }
+ });
+
+ // Handle tab
+ if (parentTabPane && bootstrap.Tab) {
+ var tabEl = the.element.querySelector('[data-bs-target="#' + parentTabPane.getAttribute("id") + '"]');
+ var tab = new bootstrap.Tab(tabEl);
+
+ if (tab) {
+ tab.show();
+ }
+ }
+
+ link.classList.add("active");
+ }
+
+ var _getLinkByAttribute = function(value, name = "href") {
+ var link = the.element.querySelector('a[' + name + '="' + value + '"]');
+
+ if (link) {
+ return link;
+ } else {
+ null;
+ }
+ }
+
+ // Hide all shown accordions of item
+ var _hideAccordions = function(item) {
+ var itemsToHide = KTUtil.findAll(the.element, '.show[data-kt-menu-trigger]');
+ var itemToHide;
+
+ if (itemsToHide && itemsToHide.length > 0) {
+ for (var i = 0, len = itemsToHide.length; i < len; i++) {
+ itemToHide = itemsToHide[i];
+
+ if ( _getItemSubType(itemToHide) === 'accordion' && itemToHide !== item && item.contains(itemToHide) === false && itemToHide.contains(item) === false ) {
+ _hideAccordion(itemToHide);
+ }
+ }
+ }
+ }
+
+ // Get item option(through html attributes)
+ var _getOptionFromElementAttribute = function(item, name) {
+ var attr;
+ var value = null;
+
+ if ( item && item.hasAttribute('data-kt-menu-' + name) ) {
+ attr = item.getAttribute('data-kt-menu-' + name);
+ value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+ }
+
+ return value;
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('menu');
+ }
+
+ // Construct Class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Event Handlers
+ the.click = function(element, e) {
+ return _click(element, e);
+ }
+
+ the.link = function(element, e) {
+ return _link(element, e);
+ }
+
+ the.dismiss = function(element, e) {
+ return _dismiss(element, e);
+ }
+
+ the.mouseover = function(element, e) {
+ return _mouseover(element, e);
+ }
+
+ the.mouseout = function(element, e) {
+ return _mouseout(element, e);
+ }
+
+ // General Methods
+ the.getItemTriggerType = function(item) {
+ return _getOptionFromElementAttribute(item, 'trigger');
+ }
+
+ the.getItemSubType = function(element) {
+ return _getItemSubType(element);
+ }
+
+ the.show = function(item) {
+ return _show(item);
+ }
+
+ the.hide = function(item) {
+ return _hide(item);
+ }
+
+ the.toggle = function(item) {
+ return _toggle(item);
+ }
+
+ the.reset = function(item) {
+ return _reset(item);
+ }
+
+ the.update = function() {
+ return _update();
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.setActiveLink = function(link) {
+ return _setActiveLink(link);
+ }
+
+ the.getLinkByAttribute = function(value, name = "href") {
+ return _getLinkByAttribute(value, name);
+ }
+
+ the.getItemLinkElement = function(item) {
+ return _getItemLinkElement(item);
+ }
+
+ the.getItemToggleElement = function(item) {
+ return _getItemToggleElement(item);
+ }
+
+ the.getItemSubElement = function(item) {
+ return _getItemSubElement(item);
+ }
+
+ the.getItemParentElements = function(item) {
+ return _getItemParentElements(item);
+ }
+
+ the.isItemSubShown = function(item) {
+ return _isItemSubShown(item);
+ }
+
+ the.isItemParentShown = function(item) {
+ return _isItemParentShown(item);
+ }
+
+ the.getTriggerElement = function() {
+ return the.triggerElement;
+ }
+
+ the.isItemDropdownPermanent = function(item) {
+ return _isItemDropdownPermanent(item);
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ the.disable = function() {
+ the.disabled = true;
+ }
+
+ the.enable = function() {
+ the.disabled = false;
+ }
+
+ // Accordion Mode Methods
+ the.hideAccordions = function(item) {
+ return _hideAccordions(item);
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+};
+
+// Get KTMenu instance by element
+KTMenu.getInstance = function(element) {
+ var menu;
+ var item;
+
+ if (!element) {
+ return null;
+ }
+
+ // Element has menu DOM reference in it's DATA storage
+ if ( KTUtil.data(element).has('menu') ) {
+ return KTUtil.data(element).get('menu');
+ }
+
+ // Element has .menu parent
+ if ( menu = element.closest('.menu') ) {
+ if ( KTUtil.data(menu).has('menu') ) {
+ return KTUtil.data(menu).get('menu');
+ }
+ }
+
+ // Element has a parent with DOM reference to .menu in it's DATA storage
+ if ( KTUtil.hasClass(element, 'menu-link') ) {
+ var sub = element.closest('.menu-sub');
+
+ if ( KTUtil.data(sub).has('menu') ) {
+ return KTUtil.data(sub).get('menu');
+ }
+ }
+
+ return null;
+}
+
+// Hide all dropdowns and skip one if provided
+KTMenu.hideDropdowns = function(skip) {
+ var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
+
+ if (items && items.length > 0) {
+ for (var i = 0, len = items.length; i < len; i++) {
+ var item = items[i];
+ var menu = KTMenu.getInstance(item);
+
+ if ( menu && menu.getItemSubType(item) === 'dropdown' ) {
+ if ( skip ) {
+ if ( menu.getItemSubElement(item).contains(skip) === false && item.contains(skip) === false && item !== skip ) {
+ menu.hide(item);
+ }
+ } else {
+ menu.hide(item);
+ }
+ }
+ }
+ }
+}
+
+// Update all dropdowns popover instances
+KTMenu.updateDropdowns = function() {
+ var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]');
+
+ if (items && items.length > 0) {
+ for (var i = 0, len = items.length; i < len; i++) {
+ var item = items[i];
+
+ if ( KTUtil.data(item).has('popper') ) {
+ KTUtil.data(item).get('popper').forceUpdate();
+ }
+ }
+ }
+}
+
+// Global handlers
+KTMenu.initHandlers = function() {
+ // Dropdown handler
+ document.addEventListener("click", function(e) {
+ var items = document.querySelectorAll('.show.menu-dropdown[data-kt-menu-trigger]:not([data-kt-menu-static="true"])');
+ var menu;
+ var item;
+ var sub;
+ var menuObj;
+
+ if ( items && items.length > 0 ) {
+ for ( var i = 0, len = items.length; i < len; i++ ) {
+ item = items[i];
+ menuObj = KTMenu.getInstance(item);
+
+ if (menuObj && menuObj.getItemSubType(item) === 'dropdown') {
+ menu = menuObj.getElement();
+ sub = menuObj.getItemSubElement(item);
+
+ if ( item === e.target || item.contains(e.target) ) {
+ continue;
+ }
+
+ if ( sub === e.target || sub.contains(e.target) ) {
+ continue;
+ }
+
+ menuObj.hide(item);
+ }
+ }
+ }
+ });
+
+ // Sub toggle handler(updated)
+ KTUtil.on(document.body, '.menu-item[data-kt-menu-trigger] > .menu-link, [data-kt-menu-trigger]:not(.menu-item):not([data-kt-menu-trigger="auto"])', 'click', function(e) {
+ var menu = KTMenu.getInstance(this);
+
+ if ( menu !== null ) {
+ return menu.click(this, e);
+ }
+ });
+
+ // Link handler
+ KTUtil.on(document.body, '.menu-item:not([data-kt-menu-trigger]) > .menu-link', 'click', function(e) {
+ var menu = KTMenu.getInstance(this);
+
+ if ( menu !== null ) {
+ return menu.link(this, e);
+ }
+ });
+
+ // Dismiss handler
+ KTUtil.on(document.body, '[data-kt-menu-dismiss="true"]', 'click', function(e) {
+ var menu = KTMenu.getInstance(this);
+
+ if ( menu !== null ) {
+ return menu.dismiss(this, e);
+ }
+ });
+
+ // Mouseover handler
+ KTUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseover', function(e) {
+ var menu = KTMenu.getInstance(this);
+
+ if ( menu !== null && menu.getItemSubType(this) === 'dropdown' ) {
+ return menu.mouseover(this, e);
+ }
+ });
+
+ // Mouseout handler
+ KTUtil.on(document.body, '[data-kt-menu-trigger], .menu-sub', 'mouseout', function(e) {
+ var menu = KTMenu.getInstance(this);
+
+ if ( menu !== null && menu.getItemSubType(this) === 'dropdown' ) {
+ return menu.mouseout(this, e);
+ }
+ });
+
+ // Resize handler
+ window.addEventListener('resize', function() {
+ var menu;
+ var timer;
+
+ KTUtil.throttle(timer, function() {
+ // Locate and update Offcanvas instances on window resize
+ var elements = document.querySelectorAll('[data-kt-menu="true"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ menu = KTMenu.getInstance(elements[i]);
+ if (menu) {
+ menu.update();
+ }
+ }
+ }
+ }, 200);
+ });
+}
+
+// Render menus by url
+KTMenu.updateByLinkAttribute = function(value, name = "href") {
+ // Locate and update Offcanvas instances on window resize
+ var elements = document.querySelectorAll('[data-kt-menu="true"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var menu = KTMenu.getInstance(elements[i]);
+
+ if (menu) {
+ var link = menu.getLinkByAttribute(value, name);
+ if (link) {
+ menu.setActiveLink(link);
+ }
+ }
+ }
+ }
+}
+
+// Global instances
+KTMenu.createInstances = function(selector = '[data-kt-menu="true"]') {
+ // Initialize menus
+ var elements = document.querySelectorAll(selector);
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ new KTMenu(elements[i]);
+ }
+ }
+}
+
+// Global initialization
+KTMenu.init = function() {
+ KTMenu.createInstances();
+
+ if (KTMenuHandlersInitialized === false) {
+ KTMenu.initHandlers();
+
+ KTMenuHandlersInitialized = true;
+ }
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTMenu;
+}
+
+"use strict";
+
+// Class definition
+var KTPasswordMeter = function(element, options) {
+ ////////////////////////////
+ // ** Private variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if (!element) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ minLength: 8,
+ checkUppercase: true,
+ checkLowercase: true,
+ checkDigit: true,
+ checkChar: true,
+ scoreHighlightClass: 'active'
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ // Constructor
+ var _construct = function() {
+ if ( KTUtil.data(element).has('password-meter') === true ) {
+ the = KTUtil.data(element).get('password-meter');
+ } else {
+ _init();
+ }
+ }
+
+ // Initialize
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.score = 0;
+ the.checkSteps = 5;
+
+ // Elements
+ the.element = element;
+ the.inputElement = the.element.querySelector('input[type]');
+ the.visibilityElement = the.element.querySelector('[data-kt-password-meter-control="visibility"]');
+ the.highlightElement = the.element.querySelector('[data-kt-password-meter-control="highlight"]');
+
+ // Set initialized
+ the.element.setAttribute('data-kt-password-meter', 'true');
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('password-meter', the);
+ }
+
+ // Handlers
+ var _handlers = function() {
+ if (the.highlightElement) {
+ the.inputElement.addEventListener('input', function() {
+ _check();
+ });
+ }
+
+ if (the.visibilityElement) {
+ the.visibilityElement.addEventListener('click', function() {
+ _visibility();
+ });
+ }
+ }
+
+ // Event handlers
+ var _check = function() {
+ var score = 0;
+ var checkScore = _getCheckScore();
+
+ if (_checkLength() === true) {
+ score = score + checkScore;
+ }
+
+ if (the.options.checkUppercase === true && _checkLowercase() === true) {
+ score = score + checkScore;
+ }
+
+ if (the.options.checkLowercase === true && _checkUppercase() === true ) {
+ score = score + checkScore;
+ }
+
+ if (the.options.checkDigit === true && _checkDigit() === true ) {
+ score = score + checkScore;
+ }
+
+ if (the.options.checkChar === true && _checkChar() === true ) {
+ score = score + checkScore;
+ }
+
+ the.score = score;
+
+ _highlight();
+ }
+
+ var _checkLength = function() {
+ return the.inputElement.value.length >= the.options.minLength; // 20 score
+ }
+
+ var _checkLowercase = function() {
+ return /[a-z]/.test(the.inputElement.value); // 20 score
+ }
+
+ var _checkUppercase = function() {
+ return /[A-Z]/.test(the.inputElement.value); // 20 score
+ }
+
+ var _checkDigit = function() {
+ return /[0-9]/.test(the.inputElement.value); // 20 score
+ }
+
+ var _checkChar = function() {
+ return /[~`!#@$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g.test(the.inputElement.value); // 20 score
+ }
+
+ var _getCheckScore = function() {
+ var count = 1;
+
+ if (the.options.checkUppercase === true) {
+ count++;
+ }
+
+ if (the.options.checkLowercase === true) {
+ count++;
+ }
+
+ if (the.options.checkDigit === true) {
+ count++;
+ }
+
+ if (the.options.checkChar === true) {
+ count++;
+ }
+
+ the.checkSteps = count;
+
+ return 100 / the.checkSteps;
+ }
+
+ var _highlight = function() {
+ var items = [].slice.call(the.highlightElement.querySelectorAll('div'));
+ var total = items.length;
+ var index = 0;
+ var checkScore = _getCheckScore();
+ var score = _getScore();
+
+ items.map(function (item) {
+ index++;
+
+ if ( (checkScore * index * (the.checkSteps / total)) <= score ) {
+ item.classList.add('active');
+ } else {
+ item.classList.remove('active');
+ }
+ });
+ }
+
+ var _visibility = function() {
+ var visibleIcon = the.visibilityElement.querySelector('i:not(.d-none), .svg-icon:not(.d-none)');
+ var hiddenIcon = the.visibilityElement.querySelector('i.d-none, .svg-icon.d-none');
+
+ if (the.inputElement.getAttribute('type').toLowerCase() === 'password' ) {
+ the.inputElement.setAttribute('type', 'text');
+ } else {
+ the.inputElement.setAttribute('type', 'password');
+ }
+
+ visibleIcon.classList.add('d-none');
+ hiddenIcon.classList.remove('d-none');
+
+ the.inputElement.focus();
+ }
+
+ var _reset = function() {
+ the.score = 0;
+
+ _highlight();
+ }
+
+ // Gets current password score
+ var _getScore = function() {
+ return the.score;
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('password-meter');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.check = function() {
+ return _check();
+ }
+
+ the.getScore = function() {
+ return _getScore();
+ }
+
+ the.reset = function() {
+ return _reset();
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+};
+
+// Static methods
+KTPasswordMeter.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('password-meter') ) {
+ return KTUtil.data(element).get('password-meter');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTPasswordMeter.createInstances = function(selector = '[data-kt-password-meter]') {
+ // Get instances
+ var elements = document.body.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ // Initialize instances
+ new KTPasswordMeter(elements[i]);
+ }
+ }
+}
+
+// Global initialization
+KTPasswordMeter.init = function() {
+ KTPasswordMeter.createInstances();
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTPasswordMeter;
+}
+"use strict";
+
+var KTScrollHandlersInitialized = false;
+
+// Class definition
+var KTScroll = function(element, options) {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if (!element) {
+ return;
+ }
+
+ // Default options
+ var defaultOptions = {
+ saveState: true
+ };
+
+ ////////////////////////////
+ // ** Private Methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('scroll') ) {
+ the = KTUtil.data(element).get('scroll');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+
+ // Elements
+ the.element = element;
+ the.id = the.element.getAttribute('id');
+
+ // Set initialized
+ the.element.setAttribute('data-kt-scroll', 'true');
+
+ // Update
+ _update();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('scroll', the);
+ }
+
+ var _setupHeight = function() {
+ var heightType = _getHeightType();
+ var height = _getHeight();
+
+ // Set height
+ if ( height !== null && height.length > 0 ) {
+ KTUtil.css(the.element, heightType, height);
+ } else {
+ KTUtil.css(the.element, heightType, '');
+ }
+ }
+
+ var _setupState = function () {
+ var namespace = _getStorageNamespace();
+
+ if ( _getOption('save-state') === true && the.id ) {
+ if ( localStorage.getItem(namespace + the.id + 'st') ) {
+ var pos = parseInt(localStorage.getItem(namespace + the.id + 'st'));
+
+ if ( pos > 0 ) {
+ the.element.scroll({
+ top: pos,
+ behavior: 'instant'
+ });
+ }
+ }
+ }
+ }
+
+ var _getStorageNamespace = function(postfix) {
+ return document.body.hasAttribute("data-kt-name") ? document.body.getAttribute("data-kt-name") + "_" : "";
+ }
+
+ var _setupScrollHandler = function() {
+ if ( _getOption('save-state') === true && the.id ) {
+ the.element.addEventListener('scroll', _scrollHandler);
+ } else {
+ the.element.removeEventListener('scroll', _scrollHandler);
+ }
+ }
+
+ var _destroyScrollHandler = function() {
+ the.element.removeEventListener('scroll', _scrollHandler);
+ }
+
+ var _resetHeight = function() {
+ KTUtil.css(the.element, _getHeightType(), '');
+ }
+
+ var _scrollHandler = function () {
+ var namespace = _getStorageNamespace();
+ localStorage.setItem(namespace + the.id + 'st', the.element.scrollTop);
+ }
+
+ var _update = function() {
+ // Activate/deactivate
+ if ( _getOption('activate') === true || the.element.hasAttribute('data-kt-scroll-activate') === false ) {
+ _setupHeight();
+ _setupStretchHeight();
+ _setupScrollHandler();
+ _setupState();
+ } else {
+ _resetHeight()
+ _destroyScrollHandler();
+ }
+ }
+
+ var _setupStretchHeight = function() {
+ var stretch = _getOption('stretch');
+
+ // Stretch
+ if ( stretch !== null ) {
+ var elements = document.querySelectorAll(stretch);
+
+ if ( elements && elements.length == 2 ) {
+ var element1 = elements[0];
+ var element2 = elements[1];
+ var diff = _getElementHeight(element2) - _getElementHeight(element1);
+
+ if (diff > 0) {
+ var height = parseInt(KTUtil.css(the.element, _getHeightType())) + diff;
+
+ KTUtil.css(the.element, _getHeightType(), String(height) + 'px');
+ }
+ }
+ }
+ }
+
+ var _getHeight = function() {
+ var height = _getOption(_getHeightType());
+
+ if ( height instanceof Function ) {
+ return height.call();
+ } else if ( height !== null && typeof height === 'string' && height.toLowerCase() === 'auto' ) {
+ return _getAutoHeight();
+ } else {
+ return height;
+ }
+ }
+
+ var _getAutoHeight = function() {
+ var height = KTUtil.getViewPort().height;
+ var dependencies = _getOption('dependencies');
+ var wrappers = _getOption('wrappers');
+ var offset = _getOption('offset');
+
+ // Spacings
+ height = height - _getElementSpacing(the.element);
+
+ // Height dependencies
+ //console.log('Q:' + JSON.stringify(dependencies));
+
+ if ( dependencies !== null ) {
+ var elements = document.querySelectorAll(dependencies);
+
+ if ( elements && elements.length > 0 ) {
+ for ( var i = 0, len = elements.length; i < len; i++ ) {
+ if ( KTUtil.visible(elements[i]) === false ) {
+ continue;
+ }
+
+ height = height - _getElementHeight(elements[i]);
+ }
+ }
+ }
+
+ // Wrappers
+ if ( wrappers !== null ) {
+ var elements = document.querySelectorAll(wrappers);
+ if ( elements && elements.length > 0 ) {
+ for ( var i = 0, len = elements.length; i < len; i++ ) {
+ if ( KTUtil.visible(elements[i]) === false ) {
+ continue;
+ }
+
+ height = height - _getElementSpacing(elements[i]);
+ }
+ }
+ }
+
+ // Custom offset
+ if ( offset !== null && typeof offset !== 'object') {
+ height = height - parseInt(offset);
+ }
+
+ return String(height) + 'px';
+ }
+
+ var _getElementHeight = function(element) {
+ var height = 0;
+
+ if (element !== null) {
+ height = height + parseInt(KTUtil.css(element, 'height'));
+ height = height + parseInt(KTUtil.css(element, 'margin-top'));
+ height = height + parseInt(KTUtil.css(element, 'margin-bottom'));
+
+ if (KTUtil.css(element, 'border-top')) {
+ height = height + parseInt(KTUtil.css(element, 'border-top'));
+ }
+
+ if (KTUtil.css(element, 'border-bottom')) {
+ height = height + parseInt(KTUtil.css(element, 'border-bottom'));
+ }
+ }
+
+ return height;
+ }
+
+ var _getElementSpacing = function(element) {
+ var spacing = 0;
+
+ if (element !== null) {
+ spacing = spacing + parseInt(KTUtil.css(element, 'margin-top'));
+ spacing = spacing + parseInt(KTUtil.css(element, 'margin-bottom'));
+ spacing = spacing + parseInt(KTUtil.css(element, 'padding-top'));
+ spacing = spacing + parseInt(KTUtil.css(element, 'padding-bottom'));
+
+ if (KTUtil.css(element, 'border-top')) {
+ spacing = spacing + parseInt(KTUtil.css(element, 'border-top'));
+ }
+
+ if (KTUtil.css(element, 'border-bottom')) {
+ spacing = spacing + parseInt(KTUtil.css(element, 'border-bottom'));
+ }
+ }
+
+ return spacing;
+ }
+
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-scroll-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-scroll-' + name);
+
+ var value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+
+ return value;
+ } else {
+ var optionName = KTUtil.snakeToCamel(name);
+
+ if ( the.options[optionName] ) {
+ return KTUtil.getResponsiveValue(the.options[optionName]);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ var _getHeightType = function() {
+ if (_getOption('height')) {
+ return 'height';
+ } if (_getOption('min-height')) {
+ return 'min-height';
+ } if (_getOption('max-height')) {
+ return 'max-height';
+ }
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('scroll');
+ }
+
+ // Construct Class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ the.update = function() {
+ return _update();
+ }
+
+ the.getHeight = function() {
+ return _getHeight();
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+};
+
+// Static methods
+KTScroll.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('scroll') ) {
+ return KTUtil.data(element).get('scroll');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTScroll.createInstances = function(selector = '[data-kt-scroll="true"]') {
+ // Initialize Menus
+ var elements = document.body.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ new KTScroll(elements[i]);
+ }
+ }
+}
+
+// Window resize handling
+KTScroll.handleResize = function() {
+ window.addEventListener('resize', function() {
+ var timer;
+
+ KTUtil.throttle(timer, function() {
+ // Locate and update Offcanvas instances on window resize
+ var elements = document.body.querySelectorAll('[data-kt-scroll="true"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var scroll = KTScroll.getInstance(elements[i]);
+ if (scroll) {
+ scroll.update();
+ }
+ }
+ }
+ }, 200);
+ });
+}
+
+// Global initialization
+KTScroll.init = function() {
+ KTScroll.createInstances();
+
+ if (KTScrollHandlersInitialized === false) {
+ KTScroll.handleResize();
+
+ KTScrollHandlersInitialized = true;
+ }
+};
+
+// Webpack Support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTScroll;
+}
+
+"use strict";
+
+// Class definition
+var KTScrolltop = function(element, options) {
+ ////////////////////////////
+ // ** Private variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default options
+ var defaultOptions = {
+ offset: 300,
+ speed: 600
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if (KTUtil.data(element).has('scrolltop')) {
+ the = KTUtil.data(element).get('scrolltop');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('scrolltop');
+ the.element = element;
+
+ // Set initialized
+ the.element.setAttribute('data-kt-scrolltop', 'true');
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('scrolltop', the);
+ }
+
+ var _handlers = function() {
+ var timer;
+
+ window.addEventListener('scroll', function() {
+ KTUtil.throttle(timer, function() {
+ _scroll();
+ }, 200);
+ });
+
+ KTUtil.addEvent(the.element, 'click', function(e) {
+ e.preventDefault();
+
+ _go();
+ });
+ }
+
+ var _scroll = function() {
+ var offset = parseInt(_getOption('offset'));
+
+ var pos = KTUtil.getScrollTop(); // current vertical position
+
+ if ( pos > offset ) {
+ if ( document.body.hasAttribute('data-kt-scrolltop') === false ) {
+ document.body.setAttribute('data-kt-scrolltop', 'on');
+ }
+ } else {
+ if ( document.body.hasAttribute('data-kt-scrolltop') === true ) {
+ document.body.removeAttribute('data-kt-scrolltop');
+ }
+ }
+ }
+
+ var _go = function() {
+ var speed = parseInt(_getOption('speed'));
+
+ window.scrollTo({top: 0, behavior: 'smooth'});
+ //KTUtil.scrollTop(0, speed);
+ }
+
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-scrolltop-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-scrolltop-' + name);
+ var value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+
+ return value;
+ } else {
+ var optionName = KTUtil.snakeToCamel(name);
+
+ if ( the.options[optionName] ) {
+ return KTUtil.getResponsiveValue(the.options[optionName]);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('scrolltop');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.go = function() {
+ return _go();
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+};
+
+// Static methods
+KTScrolltop.getInstance = function(element) {
+ if (element && KTUtil.data(element).has('scrolltop')) {
+ return KTUtil.data(element).get('scrolltop');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTScrolltop.createInstances = function(selector = '[data-kt-scrolltop="true"]') {
+ // Initialize Menus
+ var elements = document.body.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ new KTScrolltop(elements[i]);
+ }
+ }
+}
+
+// Global initialization
+KTScrolltop.init = function() {
+ KTScrolltop.createInstances();
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTScrolltop;
+}
+
+"use strict";
+
+// Class definition
+var KTSearch = function(element, options) {
+ ////////////////////////////
+ // ** Private variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if (!element) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ minLength: 2, // Miniam text lenght to query search
+ keypress: true, // Enable search on keypress
+ enter: true, // Enable search on enter key press
+ layout: 'menu', // Use 'menu' or 'inline' layout options to display search results
+ responsive: null, // Pass integer value or bootstrap compatible breakpoint key(sm,md,lg,xl,xxl) to enable reponsive form mode for device width below the breakpoint value
+ showOnFocus: true // Always show menu on input focus
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ // Construct
+ var _construct = function() {
+ if ( KTUtil.data(element).has('search') === true ) {
+ the = KTUtil.data(element).get('search');
+ } else {
+ _init();
+ }
+ }
+
+ // Init
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.processing = false;
+
+ // Elements
+ the.element = element;
+ the.contentElement = _getElement('content');
+ the.formElement = _getElement('form');
+ the.inputElement = _getElement('input');
+ the.spinnerElement = _getElement('spinner');
+ the.clearElement = _getElement('clear');
+ the.toggleElement = _getElement('toggle');
+ the.submitElement = _getElement('submit');
+ the.toolbarElement = _getElement('toolbar');
+
+ the.resultsElement = _getElement('results');
+ the.suggestionElement = _getElement('suggestion');
+ the.emptyElement = _getElement('empty');
+
+ // Set initialized
+ the.element.setAttribute('data-kt-search', 'true');
+
+ // Layout
+ the.layout = _getOption('layout');
+
+ // Menu
+ if ( the.layout === 'menu' ) {
+ the.menuObject = new KTMenu(the.contentElement);
+ } else {
+ the.menuObject = null;
+ }
+
+ // Update
+ _update();
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('search', the);
+ }
+
+ // Handlera
+ var _handlers = function() {
+ // Focus
+ the.inputElement.addEventListener('focus', _focus);
+
+ // Blur
+ the.inputElement.addEventListener('blur', _blur);
+
+ // Keypress
+ if ( _getOption('keypress') === true ) {
+ the.inputElement.addEventListener('input', _input);
+ }
+
+ // Submit
+ if ( the.submitElement ) {
+ the.submitElement.addEventListener('click', _search);
+ }
+
+ // Enter
+ if ( _getOption('enter') === true ) {
+ the.inputElement.addEventListener('keypress', _enter);
+ }
+
+ // Clear
+ if ( the.clearElement ) {
+ the.clearElement.addEventListener('click', _clear);
+ }
+
+ // Menu
+ if ( the.menuObject ) {
+ // Toggle menu
+ if ( the.toggleElement ) {
+ the.toggleElement.addEventListener('click', _show);
+
+ the.menuObject.on('kt.menu.dropdown.show', function(item) {
+ if (KTUtil.visible(the.toggleElement)) {
+ the.toggleElement.classList.add('active');
+ the.toggleElement.classList.add('show');
+ }
+ });
+
+ the.menuObject.on('kt.menu.dropdown.hide', function(item) {
+ if (KTUtil.visible(the.toggleElement)) {
+ the.toggleElement.classList.remove('active');
+ the.toggleElement.classList.remove('show');
+ }
+ });
+ }
+
+ the.menuObject.on('kt.menu.dropdown.shown', function() {
+ the.inputElement.focus();
+ });
+ }
+
+ // Window resize handling
+ window.addEventListener('resize', function() {
+ var timer;
+
+ KTUtil.throttle(timer, function() {
+ _update();
+ }, 200);
+ });
+ }
+
+ // Focus
+ var _focus = function() {
+ the.element.classList.add('focus');
+
+ if ( _getOption('show-on-focus') === true || the.inputElement.value.length >= minLength ) {
+ _show();
+ }
+ }
+
+ // Blur
+ var _blur = function() {
+ the.element.classList.remove('focus');
+ }
+
+ // Enter
+ var _enter = function(e) {
+ var key = e.charCode || e.keyCode || 0;
+
+ if (key == 13) {
+ e.preventDefault();
+
+ _search();
+ }
+ }
+
+ // Input
+ var _input = function() {
+ if ( _getOption('min-length') ) {
+ var minLength = parseInt(_getOption('min-length'));
+
+ if ( the.inputElement.value.length >= minLength ) {
+ _search();
+ } else if ( the.inputElement.value.length === 0 ) {
+ _clear();
+ }
+ }
+ }
+
+ // Search
+ var _search = function() {
+ if (the.processing === false) {
+ // Show search spinner
+ if (the.spinnerElement) {
+ the.spinnerElement.classList.remove("d-none");
+ }
+
+ // Hide search clear button
+ if (the.clearElement) {
+ the.clearElement.classList.add("d-none");
+ }
+
+ // Hide search toolbar
+ if (the.toolbarElement && the.formElement.contains(the.toolbarElement)) {
+ the.toolbarElement.classList.add("d-none");
+ }
+
+ // Focus input
+ the.inputElement.focus();
+
+ the.processing = true;
+ KTEventHandler.trigger(the.element, 'kt.search.process', the);
+ }
+ }
+
+ // Complete
+ var _complete = function() {
+ if (the.spinnerElement) {
+ the.spinnerElement.classList.add("d-none");
+ }
+
+ // Show search toolbar
+ if (the.clearElement) {
+ the.clearElement.classList.remove("d-none");
+ }
+
+ if ( the.inputElement.value.length === 0 ) {
+ _clear();
+ }
+
+ // Focus input
+ the.inputElement.focus();
+
+ _show();
+
+ the.processing = false;
+ }
+
+ // Clear
+ var _clear = function() {
+ if ( KTEventHandler.trigger(the.element, 'kt.search.clear', the) === false ) {
+ return;
+ }
+
+ // Clear and focus input
+ the.inputElement.value = "";
+ the.inputElement.focus();
+
+ // Hide clear icon
+ if (the.clearElement) {
+ the.clearElement.classList.add("d-none");
+ }
+
+ // Show search toolbar
+ if (the.toolbarElement && the.formElement.contains(the.toolbarElement)) {
+ the.toolbarElement.classList.remove("d-none");
+ }
+
+ // Hide menu
+ if ( _getOption('show-on-focus') === false ) {
+ _hide();
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.search.cleared', the);
+ }
+
+ // Update
+ var _update = function() {
+ // Handle responsive form
+ if (the.layout === 'menu') {
+ var responsiveFormMode = _getResponsiveFormMode();
+
+ if ( responsiveFormMode === 'on' && the.contentElement.contains(the.formElement) === false ) {
+ the.contentElement.prepend(the.formElement);
+ the.formElement.classList.remove('d-none');
+ } else if ( responsiveFormMode === 'off' && the.contentElement.contains(the.formElement) === true ) {
+ the.element.prepend(the.formElement);
+ the.formElement.classList.add('d-none');
+ }
+ }
+ }
+
+ // Show menu
+ var _show = function() {
+ if ( the.menuObject ) {
+ _update();
+
+ the.menuObject.show(the.element);
+ }
+ }
+
+ // Hide menu
+ var _hide = function() {
+ if ( the.menuObject ) {
+ _update();
+
+ the.menuObject.hide(the.element);
+ }
+ }
+
+ // Get option
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-search-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-search-' + name);
+ var value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+
+ return value;
+ } else {
+ var optionName = KTUtil.snakeToCamel(name);
+
+ if ( the.options[optionName] ) {
+ return KTUtil.getResponsiveValue(the.options[optionName]);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ // Get element
+ var _getElement = function(name) {
+ return the.element.querySelector('[data-kt-search-element="' + name + '"]');
+ }
+
+ // Check if responsive form mode is enabled
+ var _getResponsiveFormMode = function() {
+ var responsive = _getOption('responsive');
+ var width = KTUtil.getViewPort().width;
+
+ if (!responsive) {
+ return null;
+ }
+
+ var breakpoint = KTUtil.getBreakpoint(responsive);
+
+ if (!breakpoint ) {
+ breakpoint = parseInt(responsive);
+ }
+
+ if (width < breakpoint) {
+ return "on";
+ } else {
+ return "off";
+ }
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('search');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.show = function() {
+ return _show();
+ }
+
+ the.hide = function() {
+ return _hide();
+ }
+
+ the.update = function() {
+ return _update();
+ }
+
+ the.search = function() {
+ return _search();
+ }
+
+ the.complete = function() {
+ return _complete();
+ }
+
+ the.clear = function() {
+ return _clear();
+ }
+
+ the.isProcessing = function() {
+ return the.processing;
+ }
+
+ the.getQuery = function() {
+ return the.inputElement.value;
+ }
+
+ the.getMenu = function() {
+ return the.menuObject;
+ }
+
+ the.getFormElement = function() {
+ return the.formElement;
+ }
+
+ the.getInputElement = function() {
+ return the.inputElement;
+ }
+
+ the.getContentElement = function() {
+ return the.contentElement;
+ }
+
+ the.getElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+};
+
+// Static methods
+KTSearch.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('search') ) {
+ return KTUtil.data(element).get('search');
+ } else {
+ return null;
+ }
+}
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTSearch;
+}
+
+"use strict";
+
+// Class definition
+var KTStepper = function(element, options) {
+ //////////////////////////////
+ // ** Private variables ** //
+ //////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ startIndex: 1,
+ animation: false,
+ animationSpeed: '0.3s',
+ animationNextClass: 'animate__animated animate__slideInRight animate__fast',
+ animationPreviousClass: 'animate__animated animate__slideInLeft animate__fast'
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('stepper') === true ) {
+ the = KTUtil.data(element).get('stepper');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('stepper');
+
+ the.element = element;
+
+ // Set initialized
+ the.element.setAttribute('data-kt-stepper', 'true');
+
+ // Elements
+ the.steps = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"]');
+ the.btnNext = KTUtil.find(the.element, '[data-kt-stepper-action="next"]');
+ the.btnPrevious = KTUtil.find(the.element, '[data-kt-stepper-action="previous"]');
+ the.btnSubmit = KTUtil.find(the.element, '[data-kt-stepper-action="submit"]');
+
+ // Variables
+ the.totalStepsNumber = the.steps.length;
+ the.passedStepIndex = 0;
+ the.currentStepIndex = 1;
+ the.clickedStepIndex = 0;
+
+ // Set Current Step
+ if ( the.options.startIndex > 1 ) {
+ _goTo(the.options.startIndex);
+ }
+
+ // Event listeners
+ the.nextListener = function(e) {
+ e.preventDefault();
+
+ KTEventHandler.trigger(the.element, 'kt.stepper.next', the);
+ };
+
+ the.previousListener = function(e) {
+ e.preventDefault();
+
+ KTEventHandler.trigger(the.element, 'kt.stepper.previous', the);
+ };
+
+ the.stepListener = function(e) {
+ e.preventDefault();
+
+ if ( the.steps && the.steps.length > 0 ) {
+ for (var i = 0, len = the.steps.length; i < len; i++) {
+ if ( the.steps[i] === this ) {
+ the.clickedStepIndex = i + 1;
+
+ KTEventHandler.trigger(the.element, 'kt.stepper.click', the);
+
+ return;
+ }
+ }
+ }
+ };
+
+ // Event Handlers
+ KTUtil.addEvent(the.btnNext, 'click', the.nextListener);
+
+ KTUtil.addEvent(the.btnPrevious, 'click', the.previousListener);
+
+ the.stepListenerId = KTUtil.on(the.element, '[data-kt-stepper-action="step"]', 'click', the.stepListener);
+
+ // Bind Instance
+ KTUtil.data(the.element).set('stepper', the);
+ }
+
+ var _goTo = function(index) {
+ // Trigger "change" event
+ KTEventHandler.trigger(the.element, 'kt.stepper.change', the);
+
+ // Skip if this step is already shown
+ if ( index === the.currentStepIndex || index > the.totalStepsNumber || index < 0 ) {
+ return;
+ }
+
+ // Validate step number
+ index = parseInt(index);
+
+ // Set current step
+ the.passedStepIndex = the.currentStepIndex;
+ the.currentStepIndex = index;
+
+ // Refresh elements
+ _refreshUI();
+
+ // Trigger "changed" event
+ KTEventHandler.trigger(the.element, 'kt.stepper.changed', the);
+
+ return the;
+ }
+
+ var _goNext = function() {
+ return _goTo( _getNextStepIndex() );
+ }
+
+ var _goPrevious = function() {
+ return _goTo( _getPreviousStepIndex() );
+ }
+
+ var _goLast = function() {
+ return _goTo( _getLastStepIndex() );
+ }
+
+ var _goFirst = function() {
+ return _goTo( _getFirstStepIndex() );
+ }
+
+ var _refreshUI = function() {
+ var state = '';
+
+ if ( _isLastStep() ) {
+ state = 'last';
+ } else if ( _isFirstStep() ) {
+ state = 'first';
+ } else {
+ state = 'between';
+ }
+
+ // Set state class
+ KTUtil.removeClass(the.element, 'last');
+ KTUtil.removeClass(the.element, 'first');
+ KTUtil.removeClass(the.element, 'between');
+
+ KTUtil.addClass(the.element, state);
+
+ // Step Items
+ var elements = KTUtil.findAll(the.element, '[data-kt-stepper-element="nav"], [data-kt-stepper-element="content"], [data-kt-stepper-element="info"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var element = elements[i];
+ var index = KTUtil.index(element) + 1;
+
+ KTUtil.removeClass(element, 'current');
+ KTUtil.removeClass(element, 'completed');
+ KTUtil.removeClass(element, 'pending');
+
+ if ( index == the.currentStepIndex ) {
+ KTUtil.addClass(element, 'current');
+
+ if ( the.options.animation !== false && element.getAttribute('data-kt-stepper-element') == 'content' ) {
+ KTUtil.css(element, 'animationDuration', the.options.animationSpeed);
+
+ var animation = _getStepDirection(the.passedStepIndex) === 'previous' ? the.options.animationPreviousClass : the.options.animationNextClass;
+ KTUtil.animateClass(element, animation);
+ }
+ } else {
+ if ( index < the.currentStepIndex ) {
+ KTUtil.addClass(element, 'completed');
+ } else {
+ KTUtil.addClass(element, 'pending');
+ }
+ }
+ }
+ }
+ }
+
+ var _isLastStep = function() {
+ return the.currentStepIndex === the.totalStepsNumber;
+ }
+
+ var _isFirstStep = function() {
+ return the.currentStepIndex === 1;
+ }
+
+ var _isBetweenStep = function() {
+ return _isLastStep() === false && _isFirstStep() === false;
+ }
+
+ var _getNextStepIndex = function() {
+ if ( the.totalStepsNumber >= ( the.currentStepIndex + 1 ) ) {
+ return the.currentStepIndex + 1;
+ } else {
+ return the.totalStepsNumber;
+ }
+ }
+
+ var _getPreviousStepIndex = function() {
+ if ( ( the.currentStepIndex - 1 ) > 1 ) {
+ return the.currentStepIndex - 1;
+ } else {
+ return 1;
+ }
+ }
+
+ var _getFirstStepIndex = function(){
+ return 1;
+ }
+
+ var _getLastStepIndex = function() {
+ return the.totalStepsNumber;
+ }
+
+ var _getTotalStepsNumber = function() {
+ return the.totalStepsNumber;
+ }
+
+ var _getStepDirection = function(index) {
+ if ( index > the.currentStepIndex ) {
+ return 'next';
+ } else {
+ return 'previous';
+ }
+ }
+
+ var _getStepContent = function(index) {
+ var content = KTUtil.findAll(the.element, '[data-kt-stepper-element="content"]');
+
+ if ( content[index-1] ) {
+ return content[index-1];
+ } else {
+ return false;
+ }
+ }
+
+ var _destroy = function() {
+ // Event Handlers
+ KTUtil.removeEvent(the.btnNext, 'click', the.nextListener);
+
+ KTUtil.removeEvent(the.btnPrevious, 'click', the.previousListener);
+
+ KTUtil.off(the.element, 'click', the.stepListenerId);
+
+ KTUtil.data(the.element).remove('stepper');
+ }
+
+ // Construct Class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.getElement = function(index) {
+ return the.element;
+ }
+
+ the.goTo = function(index) {
+ return _goTo(index);
+ }
+
+ the.goPrevious = function() {
+ return _goPrevious();
+ }
+
+ the.goNext = function() {
+ return _goNext();
+ }
+
+ the.goFirst = function() {
+ return _goFirst();
+ }
+
+ the.goLast = function() {
+ return _goLast();
+ }
+
+ the.getCurrentStepIndex = function() {
+ return the.currentStepIndex;
+ }
+
+ the.getNextStepIndex = function() {
+ return _getNextStepIndex();
+ }
+
+ the.getPassedStepIndex = function() {
+ return the.passedStepIndex;
+ }
+
+ the.getClickedStepIndex = function() {
+ return the.clickedStepIndex;
+ }
+
+ the.getPreviousStepIndex = function() {
+ return _getPreviousStepIndex();
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTStepper.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('stepper') ) {
+ return KTUtil.data(element).get('stepper');
+ } else {
+ return null;
+ }
+}
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTStepper;
+}
+
+"use strict";
+
+var KTStickyHandlersInitialized = false;
+
+// Class definition
+var KTSticky = function(element, options) {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ offset: 200,
+ reverse: false,
+ release: null,
+ animation: true,
+ animationSpeed: '0.3s',
+ animationClass: 'animation-slide-in-down'
+ };
+ ////////////////////////////
+ // ** Private Methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('sticky') === true ) {
+ the = KTUtil.data(element).get('sticky');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ the.element = element;
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('sticky');
+ the.name = the.element.getAttribute('data-kt-sticky-name');
+ the.attributeName = 'data-kt-sticky-' + the.name;
+ the.attributeName2 = 'data-kt-' + the.name;
+ the.eventTriggerState = true;
+ the.lastScrollTop = 0;
+ the.scrollHandler;
+
+ // Set initialized
+ the.element.setAttribute('data-kt-sticky', 'true');
+
+ // Event Handlers
+ window.addEventListener('scroll', _scroll);
+
+ // Initial Launch
+ _scroll();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('sticky', the);
+ }
+
+ var _scroll = function(e) {
+ var offset = _getOption('offset');
+ var release = _getOption('release');
+ var reverse = _getOption('reverse');
+ var st;
+ var attrName;
+ var diff;
+
+ // Exit if false
+ if ( offset === false ) {
+ return;
+ }
+
+ offset = parseInt(offset);
+ release = release ? document.querySelector(release) : null;
+
+ st = KTUtil.getScrollTop();
+ diff = document.documentElement.scrollHeight - window.innerHeight - KTUtil.getScrollTop();
+
+ var proceed = (!release || (release.offsetTop - release.clientHeight) > st);
+
+ if ( reverse === true ) { // Release on reverse scroll mode
+ if ( st > offset && proceed ) {
+ if ( document.body.hasAttribute(the.attributeName) === false) {
+
+ if (_enable() === false) {
+ return;
+ }
+
+ document.body.setAttribute(the.attributeName, 'on');
+ document.body.setAttribute(the.attributeName2, 'on');
+ the.element.setAttribute("data-kt-sticky-enabled", "true");
+ }
+
+ if ( the.eventTriggerState === true ) {
+ KTEventHandler.trigger(the.element, 'kt.sticky.on', the);
+ KTEventHandler.trigger(the.element, 'kt.sticky.change', the);
+
+ the.eventTriggerState = false;
+ }
+ } else { // Back scroll mode
+ if ( document.body.hasAttribute(the.attributeName) === true) {
+ _disable();
+ document.body.removeAttribute(the.attributeName);
+ document.body.removeAttribute(the.attributeName2);
+ the.element.removeAttribute("data-kt-sticky-enabled");
+ }
+
+ if ( the.eventTriggerState === false ) {
+ KTEventHandler.trigger(the.element, 'kt.sticky.off', the);
+ KTEventHandler.trigger(the.element, 'kt.sticky.change', the);
+ the.eventTriggerState = true;
+ }
+ }
+
+ the.lastScrollTop = st;
+ } else { // Classic scroll mode
+ if ( st > offset && proceed ) {
+ if ( document.body.hasAttribute(the.attributeName) === false) {
+
+ if (_enable() === false) {
+ return;
+ }
+
+ document.body.setAttribute(the.attributeName, 'on');
+ document.body.setAttribute(the.attributeName2, 'on');
+ the.element.setAttribute("data-kt-sticky-enabled", "true");
+ }
+
+ if ( the.eventTriggerState === true ) {
+ KTEventHandler.trigger(the.element, 'kt.sticky.on', the);
+ KTEventHandler.trigger(the.element, 'kt.sticky.change', the);
+ the.eventTriggerState = false;
+ }
+ } else { // back scroll mode
+ if ( document.body.hasAttribute(the.attributeName) === true ) {
+ _disable();
+ document.body.removeAttribute(the.attributeName);
+ document.body.removeAttribute(the.attributeName2);
+ the.element.removeAttribute("data-kt-sticky-enabled");
+ }
+
+ if ( the.eventTriggerState === false ) {
+ KTEventHandler.trigger(the.element, 'kt.sticky.off', the);
+ KTEventHandler.trigger(the.element, 'kt.sticky.change', the);
+ the.eventTriggerState = true;
+ }
+ }
+ }
+
+ if (release) {
+ if ( release.offsetTop - release.clientHeight > st ) {
+ the.element.setAttribute('data-kt-sticky-released', 'true');
+ } else {
+ the.element.removeAttribute('data-kt-sticky-released');
+ }
+ }
+ }
+
+ var _enable = function(update) {
+ var top = _getOption('top');
+ top = top ? parseInt(top) : 0;
+
+ var left = _getOption('left');
+ var right = _getOption('right');
+ var width = _getOption('width');
+ var zindex = _getOption('zindex');
+ var dependencies = _getOption('dependencies');
+ var classes = _getOption('class');
+
+ var height = _calculateHeight();
+ var heightOffset = _getOption('height-offset');
+ heightOffset = heightOffset ? parseInt(heightOffset) : 0;
+
+ if (height + heightOffset + top > KTUtil.getViewPort().height) {
+ return false;
+ }
+
+ if ( update !== true && _getOption('animation') === true ) {
+ KTUtil.css(the.element, 'animationDuration', _getOption('animationSpeed'));
+ KTUtil.animateClass(the.element, 'animation ' + _getOption('animationClass'));
+ }
+
+ if ( classes !== null ) {
+ KTUtil.addClass(the.element, classes);
+ }
+
+ if ( zindex !== null ) {
+ KTUtil.css(the.element, 'z-index', zindex);
+ KTUtil.css(the.element, 'position', 'fixed');
+ }
+
+ if ( top >= 0 ) {
+ KTUtil.css(the.element, 'top', String(top) + 'px');
+ }
+
+ if ( width !== null ) {
+ if (width['target']) {
+ var targetElement = document.querySelector(width['target']);
+ if (targetElement) {
+ width = KTUtil.css(targetElement, 'width');
+ }
+ }
+
+ KTUtil.css(the.element, 'width', width);
+ }
+
+ if ( left !== null ) {
+ if ( String(left).toLowerCase() === 'auto' ) {
+ var offsetLeft = KTUtil.offset(the.element).left;
+
+ if ( offsetLeft >= 0 ) {
+ KTUtil.css(the.element, 'left', String(offsetLeft) + 'px');
+ }
+ } else {
+ KTUtil.css(the.element, 'left', left);
+ }
+ }
+
+ if ( right !== null ) {
+ KTUtil.css(the.element, 'right', right);
+ }
+
+ // Height dependencies
+ if ( dependencies !== null ) {
+ var dependencyElements = document.querySelectorAll(dependencies);
+
+ if ( dependencyElements && dependencyElements.length > 0 ) {
+ for ( var i = 0, len = dependencyElements.length; i < len; i++ ) {
+ KTUtil.css(dependencyElements[i], 'padding-top', String(height) + 'px');
+ }
+ }
+ }
+ }
+
+ var _disable = function() {
+ KTUtil.css(the.element, 'top', '');
+ KTUtil.css(the.element, 'width', '');
+ KTUtil.css(the.element, 'left', '');
+ KTUtil.css(the.element, 'right', '');
+ KTUtil.css(the.element, 'z-index', '');
+ KTUtil.css(the.element, 'position', '');
+
+ var dependencies = _getOption('dependencies');
+ var classes = _getOption('class');
+
+ if ( classes !== null ) {
+ KTUtil.removeClass(the.element, classes);
+ }
+
+ // Height dependencies
+ if ( dependencies !== null ) {
+ var dependencyElements = document.querySelectorAll(dependencies);
+
+ if ( dependencyElements && dependencyElements.length > 0 ) {
+ for ( var i = 0, len = dependencyElements.length; i < len; i++ ) {
+ KTUtil.css(dependencyElements[i], 'padding-top', '');
+ }
+ }
+ }
+ }
+
+ var _check = function() {
+
+ }
+
+ var _calculateHeight = function() {
+ var height = parseFloat(KTUtil.css(the.element, 'height'));
+
+ height = height + parseFloat(KTUtil.css(the.element, 'margin-top'));
+ height = height + parseFloat(KTUtil.css(the.element, 'margin-bottom'));
+
+ if (KTUtil.css(element, 'border-top')) {
+ height = height + parseFloat(KTUtil.css(the.element, 'border-top'));
+ }
+
+ if (KTUtil.css(element, 'border-bottom')) {
+ height = height + parseFloat(KTUtil.css(the.element, 'border-bottom'));
+ }
+
+ return height;
+ }
+
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-sticky-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-sticky-' + name);
+ var value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+
+ return value;
+ } else {
+ var optionName = KTUtil.snakeToCamel(name);
+
+ if ( the.options[optionName] ) {
+ return KTUtil.getResponsiveValue(the.options[optionName]);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ var _destroy = function() {
+ window.removeEventListener('scroll', _scroll);
+ KTUtil.data(the.element).remove('sticky');
+ }
+
+ // Construct Class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Methods
+ the.update = function() {
+ if ( document.body.hasAttribute(the.attributeName) === true ) {
+ _disable();
+ document.body.removeAttribute(the.attributeName);
+ document.body.removeAttribute(the.attributeName2);
+ _enable(true);
+ document.body.setAttribute(the.attributeName, 'on');
+ document.body.setAttribute(the.attributeName2, 'on');
+ }
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTSticky.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('sticky') ) {
+ return KTUtil.data(element).get('sticky');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTSticky.createInstances = function(selector = '[data-kt-sticky="true"]') {
+ // Initialize Menus
+ var elements = document.body.querySelectorAll(selector);
+ var sticky;
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ sticky = new KTSticky(elements[i]);
+ }
+ }
+}
+
+// Window resize handler
+KTSticky.handleResize = function() {
+ window.addEventListener('resize', function() {
+ var timer;
+
+ KTUtil.throttle(timer, function() {
+ // Locate and update Offcanvas instances on window resize
+ var elements = document.body.querySelectorAll('[data-kt-sticky="true"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var sticky = KTSticky.getInstance(elements[i]);
+ if (sticky) {
+ sticky.update();
+ }
+ }
+ }
+ }, 200);
+ });
+}
+
+// Global initialization
+KTSticky.init = function() {
+ KTSticky.createInstances();
+
+ if (KTStickyHandlersInitialized === false) {
+ KTSticky.handleResize();
+ KTStickyHandlersInitialized = true;
+ }
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTSticky;
+}
+
+"use strict";
+
+var KTSwapperHandlersInitialized = false;
+
+// Class definition
+var KTSwapper = function(element, options) {
+ ////////////////////////////
+ // ** Private Variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if ( typeof element === "undefined" || element === null ) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ mode: 'append'
+ };
+
+ ////////////////////////////
+ // ** Private Methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('swapper') === true ) {
+ the = KTUtil.data(element).get('swapper');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ the.element = element;
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+
+ // Set initialized
+ the.element.setAttribute('data-kt-swapper', 'true');
+
+ // Initial update
+ _update();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('swapper', the);
+ }
+
+ var _update = function(e) {
+ var parentSelector = _getOption('parent');
+
+ var mode = _getOption('mode');
+ var parentElement = parentSelector ? document.querySelector(parentSelector) : null;
+
+
+ if (parentElement && element.parentNode !== parentElement) {
+ if (mode === 'prepend') {
+ parentElement.prepend(element);
+ } else if (mode === 'append') {
+ parentElement.append(element);
+ }
+ }
+ }
+
+ var _getOption = function(name) {
+ if ( the.element.hasAttribute('data-kt-swapper-' + name) === true ) {
+ var attr = the.element.getAttribute('data-kt-swapper-' + name);
+ var value = KTUtil.getResponsiveValue(attr);
+
+ if ( value !== null && String(value) === 'true' ) {
+ value = true;
+ } else if ( value !== null && String(value) === 'false' ) {
+ value = false;
+ }
+
+ return value;
+ } else {
+ var optionName = KTUtil.snakeToCamel(name);
+
+ if ( the.options[optionName] ) {
+ return KTUtil.getResponsiveValue(the.options[optionName]);
+ } else {
+ return null;
+ }
+ }
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('swapper');
+ }
+
+ // Construct Class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Methods
+ the.update = function() {
+ _update();
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTSwapper.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('swapper') ) {
+ return KTUtil.data(element).get('swapper');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTSwapper.createInstances = function(selector = '[data-kt-swapper="true"]') {
+ // Initialize Menus
+ var elements = document.querySelectorAll(selector);
+ var swapper;
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ swapper = new KTSwapper(elements[i]);
+ }
+ }
+}
+
+// Window resize handler
+KTSwapper.handleResize = function() {
+ window.addEventListener('resize', function() {
+ var timer;
+
+ KTUtil.throttle(timer, function() {
+ // Locate and update Offcanvas instances on window resize
+ var elements = document.querySelectorAll('[data-kt-swapper="true"]');
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ var swapper = KTSwapper.getInstance(elements[i]);
+ if (swapper) {
+ swapper.update();
+ }
+ }
+ }
+ }, 200);
+ });
+};
+
+// Global initialization
+KTSwapper.init = function() {
+ KTSwapper.createInstances();
+
+ if (KTSwapperHandlersInitialized === false) {
+ KTSwapper.handleResize();
+ KTSwapperHandlersInitialized = true;
+ }
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTSwapper;
+}
+
+"use strict";
+
+// Class definition
+var KTToggle = function(element, options) {
+ ////////////////////////////
+ // ** Private variables ** //
+ ////////////////////////////
+ var the = this;
+
+ if (!element) {
+ return;
+ }
+
+ // Default Options
+ var defaultOptions = {
+ saveState: true
+ };
+
+ ////////////////////////////
+ // ** Private methods ** //
+ ////////////////////////////
+
+ var _construct = function() {
+ if ( KTUtil.data(element).has('toggle') === true ) {
+ the = KTUtil.data(element).get('toggle');
+ } else {
+ _init();
+ }
+ }
+
+ var _init = function() {
+ // Variables
+ the.options = KTUtil.deepExtend({}, defaultOptions, options);
+ the.uid = KTUtil.getUniqueId('toggle');
+
+ // Elements
+ the.element = element;
+
+ the.target = document.querySelector(the.element.getAttribute('data-kt-toggle-target')) ? document.querySelector(the.element.getAttribute('data-kt-toggle-target')) : the.element;
+ the.state = the.element.hasAttribute('data-kt-toggle-state') ? the.element.getAttribute('data-kt-toggle-state') : '';
+ the.mode = the.element.hasAttribute('data-kt-toggle-mode') ? the.element.getAttribute('data-kt-toggle-mode') : '';
+ the.attribute = 'data-kt-' + the.element.getAttribute('data-kt-toggle-name');
+
+ // Event Handlers
+ _handlers();
+
+ // Bind Instance
+ KTUtil.data(the.element).set('toggle', the);
+ }
+
+ var _handlers = function() {
+ KTUtil.addEvent(the.element, 'click', function(e) {
+ e.preventDefault();
+
+ if ( the.mode !== '' ) {
+ if ( the.mode === 'off' && _isEnabled() === false ) {
+ _toggle();
+ } else if ( the.mode === 'on' && _isEnabled() === true ) {
+ _toggle();
+ }
+ } else {
+ _toggle();
+ }
+ });
+ }
+
+ // Event handlers
+ var _toggle = function() {
+ // Trigger "after.toggle" event
+ KTEventHandler.trigger(the.element, 'kt.toggle.change', the);
+
+ if ( _isEnabled() ) {
+ _disable();
+ } else {
+ _enable();
+ }
+
+ // Trigger "before.toggle" event
+ KTEventHandler.trigger(the.element, 'kt.toggle.changed', the);
+
+ return the;
+ }
+
+ var _enable = function() {
+ if ( _isEnabled() === true ) {
+ return;
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.toggle.enable', the);
+
+ the.target.setAttribute(the.attribute, 'on');
+
+ if (the.state.length > 0) {
+ the.element.classList.add(the.state);
+ }
+
+ if ( typeof KTCookie !== 'undefined' && the.options.saveState === true ) {
+ KTCookie.set(the.attribute, 'on');
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.toggle.enabled', the);
+
+ return the;
+ }
+
+ var _disable = function() {
+ if ( _isEnabled() === false ) {
+ return;
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.toggle.disable', the);
+
+ the.target.removeAttribute(the.attribute);
+
+ if (the.state.length > 0) {
+ the.element.classList.remove(the.state);
+ }
+
+ if ( typeof KTCookie !== 'undefined' && the.options.saveState === true ) {
+ KTCookie.remove(the.attribute);
+ }
+
+ KTEventHandler.trigger(the.element, 'kt.toggle.disabled', the);
+
+ return the;
+ }
+
+ var _isEnabled = function() {
+ return (String(the.target.getAttribute(the.attribute)).toLowerCase() === 'on');
+ }
+
+ var _destroy = function() {
+ KTUtil.data(the.element).remove('toggle');
+ }
+
+ // Construct class
+ _construct();
+
+ ///////////////////////
+ // ** Public API ** //
+ ///////////////////////
+
+ // Plugin API
+ the.toggle = function() {
+ return _toggle();
+ }
+
+ the.enable = function() {
+ return _enable();
+ }
+
+ the.disable = function() {
+ return _disable();
+ }
+
+ the.isEnabled = function() {
+ return _isEnabled();
+ }
+
+ the.goElement = function() {
+ return the.element;
+ }
+
+ the.destroy = function() {
+ return _destroy();
+ }
+
+ // Event API
+ the.on = function(name, handler) {
+ return KTEventHandler.on(the.element, name, handler);
+ }
+
+ the.one = function(name, handler) {
+ return KTEventHandler.one(the.element, name, handler);
+ }
+
+ the.off = function(name, handlerId) {
+ return KTEventHandler.off(the.element, name, handlerId);
+ }
+
+ the.trigger = function(name, event) {
+ return KTEventHandler.trigger(the.element, name, event, the, event);
+ }
+};
+
+// Static methods
+KTToggle.getInstance = function(element) {
+ if ( element !== null && KTUtil.data(element).has('toggle') ) {
+ return KTUtil.data(element).get('toggle');
+ } else {
+ return null;
+ }
+}
+
+// Create instances
+KTToggle.createInstances = function(selector = '[data-kt-toggle]') {
+ // Get instances
+ var elements = document.body.querySelectorAll(selector);
+
+ if ( elements && elements.length > 0 ) {
+ for (var i = 0, len = elements.length; i < len; i++) {
+ // Initialize instances
+ new KTToggle(elements[i]);
+ }
+ }
+}
+
+// Global initialization
+KTToggle.init = function() {
+ KTToggle.createInstances();
+};
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTToggle;
+}
+"use strict";
+
+/**
+ * @class KTUtil base utilize class that privides helper functions
+ */
+
+// Polyfills
+
+// Element.matches() polyfill
+if (!Element.prototype.matches) {
+ Element.prototype.matches = function(s) {
+ var matches = (this.document || this.ownerDocument).querySelectorAll(s),
+ i = matches.length;
+ while (--i >= 0 && matches.item(i) !== this) {}
+ return i > -1;
+ };
+}
+
+/**
+ * Element.closest() polyfill
+ * https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill
+ */
+if (!Element.prototype.closest) {
+ Element.prototype.closest = function (s) {
+ var el = this;
+ var ancestor = this;
+ if (!document.documentElement.contains(el)) return null;
+ do {
+ if (ancestor.matches(s)) return ancestor;
+ ancestor = ancestor.parentElement;
+ } while (ancestor !== null);
+ return null;
+ };
+}
+
+/**
+ * ChildNode.remove() polyfill
+ * https://gomakethings.com/removing-an-element-from-the-dom-the-es6-way/
+ * @author Chris Ferdinandi
+ * @license MIT
+ */
+(function (elem) {
+ for (var i = 0; i < elem.length; i++) {
+ if (!window[elem[i]] || 'remove' in window[elem[i]].prototype) continue;
+ window[elem[i]].prototype.remove = function () {
+ this.parentNode.removeChild(this);
+ };
+ }
+})(['Element', 'CharacterData', 'DocumentType']);
+
+
+//
+// requestAnimationFrame polyfill by Erik Möller.
+// With fixes from Paul Irish and Tino Zijdel
+//
+// http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+//
+// MIT license
+//
+(function() {
+ var lastTime = 0;
+ var vendors = ['webkit', 'moz'];
+ for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
+ window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
+ window.cancelAnimationFrame =
+ window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
+ }
+
+ if (!window.requestAnimationFrame)
+ window.requestAnimationFrame = function(callback) {
+ var currTime = new Date().getTime();
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
+ var id = window.setTimeout(function() {
+ callback(currTime + timeToCall);
+ }, timeToCall);
+ lastTime = currTime + timeToCall;
+ return id;
+ };
+
+ if (!window.cancelAnimationFrame)
+ window.cancelAnimationFrame = function(id) {
+ clearTimeout(id);
+ };
+}());
+
+// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md
+(function(arr) {
+ arr.forEach(function(item) {
+ if (item.hasOwnProperty('prepend')) {
+ return;
+ }
+ Object.defineProperty(item, 'prepend', {
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ value: function prepend() {
+ var argArr = Array.prototype.slice.call(arguments),
+ docFrag = document.createDocumentFragment();
+
+ argArr.forEach(function(argItem) {
+ var isNode = argItem instanceof Node;
+ docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem)));
+ });
+
+ this.insertBefore(docFrag, this.firstChild);
+ }
+ });
+ });
+})([Element.prototype, Document.prototype, DocumentFragment.prototype]);
+
+// getAttributeNames
+if (Element.prototype.getAttributeNames == undefined) {
+ Element.prototype.getAttributeNames = function () {
+ var attributes = this.attributes;
+ var length = attributes.length;
+ var result = new Array(length);
+ for (var i = 0; i < length; i++) {
+ result[i] = attributes[i].name;
+ }
+ return result;
+ };
+}
+
+// Global variables
+window.KTUtilElementDataStore = {};
+window.KTUtilElementDataStoreID = 0;
+window.KTUtilDelegatedEventHandlers = {};
+
+var KTUtil = function() {
+ var resizeHandlers = [];
+
+ /**
+ * Handle window resize event with some
+ * delay to attach event handlers upon resize complete
+ */
+ var _windowResizeHandler = function() {
+ var _runResizeHandlers = function() {
+ // reinitialize other subscribed elements
+ for (var i = 0; i < resizeHandlers.length; i++) {
+ var each = resizeHandlers[i];
+ each.call();
+ }
+ };
+
+ var timer;
+
+ window.addEventListener('resize', function() {
+ KTUtil.throttle(timer, function() {
+ _runResizeHandlers();
+ }, 200);
+ });
+ };
+
+ return {
+ /**
+ * Class main initializer.
+ * @param {object} settings.
+ * @returns null
+ */
+ //main function to initiate the theme
+ init: function(settings) {
+ _windowResizeHandler();
+ },
+
+ /**
+ * Adds window resize event handler.
+ * @param {function} callback function.
+ */
+ addResizeHandler: function(callback) {
+ resizeHandlers.push(callback);
+ },
+
+ /**
+ * Removes window resize event handler.
+ * @param {function} callback function.
+ */
+ removeResizeHandler: function(callback) {
+ for (var i = 0; i < resizeHandlers.length; i++) {
+ if (callback === resizeHandlers[i]) {
+ delete resizeHandlers[i];
+ }
+ }
+ },
+
+ /**
+ * Trigger window resize handlers.
+ */
+ runResizeHandlers: function() {
+ _runResizeHandlers();
+ },
+
+ resize: function() {
+ if (typeof(Event) === 'function') {
+ // modern browsers
+ window.dispatchEvent(new Event('resize'));
+ } else {
+ // for IE and other old browsers
+ // causes deprecation warning on modern browsers
+ var evt = window.document.createEvent('UIEvents');
+ evt.initUIEvent('resize', true, false, window, 0);
+ window.dispatchEvent(evt);
+ }
+ },
+
+ /**
+ * Get GET parameter value from URL.
+ * @param {string} paramName Parameter name.
+ * @returns {string}
+ */
+ getURLParam: function(paramName) {
+ var searchString = window.location.search.substring(1),
+ i, val, params = searchString.split("&");
+
+ for (i = 0; i < params.length; i++) {
+ val = params[i].split("=");
+ if (val[0] == paramName) {
+ return unescape(val[1]);
+ }
+ }
+
+ return null;
+ },
+
+ /**
+ * Checks whether current device is mobile touch.
+ * @returns {boolean}
+ */
+ isMobileDevice: function() {
+ var test = (this.getViewPort().width < this.getBreakpoint('lg') ? true : false);
+
+ if (test === false) {
+ // For use within normal web clients
+ test = navigator.userAgent.match(/iPad/i) != null;
+ }
+
+ return test;
+ },
+
+ /**
+ * Checks whether current device is desktop.
+ * @returns {boolean}
+ */
+ isDesktopDevice: function() {
+ return KTUtil.isMobileDevice() ? false : true;
+ },
+
+ /**
+ * Gets browser window viewport size. Ref:
+ * http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/
+ * @returns {object}
+ */
+ getViewPort: function() {
+ var e = window,
+ a = 'inner';
+ if (!('innerWidth' in window)) {
+ a = 'client';
+ e = document.documentElement || document.body;
+ }
+
+ return {
+ width: e[a + 'Width'],
+ height: e[a + 'Height']
+ };
+ },
+
+ /**
+ * Checks whether given device mode is currently activated.
+ * @param {string} mode Responsive mode name(e.g: desktop,
+ * desktop-and-tablet, tablet, tablet-and-mobile, mobile)
+ * @returns {boolean}
+ */
+ isBreakpointUp: function(mode) {
+ var width = this.getViewPort().width;
+ var breakpoint = this.getBreakpoint(mode);
+
+ return (width >= breakpoint);
+ },
+
+ isBreakpointDown: function(mode) {
+ var width = this.getViewPort().width;
+ var breakpoint = this.getBreakpoint(mode);
+
+ return (width < breakpoint);
+ },
+
+ getViewportWidth: function() {
+ return this.getViewPort().width;
+ },
+
+ /**
+ * Generates unique ID for give prefix.
+ * @param {string} prefix Prefix for generated ID
+ * @returns {boolean}
+ */
+ getUniqueId: function(prefix) {
+ return prefix + Math.floor(Math.random() * (new Date()).getTime());
+ },
+
+ /**
+ * Gets window width for give breakpoint mode.
+ * @param {string} mode Responsive mode name(e.g: xl, lg, md, sm)
+ * @returns {number}
+ */
+ getBreakpoint: function(breakpoint) {
+ var value = this.getCssVariableValue('--bs-' + breakpoint);
+
+ if ( value ) {
+ value = parseInt(value.trim());
+ }
+
+ return value;
+ },
+
+ /**
+ * Checks whether object has property matchs given key path.
+ * @param {object} obj Object contains values paired with given key path
+ * @param {string} keys Keys path seperated with dots
+ * @returns {object}
+ */
+ isset: function(obj, keys) {
+ var stone;
+
+ keys = keys || '';
+
+ if (keys.indexOf('[') !== -1) {
+ throw new Error('Unsupported object path notation.');
+ }
+
+ keys = keys.split('.');
+
+ do {
+ if (obj === undefined) {
+ return false;
+ }
+
+ stone = keys.shift();
+
+ if (!obj.hasOwnProperty(stone)) {
+ return false;
+ }
+
+ obj = obj[stone];
+
+ } while (keys.length);
+
+ return true;
+ },
+
+ /**
+ * Gets highest z-index of the given element parents
+ * @param {object} el jQuery element object
+ * @returns {number}
+ */
+ getHighestZindex: function(el) {
+ var position, value;
+
+ while (el && el !== document) {
+ // Ignore z-index if position is set to a value where z-index is ignored by the browser
+ // This makes behavior of this function consistent across browsers
+ // WebKit always returns auto if the element is positioned
+ position = KTUtil.css(el, 'position');
+
+ if (position === "absolute" || position === "relative" || position === "fixed") {
+ // IE returns 0 when zIndex is not specified
+ // other browsers return a string
+ // we ignore the case of nested elements with an explicit value of 0
+ //
+ value = parseInt(KTUtil.css(el, 'z-index'));
+
+ if (!isNaN(value) && value !== 0) {
+ return value;
+ }
+ }
+
+ el = el.parentNode;
+ }
+
+ return 1;
+ },
+
+ /**
+ * Checks whether the element has any parent with fixed positionfreg
+ * @param {object} el jQuery element object
+ * @returns {boolean}
+ */
+ hasFixedPositionedParent: function(el) {
+ var position;
+
+ while (el && el !== document) {
+ position = KTUtil.css(el, 'position');
+
+ if (position === "fixed") {
+ return true;
+ }
+
+ el = el.parentNode;
+ }
+
+ return false;
+ },
+
+ /**
+ * Simulates delay
+ */
+ sleep: function(milliseconds) {
+ var start = new Date().getTime();
+ for (var i = 0; i < 1e7; i++) {
+ if ((new Date().getTime() - start) > milliseconds) {
+ break;
+ }
+ }
+ },
+
+ /**
+ * Gets randomly generated integer value within given min and max range
+ * @param {number} min Range start value
+ * @param {number} max Range end value
+ * @returns {number}
+ */
+ getRandomInt: function(min, max) {
+ return Math.floor(Math.random() * (max - min + 1)) + min;
+ },
+
+ /**
+ * Checks whether Angular library is included
+ * @returns {boolean}
+ */
+ isAngularVersion: function() {
+ return window.Zone !== undefined ? true : false;
+ },
+
+ // Deep extend: $.extend(true, {}, objA, objB);
+ deepExtend: function(out) {
+ out = out || {};
+
+ for (var i = 1; i < arguments.length; i++) {
+ var obj = arguments[i];
+ if (!obj) continue;
+
+ for (var key in obj) {
+ if (!obj.hasOwnProperty(key)) {
+ continue;
+ }
+
+ // based on https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/
+ if ( Object.prototype.toString.call(obj[key]) === '[object Object]' ) {
+ out[key] = KTUtil.deepExtend(out[key], obj[key]);
+ continue;
+ }
+
+ out[key] = obj[key];
+ }
+ }
+
+ return out;
+ },
+
+ // extend: $.extend({}, objA, objB);
+ extend: function(out) {
+ out = out || {};
+
+ for (var i = 1; i < arguments.length; i++) {
+ if (!arguments[i])
+ continue;
+
+ for (var key in arguments[i]) {
+ if (arguments[i].hasOwnProperty(key))
+ out[key] = arguments[i][key];
+ }
+ }
+
+ return out;
+ },
+
+ getBody: function() {
+ return document.getElementsByTagName('body')[0];
+ },
+
+ /**
+ * Checks whether the element has given classes
+ * @param {object} el jQuery element object
+ * @param {string} Classes string
+ * @returns {boolean}
+ */
+ hasClasses: function(el, classes) {
+ if (!el) {
+ return;
+ }
+
+ var classesArr = classes.split(" ");
+
+ for (var i = 0; i < classesArr.length; i++) {
+ if (KTUtil.hasClass(el, KTUtil.trim(classesArr[i])) == false) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ hasClass: function(el, className) {
+ if (!el) {
+ return;
+ }
+
+ return el.classList ? el.classList.contains(className) : new RegExp('\\b' + className + '\\b').test(el.className);
+ },
+
+ addClass: function(el, className) {
+ if (!el || typeof className === 'undefined') {
+ return;
+ }
+
+ var classNames = className.split(' ');
+
+ if (el.classList) {
+ for (var i = 0; i < classNames.length; i++) {
+ if (classNames[i] && classNames[i].length > 0) {
+ el.classList.add(KTUtil.trim(classNames[i]));
+ }
+ }
+ } else if (!KTUtil.hasClass(el, className)) {
+ for (var x = 0; x < classNames.length; x++) {
+ el.className += ' ' + KTUtil.trim(classNames[x]);
+ }
+ }
+ },
+
+ removeClass: function(el, className) {
+ if (!el || typeof className === 'undefined') {
+ return;
+ }
+
+ var classNames = className.split(' ');
+
+ if (el.classList) {
+ for (var i = 0; i < classNames.length; i++) {
+ el.classList.remove(KTUtil.trim(classNames[i]));
+ }
+ } else if (KTUtil.hasClass(el, className)) {
+ for (var x = 0; x < classNames.length; x++) {
+ el.className = el.className.replace(new RegExp('\\b' + KTUtil.trim(classNames[x]) + '\\b', 'g'), '');
+ }
+ }
+ },
+
+ triggerCustomEvent: function(el, eventName, data) {
+ var event;
+ if (window.CustomEvent) {
+ event = new CustomEvent(eventName, {
+ detail: data
+ });
+ } else {
+ event = document.createEvent('CustomEvent');
+ event.initCustomEvent(eventName, true, true, data);
+ }
+
+ el.dispatchEvent(event);
+ },
+
+ triggerEvent: function(node, eventName) {
+ // Make sure we use the ownerDocument from the provided node to avoid cross-window problems
+ var doc;
+
+ if (node.ownerDocument) {
+ doc = node.ownerDocument;
+ } else if (node.nodeType == 9) {
+ // the node may be the document itself, nodeType 9 = DOCUMENT_NODE
+ doc = node;
+ } else {
+ throw new Error("Invalid node passed to fireEvent: " + node.id);
+ }
+
+ if (node.dispatchEvent) {
+ // Gecko-style approach (now the standard) takes more work
+ var eventClass = "";
+
+ // Different events have different event classes.
+ // If this switch statement can't map an eventName to an eventClass,
+ // the event firing is going to fail.
+ switch (eventName) {
+ case "click": // Dispatching of 'click' appears to not work correctly in Safari. Use 'mousedown' or 'mouseup' instead.
+ case "mouseenter":
+ case "mouseleave":
+ case "mousedown":
+ case "mouseup":
+ eventClass = "MouseEvents";
+ break;
+
+ case "focus":
+ case "change":
+ case "blur":
+ case "select":
+ eventClass = "HTMLEvents";
+ break;
+
+ default:
+ throw "fireEvent: Couldn't find an event class for event '" + eventName + "'.";
+ break;
+ }
+ var event = doc.createEvent(eventClass);
+
+ var bubbles = eventName == "change" ? false : true;
+ event.initEvent(eventName, bubbles, true); // All events created as bubbling and cancelable.
+
+ event.synthetic = true; // allow detection of synthetic events
+ // The second parameter says go ahead with the default action
+ node.dispatchEvent(event, true);
+ } else if (node.fireEvent) {
+ // IE-old school style
+ var event = doc.createEventObject();
+ event.synthetic = true; // allow detection of synthetic events
+ node.fireEvent("on" + eventName, event);
+ }
+ },
+
+ index: function( el ){
+ var c = el.parentNode.children, i = 0;
+ for(; i < c.length; i++ )
+ if( c[i] == el ) return i;
+ },
+
+ trim: function(string) {
+ return string.trim();
+ },
+
+ eventTriggered: function(e) {
+ if (e.currentTarget.dataset.triggered) {
+ return true;
+ } else {
+ e.currentTarget.dataset.triggered = true;
+
+ return false;
+ }
+ },
+
+ remove: function(el) {
+ if (el && el.parentNode) {
+ el.parentNode.removeChild(el);
+ }
+ },
+
+ find: function(parent, query) {
+ if ( parent !== null) {
+ return parent.querySelector(query);
+ } else {
+ return null;
+ }
+ },
+
+ findAll: function(parent, query) {
+ if ( parent !== null ) {
+ return parent.querySelectorAll(query);
+ } else {
+ return null;
+ }
+ },
+
+ insertAfter: function(el, referenceNode) {
+ return referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
+ },
+
+ parents: function(elem, selector) {
+ // Set up a parent array
+ var parents = [];
+
+ // Push each parent element to the array
+ for ( ; elem && elem !== document; elem = elem.parentNode ) {
+ if (selector) {
+ if (elem.matches(selector)) {
+ parents.push(elem);
+ }
+ continue;
+ }
+ parents.push(elem);
+ }
+
+ // Return our parent array
+ return parents;
+ },
+
+ children: function(el, selector, log) {
+ if (!el || !el.childNodes) {
+ return null;
+ }
+
+ var result = [],
+ i = 0,
+ l = el.childNodes.length;
+
+ for (var i; i < l; ++i) {
+ if (el.childNodes[i].nodeType == 1 && KTUtil.matches(el.childNodes[i], selector, log)) {
+ result.push(el.childNodes[i]);
+ }
+ }
+
+ return result;
+ },
+
+ child: function(el, selector, log) {
+ var children = KTUtil.children(el, selector, log);
+
+ return children ? children[0] : null;
+ },
+
+ matches: function(el, selector, log) {
+ var p = Element.prototype;
+ var f = p.matches || p.webkitMatchesSelector || p.mozMatchesSelector || p.msMatchesSelector || function(s) {
+ return [].indexOf.call(document.querySelectorAll(s), this) !== -1;
+ };
+
+ if (el && el.tagName) {
+ return f.call(el, selector);
+ } else {
+ return false;
+ }
+ },
+
+ data: function(el) {
+ return {
+ set: function(name, data) {
+ if (!el) {
+ return;
+ }
+
+ if (el.customDataTag === undefined) {
+ window.KTUtilElementDataStoreID++;
+ el.customDataTag = window.KTUtilElementDataStoreID;
+ }
+
+ if (window.KTUtilElementDataStore[el.customDataTag] === undefined) {
+ window.KTUtilElementDataStore[el.customDataTag] = {};
+ }
+
+ window.KTUtilElementDataStore[el.customDataTag][name] = data;
+ },
+
+ get: function(name) {
+ if (!el) {
+ return;
+ }
+
+ if (el.customDataTag === undefined) {
+ return null;
+ }
+
+ return this.has(name) ? window.KTUtilElementDataStore[el.customDataTag][name] : null;
+ },
+
+ has: function(name) {
+ if (!el) {
+ return false;
+ }
+
+ if (el.customDataTag === undefined) {
+ return false;
+ }
+
+ return (window.KTUtilElementDataStore[el.customDataTag] && window.KTUtilElementDataStore[el.customDataTag][name]) ? true : false;
+ },
+
+ remove: function(name) {
+ if (el && this.has(name)) {
+ delete window.KTUtilElementDataStore[el.customDataTag][name];
+ }
+ }
+ };
+ },
+
+ outerWidth: function(el, margin) {
+ var width;
+
+ if (margin === true) {
+ width = parseFloat(el.offsetWidth);
+ width += parseFloat(KTUtil.css(el, 'margin-left')) + parseFloat(KTUtil.css(el, 'margin-right'));
+
+ return parseFloat(width);
+ } else {
+ width = parseFloat(el.offsetWidth);
+
+ return width;
+ }
+ },
+
+ offset: function(el) {
+ var rect, win;
+
+ if ( !el ) {
+ return;
+ }
+
+ // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+ // Support: IE <=11 only
+ // Running getBoundingClientRect on a
+ // disconnected node in IE throws an error
+
+ if ( !el.getClientRects().length ) {
+ return { top: 0, left: 0 };
+ }
+
+ // Get document-relative position by adding viewport scroll to viewport-relative gBCR
+ rect = el.getBoundingClientRect();
+ win = el.ownerDocument.defaultView;
+
+ return {
+ top: rect.top + win.pageYOffset,
+ left: rect.left + win.pageXOffset,
+ right: window.innerWidth - (el.offsetLeft + el.offsetWidth)
+ };
+ },
+
+ height: function(el) {
+ return KTUtil.css(el, 'height');
+ },
+
+ outerHeight: function(el, withMargin) {
+ var height = el.offsetHeight;
+ var style;
+
+ if (typeof withMargin !== 'undefined' && withMargin === true) {
+ style = getComputedStyle(el);
+ height += parseInt(style.marginTop) + parseInt(style.marginBottom);
+
+ return height;
+ } else {
+ return height;
+ }
+ },
+
+ visible: function(el) {
+ return !(el.offsetWidth === 0 && el.offsetHeight === 0);
+ },
+
+ isVisibleInContainer: function (el, container, offset = 0) {
+ const eleTop = el.offsetTop;
+ const eleBottom = eleTop + el.clientHeight + offset;
+ const containerTop = container.scrollTop;
+ const containerBottom = containerTop + container.clientHeight;
+
+ // The element is fully visible in the container
+ return (
+ (eleTop >= containerTop && eleBottom <= containerBottom)
+ );
+ },
+
+ getRelativeTopPosition: function (el, container) {
+ return el.offsetTop - container.offsetTop;
+ },
+
+ attr: function(el, name, value) {
+ if (el == undefined) {
+ return;
+ }
+
+ if (value !== undefined) {
+ el.setAttribute(name, value);
+ } else {
+ return el.getAttribute(name);
+ }
+ },
+
+ hasAttr: function(el, name) {
+ if (el == undefined) {
+ return;
+ }
+
+ return el.getAttribute(name) ? true : false;
+ },
+
+ removeAttr: function(el, name) {
+ if (el == undefined) {
+ return;
+ }
+
+ el.removeAttribute(name);
+ },
+
+ animate: function(from, to, duration, update, easing, done) {
+ /**
+ * TinyAnimate.easings
+ * Adapted from jQuery Easing
+ */
+ var easings = {};
+ var easing;
+
+ easings.linear = function(t, b, c, d) {
+ return c * t / d + b;
+ };
+
+ easing = easings.linear;
+
+ // Early bail out if called incorrectly
+ if (typeof from !== 'number' ||
+ typeof to !== 'number' ||
+ typeof duration !== 'number' ||
+ typeof update !== 'function') {
+ return;
+ }
+
+ // Create mock done() function if necessary
+ if (typeof done !== 'function') {
+ done = function() {};
+ }
+
+ // Pick implementation (requestAnimationFrame | setTimeout)
+ var rAF = window.requestAnimationFrame || function(callback) {
+ window.setTimeout(callback, 1000 / 50);
+ };
+
+ // Animation loop
+ var canceled = false;
+ var change = to - from;
+
+ function loop(timestamp) {
+ var time = (timestamp || +new Date()) - start;
+
+ if (time >= 0) {
+ update(easing(time, from, change, duration));
+ }
+ if (time >= 0 && time >= duration) {
+ update(to);
+ done();
+ } else {
+ rAF(loop);
+ }
+ }
+
+ update(from);
+
+ // Start animation loop
+ var start = window.performance && window.performance.now ? window.performance.now() : +new Date();
+
+ rAF(loop);
+ },
+
+ actualCss: function(el, prop, cache) {
+ var css = '';
+
+ if (el instanceof HTMLElement === false) {
+ return;
+ }
+
+ if (!el.getAttribute('kt-hidden-' + prop) || cache === false) {
+ var value;
+
+ // the element is hidden so:
+ // making the el block so we can meassure its height but still be hidden
+ css = el.style.cssText;
+ el.style.cssText = 'position: absolute; visibility: hidden; display: block;';
+
+ if (prop == 'width') {
+ value = el.offsetWidth;
+ } else if (prop == 'height') {
+ value = el.offsetHeight;
+ }
+
+ el.style.cssText = css;
+
+ // store it in cache
+ el.setAttribute('kt-hidden-' + prop, value);
+
+ return parseFloat(value);
+ } else {
+ // store it in cache
+ return parseFloat(el.getAttribute('kt-hidden-' + prop));
+ }
+ },
+
+ actualHeight: function(el, cache) {
+ return KTUtil.actualCss(el, 'height', cache);
+ },
+
+ actualWidth: function(el, cache) {
+ return KTUtil.actualCss(el, 'width', cache);
+ },
+
+ getScroll: function(element, method) {
+ // The passed in `method` value should be 'Top' or 'Left'
+ method = 'scroll' + method;
+ return (element == window || element == document) ? (
+ self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||
+ (browserSupportsBoxModel && document.documentElement[method]) ||
+ document.body[method]
+ ) : element[method];
+ },
+
+ css: function(el, styleProp, value, important) {
+ if (!el) {
+ return;
+ }
+
+ if (value !== undefined) {
+ if ( important === true ) {
+ el.style.setProperty(styleProp, value, 'important');
+ } else {
+ el.style[styleProp] = value;
+ }
+ } else {
+ var defaultView = (el.ownerDocument || document).defaultView;
+
+ // W3C standard way:
+ if (defaultView && defaultView.getComputedStyle) {
+ // sanitize property name to css notation
+ // (hyphen separated words eg. font-Size)
+ styleProp = styleProp.replace(/([A-Z])/g, "-$1").toLowerCase();
+
+ return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
+ } else if (el.currentStyle) { // IE
+ // sanitize property name to camelCase
+ styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) {
+ return letter.toUpperCase();
+ });
+
+ value = el.currentStyle[styleProp];
+
+ // convert other units to pixels on IE
+ if (/^\d+(em|pt|%|ex)?$/i.test(value)) {
+ return (function(value) {
+ var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left;
+
+ el.runtimeStyle.left = el.currentStyle.left;
+ el.style.left = value || 0;
+ value = el.style.pixelLeft + "px";
+ el.style.left = oldLeft;
+ el.runtimeStyle.left = oldRsLeft;
+
+ return value;
+ })(value);
+ }
+
+ return value;
+ }
+ }
+ },
+
+ slide: function(el, dir, speed, callback, recalcMaxHeight) {
+ if (!el || (dir == 'up' && KTUtil.visible(el) === false) || (dir == 'down' && KTUtil.visible(el) === true)) {
+ return;
+ }
+
+ speed = (speed ? speed : 600);
+ var calcHeight = KTUtil.actualHeight(el);
+ var calcPaddingTop = false;
+ var calcPaddingBottom = false;
+
+ if (KTUtil.css(el, 'padding-top') && KTUtil.data(el).has('slide-padding-top') !== true) {
+ KTUtil.data(el).set('slide-padding-top', KTUtil.css(el, 'padding-top'));
+ }
+
+ if (KTUtil.css(el, 'padding-bottom') && KTUtil.data(el).has('slide-padding-bottom') !== true) {
+ KTUtil.data(el).set('slide-padding-bottom', KTUtil.css(el, 'padding-bottom'));
+ }
+
+ if (KTUtil.data(el).has('slide-padding-top')) {
+ calcPaddingTop = parseInt(KTUtil.data(el).get('slide-padding-top'));
+ }
+
+ if (KTUtil.data(el).has('slide-padding-bottom')) {
+ calcPaddingBottom = parseInt(KTUtil.data(el).get('slide-padding-bottom'));
+ }
+
+ if (dir == 'up') { // up
+ el.style.cssText = 'display: block; overflow: hidden;';
+
+ if (calcPaddingTop) {
+ KTUtil.animate(0, calcPaddingTop, speed, function(value) {
+ el.style.paddingTop = (calcPaddingTop - value) + 'px';
+ }, 'linear');
+ }
+
+ if (calcPaddingBottom) {
+ KTUtil.animate(0, calcPaddingBottom, speed, function(value) {
+ el.style.paddingBottom = (calcPaddingBottom - value) + 'px';
+ }, 'linear');
+ }
+
+ KTUtil.animate(0, calcHeight, speed, function(value) {
+ el.style.height = (calcHeight - value) + 'px';
+ }, 'linear', function() {
+ el.style.height = '';
+ el.style.display = 'none';
+
+ if (typeof callback === 'function') {
+ callback();
+ }
+ });
+
+
+ } else if (dir == 'down') { // down
+ el.style.cssText = 'display: block; overflow: hidden;';
+
+ if (calcPaddingTop) {
+ KTUtil.animate(0, calcPaddingTop, speed, function(value) {//
+ el.style.paddingTop = value + 'px';
+ }, 'linear', function() {
+ el.style.paddingTop = '';
+ });
+ }
+
+ if (calcPaddingBottom) {
+ KTUtil.animate(0, calcPaddingBottom, speed, function(value) {
+ el.style.paddingBottom = value + 'px';
+ }, 'linear', function() {
+ el.style.paddingBottom = '';
+ });
+ }
+
+ KTUtil.animate(0, calcHeight, speed, function(value) {
+ el.style.height = value + 'px';
+ }, 'linear', function() {
+ el.style.height = '';
+ el.style.display = '';
+ el.style.overflow = '';
+
+ if (typeof callback === 'function') {
+ callback();
+ }
+ });
+ }
+ },
+
+ slideUp: function(el, speed, callback) {
+ KTUtil.slide(el, 'up', speed, callback);
+ },
+
+ slideDown: function(el, speed, callback) {
+ KTUtil.slide(el, 'down', speed, callback);
+ },
+
+ show: function(el, display) {
+ if (typeof el !== 'undefined') {
+ el.style.display = (display ? display : 'block');
+ }
+ },
+
+ hide: function(el) {
+ if (typeof el !== 'undefined') {
+ el.style.display = 'none';
+ }
+ },
+
+ addEvent: function(el, type, handler, one) {
+ if (typeof el !== 'undefined' && el !== null) {
+ el.addEventListener(type, handler);
+ }
+ },
+
+ removeEvent: function(el, type, handler) {
+ if (el !== null) {
+ el.removeEventListener(type, handler);
+ }
+ },
+
+ on: function(element, selector, event, handler) {
+ if ( element === null ) {
+ return;
+ }
+
+ var eventId = KTUtil.getUniqueId('event');
+
+ window.KTUtilDelegatedEventHandlers[eventId] = function(e) {
+ var targets = element.querySelectorAll(selector);
+ var target = e.target;
+
+ while ( target && target !== element ) {
+ for ( var i = 0, j = targets.length; i < j; i++ ) {
+ if ( target === targets[i] ) {
+ handler.call(target, e);
+ }
+ }
+
+ target = target.parentNode;
+ }
+ }
+
+ KTUtil.addEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);
+
+ return eventId;
+ },
+
+ off: function(element, event, eventId) {
+ if (!element || !window.KTUtilDelegatedEventHandlers[eventId]) {
+ return;
+ }
+
+ KTUtil.removeEvent(element, event, window.KTUtilDelegatedEventHandlers[eventId]);
+
+ delete window.KTUtilDelegatedEventHandlers[eventId];
+ },
+
+ one: function onetime(el, type, callback) {
+ el.addEventListener(type, function callee(e) {
+ // remove event
+ if (e.target && e.target.removeEventListener) {
+ e.target.removeEventListener(e.type, callee);
+ }
+
+ // need to verify from https://themeforest.net/author_dashboard#comment_23615588
+ if (el && el.removeEventListener) {
+ e.currentTarget.removeEventListener(e.type, callee);
+ }
+
+ // call handler
+ return callback(e);
+ });
+ },
+
+ hash: function(str) {
+ var hash = 0,
+ i, chr;
+
+ if (str.length === 0) return hash;
+ for (i = 0; i < str.length; i++) {
+ chr = str.charCodeAt(i);
+ hash = ((hash << 5) - hash) + chr;
+ hash |= 0; // Convert to 32bit integer
+ }
+
+ return hash;
+ },
+
+ animateClass: function(el, animationName, callback) {
+ var animation;
+ var animations = {
+ animation: 'animationend',
+ OAnimation: 'oAnimationEnd',
+ MozAnimation: 'mozAnimationEnd',
+ WebkitAnimation: 'webkitAnimationEnd',
+ msAnimation: 'msAnimationEnd',
+ };
+
+ for (var t in animations) {
+ if (el.style[t] !== undefined) {
+ animation = animations[t];
+ }
+ }
+
+ KTUtil.addClass(el, animationName);
+
+ KTUtil.one(el, animation, function() {
+ KTUtil.removeClass(el, animationName);
+ });
+
+ if (callback) {
+ KTUtil.one(el, animation, callback);
+ }
+ },
+
+ transitionEnd: function(el, callback) {
+ var transition;
+ var transitions = {
+ transition: 'transitionend',
+ OTransition: 'oTransitionEnd',
+ MozTransition: 'mozTransitionEnd',
+ WebkitTransition: 'webkitTransitionEnd',
+ msTransition: 'msTransitionEnd'
+ };
+
+ for (var t in transitions) {
+ if (el.style[t] !== undefined) {
+ transition = transitions[t];
+ }
+ }
+
+ KTUtil.one(el, transition, callback);
+ },
+
+ animationEnd: function(el, callback) {
+ var animation;
+ var animations = {
+ animation: 'animationend',
+ OAnimation: 'oAnimationEnd',
+ MozAnimation: 'mozAnimationEnd',
+ WebkitAnimation: 'webkitAnimationEnd',
+ msAnimation: 'msAnimationEnd'
+ };
+
+ for (var t in animations) {
+ if (el.style[t] !== undefined) {
+ animation = animations[t];
+ }
+ }
+
+ KTUtil.one(el, animation, callback);
+ },
+
+ animateDelay: function(el, value) {
+ var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];
+ for (var i = 0; i < vendors.length; i++) {
+ KTUtil.css(el, vendors[i] + 'animation-delay', value);
+ }
+ },
+
+ animateDuration: function(el, value) {
+ var vendors = ['webkit-', 'moz-', 'ms-', 'o-', ''];
+ for (var i = 0; i < vendors.length; i++) {
+ KTUtil.css(el, vendors[i] + 'animation-duration', value);
+ }
+ },
+
+ scrollTo: function(target, offset, duration) {
+ var duration = duration ? duration : 500;
+ var targetPos = target ? KTUtil.offset(target).top : 0;
+ var scrollPos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
+ var from, to;
+
+ if (offset) {
+ targetPos = targetPos - offset;
+ }
+
+ from = scrollPos;
+ to = targetPos;
+
+ KTUtil.animate(from, to, duration, function(value) {
+ document.documentElement.scrollTop = value;
+ document.body.parentNode.scrollTop = value;
+ document.body.scrollTop = value;
+ }); //, easing, done
+ },
+
+ scrollTop: function(offset, duration) {
+ KTUtil.scrollTo(null, offset, duration);
+ },
+
+ isArray: function(obj) {
+ return obj && Array.isArray(obj);
+ },
+
+ isEmpty: function(obj) {
+ for (var prop in obj) {
+ if (obj.hasOwnProperty(prop)) {
+ return false;
+ }
+ }
+
+ return true;
+ },
+
+ numberString: function(nStr) {
+ nStr += '';
+ var x = nStr.split('.');
+ var x1 = x[0];
+ var x2 = x.length > 1 ? '.' + x[1] : '';
+ var rgx = /(\d+)(\d{3})/;
+ while (rgx.test(x1)) {
+ x1 = x1.replace(rgx, '$1' + ',' + '$2');
+ }
+ return x1 + x2;
+ },
+
+ isRTL: function() {
+ return (document.querySelector('html').getAttribute("direction") === 'rtl');
+ },
+
+ snakeToCamel: function(s){
+ return s.replace(/(\-\w)/g, function(m){return m[1].toUpperCase();});
+ },
+
+ filterBoolean: function(val) {
+ // Convert string boolean
+ if (val === true || val === 'true') {
+ return true;
+ }
+
+ if (val === false || val === 'false') {
+ return false;
+ }
+
+ return val;
+ },
+
+ setHTML: function(el, html) {
+ el.innerHTML = html;
+ },
+
+ getHTML: function(el) {
+ if (el) {
+ return el.innerHTML;
+ }
+ },
+
+ getDocumentHeight: function() {
+ var body = document.body;
+ var html = document.documentElement;
+
+ return Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
+ },
+
+ getScrollTop: function() {
+ return (document.scrollingElement || document.documentElement).scrollTop;
+ },
+
+ colorLighten: function(color, amount) {
+ const addLight = function(color, amount){
+ let cc = parseInt(color,16) + amount;
+ let c = (cc > 255) ? 255 : (cc);
+ c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;
+ return c;
+ }
+
+ color = (color.indexOf("#")>=0) ? color.substring(1,color.length) : color;
+ amount = parseInt((255*amount)/100);
+
+ return color = `#${addLight(color.substring(0,2), amount)}${addLight(color.substring(2,4), amount)}${addLight(color.substring(4,6), amount)}`;
+ },
+
+ colorDarken: function(color, amount) {
+ const subtractLight = function(color, amount){
+ let cc = parseInt(color,16) - amount;
+ let c = (cc < 0) ? 0 : (cc);
+ c = (c.toString(16).length > 1 ) ? c.toString(16) : `0${c.toString(16)}`;
+
+ return c;
+ }
+
+ color = (color.indexOf("#")>=0) ? color.substring(1,color.length) : color;
+ amount = parseInt((255*amount)/100);
+
+ return color = `#${subtractLight(color.substring(0,2), amount)}${subtractLight(color.substring(2,4), amount)}${subtractLight(color.substring(4,6), amount)}`;
+ },
+
+ // Throttle function: Input as function which needs to be throttled and delay is the time interval in milliseconds
+ throttle: function (timer, func, delay) {
+ // If setTimeout is already scheduled, no need to do anything
+ if (timer) {
+ return;
+ }
+
+ // Schedule a setTimeout after delay seconds
+ timer = setTimeout(function () {
+ func();
+
+ // Once setTimeout function execution is finished, timerId = undefined so that in
+ // the next scroll event function execution can be scheduled by the setTimeout
+ timer = undefined;
+ }, delay);
+ },
+
+ // Debounce function: Input as function which needs to be debounced and delay is the debounced time in milliseconds
+ debounce: function (timer, func, delay) {
+ // Cancels the setTimeout method execution
+ clearTimeout(timer)
+
+ // Executes the func after delay time.
+ timer = setTimeout(func, delay);
+ },
+
+ parseJson: function(value) {
+ if (typeof value === 'string') {
+ value = value.replace(/'/g, "\"");
+
+ var jsonStr = value.replace(/(\w+:)|(\w+ :)/g, function(matched) {
+ return '"' + matched.substring(0, matched.length - 1) + '":';
+ });
+
+ try {
+ value = JSON.parse(jsonStr);
+ } catch(e) { }
+ }
+
+ return value;
+ },
+
+ getResponsiveValue: function(value, defaultValue) {
+ var width = this.getViewPort().width;
+ var result = null;
+
+ value = KTUtil.parseJson(value);
+
+ if (typeof value === 'object') {
+ var resultKey;
+ var resultBreakpoint = -1;
+ var breakpoint;
+
+ for (var key in value) {
+ if (key === 'default') {
+ breakpoint = 0;
+ } else {
+ breakpoint = this.getBreakpoint(key) ? this.getBreakpoint(key) : parseInt(key);
+ }
+
+ if (breakpoint <= width && breakpoint > resultBreakpoint) {
+ resultKey = key;
+ resultBreakpoint = breakpoint;
+ }
+ }
+
+ if (resultKey) {
+ result = value[resultKey];
+ } else {
+ result = value;
+ }
+ } else {
+ result = value;
+ }
+
+ return result;
+ },
+
+ each: function(array, callback) {
+ return [].slice.call(array).map(callback);
+ },
+
+ getSelectorMatchValue: function(value) {
+ var result = null;
+ value = KTUtil.parseJson(value);
+
+ if ( typeof value === 'object' ) {
+ // Match condition
+ if ( value['match'] !== undefined ) {
+ var selector = Object.keys(value['match'])[0];
+ value = Object.values(value['match'])[0];
+
+ if ( document.querySelector(selector) !== null ) {
+ result = value;
+ }
+ }
+ } else {
+ result = value;
+ }
+
+ return result;
+ },
+
+ getConditionalValue: function(value) {
+ var value = KTUtil.parseJson(value);
+ var result = KTUtil.getResponsiveValue(value);
+
+ if ( result !== null && result['match'] !== undefined ) {
+ result = KTUtil.getSelectorMatchValue(result);
+ }
+
+ if ( result === null && value !== null && value['default'] !== undefined ) {
+ result = value['default'];
+ }
+
+ return result;
+ },
+
+ getCssVariableValue: function(variableName) {
+ var hex = getComputedStyle(document.documentElement).getPropertyValue(variableName);
+ if ( hex && hex.length > 0 ) {
+ hex = hex.trim();
+ }
+
+ return hex;
+ },
+
+ isInViewport: function(element) {
+ var rect = element.getBoundingClientRect();
+
+ return (
+ rect.top >= 0 &&
+ rect.left >= 0 &&
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth)
+ );
+ },
+
+ isPartiallyInViewport: function(element) {
+ let x = element.getBoundingClientRect().left;
+ let y = element.getBoundingClientRect().top;
+ let ww = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ let hw = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+ let w = element.clientWidth;
+ let h = element.clientHeight;
+
+ return (
+ (y < hw &&
+ y + h > 0) &&
+ (x < ww &&
+ x + w > 0)
+ );
+ },
+
+ onDOMContentLoaded: function(callback) {
+ if (document.readyState === 'loading') {
+ document.addEventListener('DOMContentLoaded', callback);
+ } else {
+ callback();
+ }
+ },
+
+ inIframe: function() {
+ try {
+ return window.self !== window.top;
+ } catch (e) {
+ return true;
+ }
+ },
+
+ isHexColor(code) {
+ return /^#[0-9A-F]{6}$/i.test(code);
+ }
+ }
+}();
+
+// Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTUtil;
+}
+//
+// Global init of core components
+//
+
+// Init components
+var KTComponents = function () {
+ // Public methods
+ return {
+ init: function () {
+ KTApp.init();
+ KTDrawer.init();
+ KTMenu.init();
+ KTScroll.init();
+ KTSticky.init();
+ KTSwapper.init();
+ KTToggle.init();
+ KTScrolltop.init();
+ KTDialer.init();
+ KTImageInput.init();
+ KTPasswordMeter.init();
+ }
+ }
+}();
+
+// On document ready
+if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", function() {
+ KTComponents.init();
+ });
+ } else {
+ KTComponents.init();
+ }
+
+ // Init page loader
+window.addEventListener("load", function() {
+ KTApp.hidePageLoading();
+});
+
+// Declare KTApp for Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ window.KTComponents = module.exports = KTComponents;
+}
+"use strict";
+
+// Class definition
+var KTAppLayoutBuilder = function() {
+ var form;
+ var actionInput;
+ var url;
+ var previewButton;
+ var exportButton;
+ var resetButton;
+
+ var engage;
+ var engageToggleOff;
+ var engageToggleOn;
+ var engagePrebuiltsModal;
+
+ var handleEngagePrebuilts = function() {
+ if (engagePrebuiltsModal === null) {
+ return;
+ }
+
+ if ( KTCookie.get("app_engage_prebuilts_modal_displayed") !== "1" ) {
+ setTimeout(function() {
+ const modal = new bootstrap.Modal(engagePrebuiltsModal);
+ modal.show();
+
+ const date = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000); // 30 days from now
+ KTCookie.set("app_engage_prebuilts_modal_displayed", "1", {expires: date});
+ }, 3000);
+ }
+ }
+
+ var handleEngagePrebuiltsViewMenu = function() {
+ const selected = engagePrebuiltsModal.querySelector('[data-kt-element="selected"]');
+ const selectedTitle = engagePrebuiltsModal.querySelector('[data-kt-element="title"]');
+ const menu = engagePrebuiltsModal.querySelector('[data-kt-menu="true"]');
+
+ // Toggle Handler
+ KTUtil.on(engagePrebuiltsModal, '[data-kt-mode]', 'click', function (e) {
+ const title = this.innerText;
+ const mode = this.getAttribute("data-kt-mode");
+ const selectedLink = menu.querySelector('.menu-link.active');
+ const viewImage = document.querySelector('#kt_app_engage_prebuilts_view_image');
+ const viewText = document.querySelector('#kt_app_engage_prebuilts_view_text');
+ selectedTitle.innerText = title;
+
+ if (selectedLink) {
+ selectedLink.classList.remove('active');
+ }
+
+ this.classList.add('active');
+
+ if (mode === "image") {
+ viewImage.classList.remove("d-none");
+ viewImage.classList.add("d-block");
+ viewText.classList.remove("d-block");
+ viewText.classList.add("d-none");
+ } else {
+ viewText.classList.remove("d-none");
+ viewText.classList.add("d-block");
+ viewImage.classList.remove("d-block");
+ viewImage.classList.add("d-none");
+ }
+ });
+ }
+
+ var handleEngageToggle = function() {
+ engageToggleOff.addEventListener("click", function (e) {
+ e.preventDefault();
+
+ const date = new Date(Date.now() + 1 * 24 * 60 * 60 * 1000); // 1 days from now
+ KTCookie.set("app_engage_hide", "1", {expires: date});
+ engage.classList.add('app-engage-hide');
+ });
+
+ engageToggleOn.addEventListener("click", function (e) {
+ e.preventDefault();
+
+ KTCookie.remove("app_engage_hide");
+ engage.classList.remove('app-engage-hide');
+ });
+ }
+
+ var handlePreview = function() {
+ previewButton.addEventListener("click", function(e) {
+ e.preventDefault();
+
+ // Set form action value
+ actionInput.value = "preview";
+
+ // Show progress
+ previewButton.setAttribute("data-kt-indicator", "on");
+
+ // Prepare form data
+ var data = $(form).serialize();
+
+ // Submit
+ $.ajax({
+ type: "POST",
+ dataType: "html",
+ url: url,
+ data: data,
+ success: function(response, status, xhr) {
+ if (history.scrollRestoration) {
+ history.scrollRestoration = 'manual';
+ }
+ location.reload();
+ return;
+
+ toastr.success(
+ "Preview has been updated with current configured layout.",
+ "Preview updated!",
+ {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0}
+ );
+
+ setTimeout(function() {
+ location.reload(); // reload page
+ }, 1500);
+ },
+ error: function(response) {
+ toastr.error(
+ "Please try it again later.",
+ "Something went wrong!",
+ {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0}
+ );
+ },
+ complete: function() {
+ previewButton.removeAttribute("data-kt-indicator");
+ }
+ });
+ });
+ };
+
+ var handleExport = function() {
+ exportButton.addEventListener("click", function(e) {
+ e.preventDefault();
+
+ toastr.success(
+ "Process has been started and it may take a while.",
+ "Generating HTML!",
+ {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0}
+ );
+
+ // Show progress
+ exportButton.setAttribute("data-kt-indicator", "on");
+
+ // Set form action value
+ actionInput.value = "export";
+
+ // Prepare form data
+ var data = $(form).serialize();
+
+ $.ajax({
+ type: "POST",
+ dataType: "html",
+ url: url,
+ data: data,
+ success: function(response, status, xhr) {
+ var timer = setInterval(function() {
+ $("").attr({
+ src: url + "?layout-builder[action]=export&download=1&output=" + response,
+ style: "visibility:hidden;display:none",
+ }).ready(function() {
+ // Stop the timer
+ clearInterval(timer);
+
+ exportButton.removeAttribute("data-kt-indicator");
+ }).appendTo("body");
+ }, 3000);
+ },
+ error: function(response) {
+ toastr.error(
+ "Please try it again later.",
+ "Something went wrong!",
+ {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0}
+ );
+
+ exportButton.removeAttribute("data-kt-indicator");
+ },
+ });
+ });
+ };
+
+ var handleReset = function() {
+ resetButton.addEventListener("click", function(e) {
+ e.preventDefault();
+
+ // Show progress
+ resetButton.setAttribute("data-kt-indicator", "on");
+
+ // Set form action value
+ actionInput.value = "reset";
+
+ // Prepare form data
+ var data = $(form).serialize();
+
+ $.ajax({
+ type: "POST",
+ dataType: "html",
+ url: url,
+ data: data,
+ success: function(response, status, xhr) {
+ if (history.scrollRestoration) {
+ history.scrollRestoration = 'manual';
+ }
+
+ location.reload();
+ return;
+
+ toastr.success(
+ "Preview has been successfully reset and the page will be reloaded.",
+ "Reset Preview!",
+ {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0}
+ );
+
+ setTimeout(function() {
+ location.reload(); // reload page
+ }, 1500);
+ },
+ error: function(response) {
+ toastr.error(
+ "Please try it again later.",
+ "Something went wrong!",
+ {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0}
+ );
+ },
+ complete: function() {
+ resetButton.removeAttribute("data-kt-indicator");
+ },
+ });
+ });
+ };
+
+ var handleThemeMode = function() {
+ var checkLight = document.querySelector('#kt_layout_builder_theme_mode_light');
+ var checkDark = document.querySelector('#kt_layout_builder_theme_mode_dark');
+ var check = document.querySelector('#kt_layout_builder_theme_mode_' + KTThemeMode.getMode());
+
+ if (checkLight) {
+ checkLight.addEventListener("click", function() {
+ this.checked = true;
+ this.closest('[data-kt-buttons="true"]').querySelector('.form-check-image.active').classList.remove('active');
+ this.closest('.form-check-image').classList.add('active');
+ KTThemeMode.setMode('light');
+ });
+ }
+
+ if (checkDark) {
+ checkDark.addEventListener("click", function() {
+ this.checked = true;
+ this.closest('[data-kt-buttons="true"]').querySelector('.form-check-image.active').classList.remove('active');
+ this.closest('.form-check-image').classList.add('active');
+ KTThemeMode.setMode('dark');
+ });
+ }
+
+ if ( check ) {
+ check.closest('.form-check-image').classList.add('active');
+ check.checked = true;
+ }
+ }
+
+ return {
+ // Public functions
+ init: function() {
+ engage = document.querySelector('#kt_app_engage');
+ engageToggleOn = document.querySelector('#kt_app_engage_toggle_on');
+ engageToggleOff = document.querySelector('#kt_app_engage_toggle_off');
+ engagePrebuiltsModal = document.querySelector('#kt_app_engage_prebuilts_modal');
+
+ if ( engage && engagePrebuiltsModal) {
+ handleEngagePrebuilts();
+ handleEngagePrebuiltsViewMenu();
+ }
+
+ if ( engage && engageToggleOn && engageToggleOff ) {
+ handleEngageToggle();
+ }
+
+ form = document.querySelector("#kt_app_layout_builder_form");
+
+ if ( !form ) {
+ return;
+ }
+
+ url = form.getAttribute("action");
+ actionInput = document.querySelector("#kt_app_layout_builder_action");
+ previewButton = document.querySelector("#kt_app_layout_builder_preview");
+ exportButton = document.querySelector("#kt_app_layout_builder_export");
+ resetButton = document.querySelector("#kt_app_layout_builder_reset");
+
+ if ( previewButton ) {
+ handlePreview();
+ }
+
+ if ( exportButton ) {
+ handleExport();
+ }
+
+ if ( resetButton ) {
+ handleReset();
+ }
+
+ handleThemeMode();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTAppLayoutBuilder.init();
+});
+"use strict";
+
+// Class definition
+var KTLayoutSearch = function() {
+ // Private variables
+ var element;
+ var formElement;
+ var mainElement;
+ var resultsElement;
+ var wrapperElement;
+ var emptyElement;
+
+ var preferencesElement;
+ var preferencesShowElement;
+ var preferencesDismissElement;
+
+ var advancedOptionsFormElement;
+ var advancedOptionsFormShowElement;
+ var advancedOptionsFormCancelElement;
+ var advancedOptionsFormSearchElement;
+
+ var searchObject;
+
+ // Private functions
+ var processs = function(search) {
+ var timeout = setTimeout(function() {
+ var number = KTUtil.getRandomInt(1, 3);
+
+ // Hide recently viewed
+ mainElement.classList.add('d-none');
+
+ if (number === 3) {
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Show empty message
+ emptyElement.classList.remove('d-none');
+ } else {
+ // Show results
+ resultsElement.classList.remove('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+ }
+
+ // Complete search
+ search.complete();
+ }, 1500);
+ }
+
+ var processsAjax = function(search) {
+ // Hide recently viewed
+ mainElement.classList.add('d-none');
+
+ // Learn more: https://axios-http.com/docs/intro
+ axios.post('/search.php', {
+ query: searchObject.getQuery()
+ })
+ .then(function (response) {
+ // Populate results
+ resultsElement.innerHTML = response;
+ // Show results
+ resultsElement.classList.remove('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+
+ // Complete search
+ search.complete();
+ })
+ .catch(function (error) {
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Show empty message
+ emptyElement.classList.remove('d-none');
+
+ // Complete search
+ search.complete();
+ });
+ }
+
+ var clear = function(search) {
+ // Show recently viewed
+ mainElement.classList.remove('d-none');
+ // Hide results
+ resultsElement.classList.add('d-none');
+ // Hide empty message
+ emptyElement.classList.add('d-none');
+ }
+
+ var handlePreferences = function() {
+ // Preference show handler
+ preferencesShowElement.addEventListener('click', function() {
+ wrapperElement.classList.add('d-none');
+ preferencesElement.classList.remove('d-none');
+ });
+
+ // Preference dismiss handler
+ preferencesDismissElement.addEventListener('click', function() {
+ wrapperElement.classList.remove('d-none');
+ preferencesElement.classList.add('d-none');
+ });
+ }
+
+ var handleAdvancedOptionsForm = function() {
+ // Show
+ advancedOptionsFormShowElement.addEventListener('click', function() {
+ wrapperElement.classList.add('d-none');
+ advancedOptionsFormElement.classList.remove('d-none');
+ });
+
+ // Cancel
+ advancedOptionsFormCancelElement.addEventListener('click', function() {
+ wrapperElement.classList.remove('d-none');
+ advancedOptionsFormElement.classList.add('d-none');
+ });
+
+ // Search
+ advancedOptionsFormSearchElement.addEventListener('click', function() {
+
+ });
+ }
+
+ // Public methods
+ return {
+ init: function() {
+ // Elements
+ element = document.querySelector('#kt_header_search');
+
+ if (!element) {
+ return;
+ }
+
+ wrapperElement = element.querySelector('[data-kt-search-element="wrapper"]');
+ formElement = element.querySelector('[data-kt-search-element="form"]');
+ mainElement = element.querySelector('[data-kt-search-element="main"]');
+ resultsElement = element.querySelector('[data-kt-search-element="results"]');
+ emptyElement = element.querySelector('[data-kt-search-element="empty"]');
+
+ preferencesElement = element.querySelector('[data-kt-search-element="preferences"]');
+ preferencesShowElement = element.querySelector('[data-kt-search-element="preferences-show"]');
+ preferencesDismissElement = element.querySelector('[data-kt-search-element="preferences-dismiss"]');
+
+ advancedOptionsFormElement = element.querySelector('[data-kt-search-element="advanced-options-form"]');
+ advancedOptionsFormShowElement = element.querySelector('[data-kt-search-element="advanced-options-form-show"]');
+ advancedOptionsFormCancelElement = element.querySelector('[data-kt-search-element="advanced-options-form-cancel"]');
+ advancedOptionsFormSearchElement = element.querySelector('[data-kt-search-element="advanced-options-form-search"]');
+
+ // Initialize search handler
+ searchObject = new KTSearch(element);
+
+ // Demo search handler
+ searchObject.on('kt.search.process', processs);
+
+ // Ajax search handler
+ //searchObject.on('kt.search.process', processsAjax);
+
+ // Clear handler
+ searchObject.on('kt.search.clear', clear);
+
+ // Custom handlers
+ handlePreferences();
+ handleAdvancedOptionsForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function() {
+ KTLayoutSearch.init();
+});
+"use strict";
+
+// Class definition
+var KTThemeModeUser = function () {
+
+ var handleSubmit = function() {
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function() {
+ var menuMode = KTThemeMode.getMenuMode();
+ var mode = KTThemeMode.getMode();
+ console.log("user selected theme mode:" + menuMode);
+ console.log("theme mode:" + mode);
+
+ // Submit selected theme mode menu option via ajax and
+ // store it in user profile and set the user opted theme mode via HTML attribute
+ // ....
+ });
+ }
+
+ return {
+ init: function () {
+ handleSubmit();
+ }
+ };
+}();
+
+// Initialize app on document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTThemeModeUser.init();
+});
+
+// Declare KTThemeModeUser for Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTThemeModeUser;
+}
+"use strict";
+
+// Class definition
+var KTThemeMode = function () {
+ var menu;
+ var callbacks = [];
+ var the = this;
+
+ var getMode = function() {
+ var mode;
+
+ if ( document.documentElement.hasAttribute("data-bs-theme") ) {
+ return document.documentElement.getAttribute("data-bs-theme");
+ } else if ( localStorage.getItem("data-bs-theme") !== null ) {
+ return localStorage.getItem("data-bs-theme");
+ } else if ( getMenuMode() === "system" ) {
+ return getSystemMode();
+ }
+
+ return "light";
+ }
+
+ var setMode = function(mode, menuMode) {
+ var currentMode = getMode();
+
+ // Reset mode if system mode was changed
+ if ( menuMode === 'system') {
+ if ( getSystemMode() !== mode ) {
+ mode = getSystemMode();
+ }
+ } else if (mode !== menuMode) {
+ menuMode = mode;
+ }
+
+ // Read active menu mode value
+ var activeMenuItem = menu ? menu.querySelector('[data-kt-element="mode"][data-kt-value="' + menuMode + '"]') : null;
+
+ // Enable switching state
+ document.documentElement.setAttribute("data-kt-theme-mode-switching", "true");
+
+ // Set mode to the target document.documentElement
+ document.documentElement.setAttribute("data-bs-theme", mode);
+
+ // Disable switching state
+ setTimeout(function() {
+ document.documentElement.removeAttribute("data-kt-theme-mode-switching");
+ }, 300);
+
+ // Store mode value in storage
+ localStorage.setItem("data-bs-theme", mode);
+
+ // Set active menu item
+ if ( activeMenuItem ) {
+ localStorage.setItem("data-bs-theme-mode", menuMode);
+ setActiveMenuItem(activeMenuItem);
+ }
+
+ if (mode !== currentMode) {
+ KTEventHandler.trigger(document.documentElement, 'kt.thememode.change', the);
+ }
+ }
+
+ var getMenuMode = function() {
+ if (!menu) {
+ return null;
+ }
+
+ var menuItem = menu ? menu.querySelector('.active[data-kt-element="mode"]') : null;
+
+ if ( menuItem && menuItem.getAttribute('data-kt-value') ) {
+ return menuItem.getAttribute('data-kt-value');
+ } else if ( document.documentElement.hasAttribute("data-bs-theme-mode") ) {
+ return document.documentElement.getAttribute("data-bs-theme-mode")
+ } else if ( localStorage.getItem("data-bs-theme-mode") !== null ) {
+ return localStorage.getItem("data-bs-theme-mode");
+ } else {
+ return typeof defaultThemeMode !== "undefined" ? defaultThemeMode : "light";
+ }
+ }
+
+ var getSystemMode = function() {
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? "dark" : "light";
+ }
+
+ var initMode = function() {
+ setMode(getMode(), getMenuMode());
+ KTEventHandler.trigger(document.documentElement, 'kt.thememode.init', the);
+ }
+
+ var getActiveMenuItem = function() {
+ return menu.querySelector('[data-kt-element="mode"][data-kt-value="' + getMenuMode() + '"]');
+ }
+
+ var setActiveMenuItem = function(item) {
+ var menuMode = item.getAttribute("data-kt-value");
+
+ var activeItem = menu.querySelector('.active[data-kt-element="mode"]');
+
+ if ( activeItem ) {
+ activeItem.classList.remove("active");
+ }
+
+ item.classList.add("active");
+ localStorage.setItem("data-bs-theme-mode", menuMode);
+ }
+
+ var handleMenu = function() {
+ var items = [].slice.call(menu.querySelectorAll('[data-kt-element="mode"]'));
+
+ items.map(function (item) {
+ item.addEventListener("click", function(e) {
+ e.preventDefault();
+
+ var menuMode = item.getAttribute("data-kt-value");
+ var mode = menuMode;
+
+ if ( menuMode === "system") {
+ mode = getSystemMode();
+ }
+
+ setMode(mode, menuMode);
+ });
+ });
+ }
+
+ return {
+ init: function () {
+ menu = document.querySelector('[data-kt-element="theme-mode-menu"]');
+
+ initMode();
+
+ if (menu) {
+ handleMenu();
+ }
+ },
+
+ getMode: function () {
+ return getMode();
+ },
+
+ getMenuMode: function() {
+ return getMenuMode();
+ },
+
+ getSystemMode: function () {
+ return getSystemMode();
+ },
+
+ setMode: function(mode) {
+ return setMode(mode)
+ },
+
+ on: function(name, handler) {
+ return KTEventHandler.on(document.documentElement, name, handler);
+ },
+
+ off: function(name, handlerId) {
+ return KTEventHandler.off(document.documentElement, name, handlerId);
+ }
+ };
+}();
+
+// Initialize app on document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTThemeMode.init();
+});
+
+// Declare KTThemeMode for Webpack support
+if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = KTThemeMode;
+}
+"use strict";
+
+// Class definition
+var KTAppSidebar = function () {
+ // Private variables
+ var toggle;
+ var sidebar;
+ var headerMenu;
+ var menuDashboardsCollapse;
+ var menuWrapper;
+ var toggle;
+
+ // Private functions
+ // Handle sidebar minimize mode toggle
+ var handleToggle = function () {
+ var toggleObj = KTToggle.getInstance(toggle);
+ var headerMenuObj = KTMenu.getInstance(headerMenu);
+
+ if ( toggleObj === null) {
+ return;
+ }
+
+ // Add a class to prevent sidebar hover effect after toggle click
+ toggleObj.on('kt.toggle.change', function() {
+ // Set animation state
+ sidebar.classList.add('animating');
+
+ // Wait till animation finishes
+ setTimeout(function() {
+ // Remove animation state
+ sidebar.classList.remove('animating');
+ }, 300);
+
+ // Prevent header menu dropdown display on hover
+ if (headerMenuObj) {
+ headerMenuObj.disable();
+
+ // Timeout to enable header menu
+ setTimeout(function() {
+ headerMenuObj.enable();
+ }, 1000);
+ }
+ });
+
+ // Store sidebar minimize state in cookie
+ toggleObj.on('kt.toggle.changed', function() {
+ // In server side check sidebar_minimize_state cookie
+ // value and add data-kt-app-sidebar-minimize="on"
+ // attribute to Body tag and "active" class to the toggle button
+ var date = new Date(Date.now() + 30 * 24 * 60 * 60 * 1000); // 30 days from now
+
+ KTCookie.set("sidebar_minimize_state", toggleObj.isEnabled() ? "on" : "off", {expires: date});
+ });
+ }
+
+ // Handle dashboards menu items collapse mode
+ var handleShowMore = function() {
+ menuDashboardsCollapse.addEventListener('hide.bs.collapse', event => {
+ menuWrapper.scrollTo({
+ top: 0,
+ behavior: 'instant'
+ });
+ });
+ }
+
+ var handleMenuScroll = function() {
+ var menuActiveItem = menuWrapper.querySelector(".menu-link.active");
+
+ if ( !menuActiveItem ) {
+ return;
+ }
+
+ if ( KTUtil.isVisibleInContainer(menuActiveItem, menuWrapper) === true) {
+ return;
+ }
+
+ menuWrapper.scroll({
+ top: KTUtil.getRelativeTopPosition(menuActiveItem, menuWrapper),
+ behavior: 'smooth'
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ sidebar = document.querySelector('#kt_app_sidebar');
+ toggle = document.querySelector('#kt_app_sidebar_toggle');
+ headerMenu = document.querySelector('#kt_app_header_menu');
+ menuDashboardsCollapse = document.querySelector('#kt_app_sidebar_menu_dashboards_collapse');
+ menuWrapper = document.querySelector('#kt_app_sidebar_menu_wrapper');
+
+ if ( sidebar === null ) {
+ return;
+ }
+
+ if ( toggle ) {
+ handleToggle();
+ }
+
+ if ( menuWrapper ) {
+ handleMenuScroll();
+ }
+
+ if ( menuDashboardsCollapse ) {
+ handleShowMore();
+ }
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTAppSidebar.init();
+});
+"use strict";
+
+// Class definition
+var KTLayoutToolbar = function () {
+ // Private variables
+ var toolbar;
+
+ // Private functions
+ var initForm = function () {
+ var rangeSlider = document.querySelector("#kt_app_toolbar_slider");
+ var rangeSliderValueElement = document.querySelector("#kt_app_toolbar_slider_value");
+
+ if (!rangeSlider) {
+ return;
+ }
+
+ noUiSlider.create(rangeSlider, {
+ start: [5],
+ connect: [true, false],
+ step: 1,
+ format: wNumb({
+ decimals: 1
+ }),
+ range: {
+ min: [1],
+ max: [10]
+ }
+ });
+
+ rangeSlider.noUiSlider.on("update", function (values, handle) {
+ rangeSliderValueElement.innerHTML = values[handle];
+ });
+
+ var handle = rangeSlider.querySelector(".noUi-handle");
+
+ handle.setAttribute("tabindex", 0);
+
+ handle.addEventListener("click", function () {
+ this.focus();
+ });
+
+ handle.addEventListener("keydown", function (event) {
+ var value = Number(rangeSlider.noUiSlider.get());
+
+ switch (event.which) {
+ case 37:
+ rangeSlider.noUiSlider.set(value - 1);
+ break;
+ case 39:
+ rangeSlider.noUiSlider.set(value + 1);
+ break;
+ }
+ });
+ }
+
+ // Public methods
+ return {
+ init: function () {
+ // Elements
+ toolbar = document.querySelector('#kt_app_toolbar');
+
+ if (!toolbar) {
+ return;
+ }
+
+ initForm();
+ }
+ };
+}();
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTLayoutToolbar.init();
+});
\ No newline at end of file
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/utils.js b/think-backend.greaterchiangmai.com/public/assets/js/utils.js
new file mode 100644
index 0000000..109ec41
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/utils.js
@@ -0,0 +1,220 @@
+let AJAX_RETURN_SUCCESS = "Success";
+let AJAX_RETURN_FAIL = "Fail";
+let MSG_DATA_CAN_NOT_EMPTY = "Data Can’t be Empty";
+
+function isAjaxStatusSuccess(status) {
+ return status === AJAX_RETURN_SUCCESS
+}
+
+function showModal(elm) {
+ $(elm).modal('show');
+}
+
+function hideModal() {
+ $('.modal').modal('hide');
+}
+
+function reloadPage() {
+ setTimeout(() => {
+ location.reload();
+ }, 2000)
+}
+
+function alertLoading() {
+ Swal.fire({
+ title: 'Loading...',
+ allowOutsideClick: false,
+ allowEscapeKey: false,
+ timerProgressBar: true,
+ didOpen: () => {
+ Swal.showLoading()
+ },
+ })
+}
+
+
+
+function hideLoading() {
+ setTimeout(function() {
+ Swal.close();
+ }, 2000);
+}
+
+
+
+function alertSuccessWithUrl(title, message, url) {
+ Swal.fire({
+ title: title,
+ text: message,
+ confirmButtonText: "OK",
+ closeOnConfirm: false,
+ confirmButtonColor: '#009ef7',
+ cancelButtonColor: '#f1416c',
+ allowOutsideClick: false
+ }).then((result) => {
+ /* Read more about isConfirmed, isDenied below */
+ if (result.isConfirmed) {
+ window.location.href = url;
+ }
+ })
+}
+
+function alertSuccess(title, message) {
+ Swal.fire({
+ title: title,
+ text: message,
+ icon: "success",
+ type: "success",
+ showCancelButton: false,
+ confirmButtonClass: "btn-success",
+ confirmButtonText: "OK",
+ closeOnConfirm: false,
+ confirmButtonColor: '#009ef7',
+ cancelButtonColor: '#f1416c',
+ allowOutsideClick: false,
+ });
+}
+
+function alertFail(title, message) {
+ Swal.fire({
+ title: title,
+ text: message,
+ type: "warning",
+ icon: "error",
+ showCancelButton: false,
+ confirmButtonClass: "btn-danger",
+ confirmButtonText: "OK",
+ closeOnConfirm: false,
+ confirmButtonColor: '#009ef7',
+ cancelButtonColor: '#f1416c',
+ allowOutsideClick: false,
+ });
+}
+
+
+function toastySuccess(title, message) {
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toastr-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+ toastr.success('was created!');
+}
+
+function toastyFail(title, message) {
+ toastr.options = {
+ "closeButton": true,
+ "debug": false,
+ "newestOnTop": false,
+ "progressBar": false,
+ "positionClass": "toastr-top-right",
+ "preventDuplicates": false,
+ "showDuration": "300",
+ "hideDuration": "1000",
+ "timeOut": "5000",
+ "extendedTimeOut": "1000",
+ "showEasing": "swing",
+ "hideEasing": "linear",
+ "showMethod": "fadeIn",
+ "hideMethod": "fadeOut"
+ };
+ toastr.error('was created!');
+}
+
+function isEmpty(str) {
+ return (!str || 0 === str.length);
+}
+
+function isBlank(str) {
+ return (!str || /^\s*$/.test(str));
+}
+
+// for modal
+function showLoadingModal() {
+ $('#Loading_Modal').modal({ backdrop: 'static', keyboard: false })
+}
+
+function hideLoadingModal() {
+ setTimeout(() => {
+ $("#Loading_Modal").modal('hide');
+ }, 1000);
+}
+
+function initAjaxSetupToken() {
+ $.ajaxSetup({
+ headers: {
+ 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
+ }
+ });
+}
+
+function ajaxKeepDataCkEditor() {
+ for (instance in CKEDITOR.instances) {
+ CKEDITOR.instances[instance].updateElement();
+ }
+}
+
+function logAjaxError(xhr, status, error) {
+ console.log(xhr.statusText);
+ console.log(status);
+ console.log(error);
+}
+
+function resetFormInput(formName) {
+ $(formName).trigger("reset");
+}
+
+function inputNumberOnly() {
+ $(".number_only").keydown(function (e) {
+ // Allow: backspace, delete, tab, escape, enter and .
+ if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
+ // Allow: Ctrl+A, Command+A
+ (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) ||
+ // Allow: home, end, left, right, down, up
+ (e.keyCode >= 35 && e.keyCode <= 40)) {
+ // let it happen, don't do anything
+ return;
+ }
+ // Ensure that it is a number and stop the keypress
+ if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
+ e.preventDefault();
+ }
+ });
+}
+
+function goToTopPage() {
+ window.scrollTo({ top: 0, behavior: 'smooth' });
+}
+
+function validateEmail(email) {
+ const re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ return re.test(email);
+}
+
+function setInputFilter(textbox, inputFilter) {
+ ["input", "keydown", "keyup", "mousedown", "mouseup", "select", "contextmenu", "drop"].forEach(function (event) {
+ textbox.addEventListener(event, function () {
+ if (inputFilter(this.value)) {
+ this.oldValue = this.value;
+ this.oldSelectionStart = this.selectionStart;
+ this.oldSelectionEnd = this.selectionEnd;
+ } else if (this.hasOwnProperty("oldValue")) {
+ this.value = this.oldValue;
+ this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
+ } else {
+ this.value = "";
+ }
+ });
+ });
+}
diff --git a/think-backend.greaterchiangmai.com/public/assets/js/widgets.bundle.js b/think-backend.greaterchiangmai.com/public/assets/js/widgets.bundle.js
new file mode 100644
index 0000000..55eb2fb
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/js/widgets.bundle.js
@@ -0,0 +1,22705 @@
+"use strict";
+
+// Class definition
+var KTFormsWidget1 = (function () {
+ // Private methods
+ var initForm1 = function () {
+ var element = document.querySelector("#kt_forms_widget_1_select_1");
+
+ if (!element) {
+ return;
+ }
+
+ var optionFormat = function (item) {
+ if (!item.id) {
+ return item.text;
+ }
+
+ var span = document.createElement("span");
+ var template = "";
+
+ template +=
+ '
';
+ template += item.text;
+
+ span.innerHTML = template;
+
+ return $(span);
+ };
+
+ // Init Select2 --- more info: https://select2.org/
+ $(element).select2({
+ placeholder: "Select coin",
+ minimumResultsForSearch: Infinity,
+ templateSelection: optionFormat,
+ templateResult: optionFormat,
+ });
+ };
+
+ var initForm2 = function () {
+ var element = document.querySelector("#kt_forms_widget_1_select_2");
+
+ if (!element) {
+ return;
+ }
+
+ var optionFormat = function (item) {
+ if (!item.id) {
+ return item.text;
+ }
+
+ var span = document.createElement("span");
+ var template = "";
+
+ template +=
+ '
';
+ template += item.text;
+
+ span.innerHTML = template;
+
+ return $(span);
+ };
+
+ // Init Select2 --- more info: https://select2.org/
+ $(element).select2({
+ placeholder: "Select coin",
+ minimumResultsForSearch: Infinity,
+ templateSelection: optionFormat,
+ templateResult: optionFormat,
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initForm1();
+ initForm2();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTFormsWidget1;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTFormsWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardsWidget1 = (function () {
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_card_widget_1_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var baseColor = KTUtil.isHexColor(color)
+ ? color
+ : KTUtil.getCssVariableValue("--bs-" + color);
+ var secondaryColor = KTUtil.getCssVariableValue("--bs-gray-300");
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [30, 75, 55, 45, 30, 60, 75, 50],
+ margin: {
+ left: 5,
+ right: 5,
+ },
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["35%"],
+ borderRadius: 6,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ stroke: {
+ show: true,
+ width: 4,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ },
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ fill: {
+ type: "solid",
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Feb: " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return val + "%";
+ },
+ },
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ borderColor: false,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ padding: {
+ top: 10,
+ left: 25,
+ right: 25,
+ },
+ },
+ };
+
+ // Set timeout to properly get the parent elements width
+ var chart = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.render();
+ }, 300);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardsWidget1;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardsWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardsWidget10 = (function () {
+ // Private methods
+ var initChart = function () {
+ var el = document.getElementById("kt_card_widget_10_chart");
+
+ if (!el) {
+ return;
+ }
+
+ var options = {
+ size: el.getAttribute("data-kt-size")
+ ? parseInt(el.getAttribute("data-kt-size"))
+ : 70,
+ lineWidth: el.getAttribute("data-kt-line")
+ ? parseInt(el.getAttribute("data-kt-line"))
+ : 11,
+ rotate: el.getAttribute("data-kt-rotate")
+ ? parseInt(el.getAttribute("data-kt-rotate"))
+ : 145,
+ //percent: el.getAttribute('data-kt-percent') ,
+ };
+
+ var canvas = document.createElement("canvas");
+ var span = document.createElement("span");
+
+ if (typeof G_vmlCanvasManager !== "undefined") {
+ G_vmlCanvasManager.initElement(canvas);
+ }
+
+ var ctx = canvas.getContext("2d");
+ canvas.width = canvas.height = options.size;
+
+ el.appendChild(span);
+ el.appendChild(canvas);
+
+ ctx.translate(options.size / 2, options.size / 2); // change center
+ ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg
+
+ //imd = ctx.getImageData(0, 0, 240, 240);
+ var radius = (options.size - options.lineWidth) / 2;
+
+ var drawCircle = function (color, lineWidth, percent) {
+ percent = Math.min(Math.max(0, percent || 1), 1);
+ ctx.beginPath();
+ ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);
+ ctx.strokeStyle = color;
+ ctx.lineCap = "round"; // butt, round or square
+ ctx.lineWidth = lineWidth;
+ ctx.stroke();
+ };
+
+ // Init
+ drawCircle("#E4E6EF", options.lineWidth, 100 / 100);
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-primary"),
+ options.lineWidth,
+ 100 / 150
+ );
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-success"),
+ options.lineWidth,
+ 100 / 250
+ );
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardsWidget10;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardsWidget10.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardWidget12 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_card_widget_12_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var lightColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [
+ 3.5, 5.7, 2.8, 5.9, 4.2, 5.6, 4.3, 4.5, 5.9, 4.5, 5.7,
+ 4.8, 5.7,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 0,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Feb " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return val * "10" + "K";
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ padding: {
+ top: 0,
+ right: -20,
+ bottom: -20,
+ left: -20,
+ },
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 2,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardWidget12;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardWidget12.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardWidget13 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_card_widget_13_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var lightColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Shipments",
+ data: [1.5, 4.5, 2, 3, 2, 4, 2.5, 2, 2.5, 4, 3.5, 4.5, 2.5],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 0,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Feb " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return val * "10" + "K";
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ padding: {
+ top: 0,
+ right: -20,
+ bottom: -20,
+ left: -20,
+ },
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 2,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardWidget13;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardWidget13.init();
+});
+("use strict");
+
+// Class definition
+var KTCardsWidget17 = (function () {
+ // Private methods
+ var initChart = function () {
+ var el = document.getElementById("kt_card_widget_17_chart");
+
+ if (!el) {
+ return;
+ }
+
+ var options = {
+ size: el.getAttribute("data-kt-size")
+ ? parseInt(el.getAttribute("data-kt-size"))
+ : 70,
+ lineWidth: el.getAttribute("data-kt-line")
+ ? parseInt(el.getAttribute("data-kt-line"))
+ : 11,
+ rotate: el.getAttribute("data-kt-rotate")
+ ? parseInt(el.getAttribute("data-kt-rotate"))
+ : 145,
+ //percent: el.getAttribute('data-kt-percent') ,
+ };
+
+ var canvas = document.createElement("canvas");
+ var span = document.createElement("span");
+
+ if (typeof G_vmlCanvasManager !== "undefined") {
+ G_vmlCanvasManager.initElement(canvas);
+ }
+
+ var ctx = canvas.getContext("2d");
+ canvas.width = canvas.height = options.size;
+
+ el.appendChild(span);
+ el.appendChild(canvas);
+
+ ctx.translate(options.size / 2, options.size / 2); // change center
+ ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg
+
+ //imd = ctx.getImageData(0, 0, 240, 240);
+ var radius = (options.size - options.lineWidth) / 2;
+
+ var drawCircle = function (color, lineWidth, percent) {
+ percent = Math.min(Math.max(0, percent || 1), 1);
+ ctx.beginPath();
+ ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);
+ ctx.strokeStyle = color;
+ ctx.lineCap = "round"; // butt, round or square
+ ctx.lineWidth = lineWidth;
+ ctx.stroke();
+ };
+
+ // Init
+ drawCircle("#E4E6EF", options.lineWidth, 100 / 100);
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-primary"),
+ options.lineWidth,
+ 100 / 150
+ );
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-success"),
+ options.lineWidth,
+ 100 / 250
+ );
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardsWidget17;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardsWidget17.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardsWidget19 = (function () {
+ // Private methods
+ var initChart = function () {
+ var el = document.getElementById("kt_card_widget_19_chart");
+
+ if (!el) {
+ return;
+ }
+
+ var options = {
+ size: el.getAttribute("data-kt-size")
+ ? parseInt(el.getAttribute("data-kt-size"))
+ : 70,
+ lineWidth: el.getAttribute("data-kt-line")
+ ? parseInt(el.getAttribute("data-kt-line"))
+ : 11,
+ rotate: el.getAttribute("data-kt-rotate")
+ ? parseInt(el.getAttribute("data-kt-rotate"))
+ : 145,
+ //percent: el.getAttribute('data-kt-percent') ,
+ };
+
+ var canvas = document.createElement("canvas");
+ var span = document.createElement("span");
+
+ if (typeof G_vmlCanvasManager !== "undefined") {
+ G_vmlCanvasManager.initElement(canvas);
+ }
+
+ var ctx = canvas.getContext("2d");
+ canvas.width = canvas.height = options.size;
+
+ el.appendChild(span);
+ el.appendChild(canvas);
+
+ ctx.translate(options.size / 2, options.size / 2); // change center
+ ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg
+
+ //imd = ctx.getImageData(0, 0, 240, 240);
+ var radius = (options.size - options.lineWidth) / 2;
+
+ var drawCircle = function (color, lineWidth, percent) {
+ percent = Math.min(Math.max(0, percent || 1), 1);
+ ctx.beginPath();
+ ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);
+ ctx.strokeStyle = color;
+ ctx.lineCap = "round"; // butt, round or square
+ ctx.lineWidth = lineWidth;
+ ctx.stroke();
+ };
+
+ // Init
+ drawCircle("#E4E6EF", options.lineWidth, 100 / 100);
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-primary"),
+ options.lineWidth,
+ 100 / 150
+ );
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-success"),
+ options.lineWidth,
+ 100 / 250
+ );
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardsWidget19;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardsWidget19.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardsWidget4 = (function () {
+ // Private methods
+ var initChart = function () {
+ var el = document.getElementById("kt_card_widget_4_chart");
+
+ if (!el) {
+ return;
+ }
+
+ var options = {
+ size: el.getAttribute("data-kt-size")
+ ? parseInt(el.getAttribute("data-kt-size"))
+ : 70,
+ lineWidth: el.getAttribute("data-kt-line")
+ ? parseInt(el.getAttribute("data-kt-line"))
+ : 11,
+ rotate: el.getAttribute("data-kt-rotate")
+ ? parseInt(el.getAttribute("data-kt-rotate"))
+ : 145,
+ //percent: el.getAttribute('data-kt-percent') ,
+ };
+
+ var canvas = document.createElement("canvas");
+ var span = document.createElement("span");
+
+ if (typeof G_vmlCanvasManager !== "undefined") {
+ G_vmlCanvasManager.initElement(canvas);
+ }
+
+ var ctx = canvas.getContext("2d");
+ canvas.width = canvas.height = options.size;
+
+ el.appendChild(span);
+ el.appendChild(canvas);
+
+ ctx.translate(options.size / 2, options.size / 2); // change center
+ ctx.rotate((-1 / 2 + options.rotate / 180) * Math.PI); // rotate -90 deg
+
+ //imd = ctx.getImageData(0, 0, 240, 240);
+ var radius = (options.size - options.lineWidth) / 2;
+
+ var drawCircle = function (color, lineWidth, percent) {
+ percent = Math.min(Math.max(0, percent || 1), 1);
+ ctx.beginPath();
+ ctx.arc(0, 0, radius, 0, Math.PI * 2 * percent, false);
+ ctx.strokeStyle = color;
+ ctx.lineCap = "round"; // butt, round or square
+ ctx.lineWidth = lineWidth;
+ ctx.stroke();
+ };
+
+ // Init
+ drawCircle("#E4E6EF", options.lineWidth, 100 / 100);
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-danger"),
+ options.lineWidth,
+ 100 / 150
+ );
+ drawCircle(
+ KTUtil.getCssVariableValue("--bs-primary"),
+ options.lineWidth,
+ 100 / 250
+ );
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardsWidget4;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardsWidget4.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardsWidget6 = (function () {
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_card_widget_6_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-primary");
+ var secondaryColor = KTUtil.getCssVariableValue("--bs-gray-300");
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [30, 60, 53, 45, 60, 75, 53],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["55%"],
+ borderRadius: 6,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ stroke: {
+ show: true,
+ width: 9,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ tickPlacement: "between",
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ },
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ fill: {
+ type: "solid",
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Feb: " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return val + "%";
+ },
+ },
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ padding: {
+ left: 10,
+ right: 10,
+ },
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ var chart = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.render();
+ }, 300);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardsWidget6;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardsWidget6.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardWidget8 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_card_widget_8_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var lightColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [
+ 4.5, 5.7, 2.8, 5.9, 4.2, 5.6, 5.2, 4.5, 5.9, 4.5, 5.7,
+ 4.8, 5.7,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 0,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Feb " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + "K";
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ padding: {
+ top: 0,
+ right: -20,
+ bottom: -20,
+ left: -20,
+ },
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 2,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardWidget8;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardWidget8.init();
+});
+
+("use strict");
+
+// Class definition
+var KTCardWidget9 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_card_widget_9_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var lightColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Visitors",
+ data: [1.5, 2.5, 2, 3, 2, 4, 2.5, 2, 2.5, 4, 2.5, 4.5, 2.5],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 0,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Feb " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return val + "K";
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ padding: {
+ top: 0,
+ right: -20,
+ bottom: -20,
+ left: -20,
+ },
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 2,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTCardWidget9;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTCardWidget9.init();
+});
+("use strict");
+
+// Class definition
+var KTChartsWidget1 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_1");
+
+ if (!element) {
+ return;
+ }
+
+ var negativeColor = element.hasAttribute("data-kt-negative-color")
+ ? element.getAttribute("data-kt-negative-color")
+ : KTUtil.getCssVariableValue("--bs-success");
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var baseColor = KTUtil.getCssVariableValue("--bs-primary");
+
+ var options = {
+ series: [
+ {
+ name: "Subscribed",
+ data: [
+ 20, 30, 20, 40, 60, 75, 65, 18, 10, 5, 15, 40, 60, 18,
+ 35, 55, 20,
+ ],
+ },
+ {
+ name: "Unsubscribed",
+ data: [
+ -20, -15, -5, -20, -30, -15, -10, -8, -5, -5, -10, -25,
+ -15, -5, -10, -5, -15,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ stacked: true,
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ //horizontal: false,
+ columnWidth: "35%",
+ barHeight: "70%",
+ borderRadius: [6, 6],
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ xaxis: {
+ categories: [
+ "Jan 5",
+ "Jan 7",
+ "Jan 9",
+ "Jan 11",
+ "Jan 13",
+ "Jan 15",
+ "Jan 17",
+ "Jan 19",
+ "Jan 20",
+ "Jan 21",
+ "Jan 23",
+ "Jan 24",
+ "Jan 25",
+ "Jan 26",
+ "Jan 24",
+ "Jan 28",
+ "Jan 29",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 10,
+ labels: {
+ //rotate: -45,
+ //rotateAlways: true,
+ style: {
+ colors: [labelColor],
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ },
+ },
+ yaxis: {
+ min: -50,
+ max: 80,
+ tickAmount: 6,
+ labels: {
+ style: {
+ colors: [labelColor],
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return parseInt(val) + "K";
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ borderRadius: 4,
+ },
+ y: {
+ formatter: function (val) {
+ if (val > 0) {
+ return val + "K";
+ } else {
+ return Math.abs(val) + "K";
+ }
+ },
+ },
+ },
+ colors: [baseColor, negativeColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget1;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget10 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-900");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "Achieved Target",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["22%"],
+ borderRadius: 5,
+ dataLabels: {
+ position: "top", // top, center, bottom
+ },
+ startingShape: "flat",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: true,
+ offsetY: -30,
+ style: {
+ fontSize: "13px",
+ colors: [labelColor],
+ },
+ formatter: function (val) {
+ return val + "K";
+ },
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ categories: [
+ "Metals",
+ "Energy",
+ "Agro",
+ "Machines",
+ "Transport",
+ "Textile",
+ "Wood",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ crosshairs: {
+ fill: {
+ gradient: {
+ opacityFrom: 0,
+ opacityTo: 0,
+ },
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ formatter: function (val) {
+ return parseInt(val) + "K";
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return +val + "K";
+ },
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-primary-light"),
+ ],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [30, 18, 43, 70, 13, 37, 23];
+ initChart(
+ chart1,
+ "#kt_charts_widget_10_tab_1",
+ "#kt_charts_widget_10_chart_1",
+ chart1Data,
+ true
+ );
+
+ var chart2Data = [25, 55, 35, 50, 45, 20, 31];
+ initChart(
+ chart2,
+ "#kt_charts_widget_10_tab_2",
+ "#kt_charts_widget_10_chart_2",
+ chart2Data,
+ false
+ );
+
+ var chart3Data = [45, 15, 35, 70, 45, 50, 21];
+ initChart(
+ chart3,
+ "#kt_charts_widget_10_tab_3",
+ "#kt_charts_widget_10_chart_3",
+ chart3Data,
+ false
+ );
+
+ var chart4Data = [15, 55, 25, 50, 25, 60, 31];
+ initChart(
+ chart4,
+ "#kt_charts_widget_10_tab_4",
+ "#kt_charts_widget_10_chart_4",
+ chart4Data,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_10_tab_1",
+ "#kt_charts_widget_10_chart_1",
+ chart1Data,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_10_tab_2",
+ "#kt_charts_widget_10_chart_2",
+ chart2Data,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_10_tab_3",
+ "#kt_charts_widget_10_chart_3",
+ chart3Data,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_charts_widget_10_tab_4",
+ "#kt_charts_widget_10_chart_4",
+ chart4Data,
+ chart4.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget10;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget10.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget11 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+ var height = parseInt(KTUtil.css(element, "height"));
+
+ if (!element) {
+ return;
+ }
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Deliveries",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "Apr 02",
+ "Apr 06",
+ "Apr 06",
+ "Apr 05",
+ "Apr 06",
+ "Apr 10",
+ "Apr 08",
+ "Apr 09",
+ "Apr 14",
+ "Apr 10",
+ "Apr 12",
+ "Apr 18",
+ "Apr 14",
+ "Apr 15",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 02",
+ "Apr 06",
+ "Apr 18",
+ "Apr 05",
+ "Apr 06",
+ "Apr 10",
+ "Apr 08",
+ "Apr 22",
+ "Apr 14",
+ "Apr 11",
+ "Apr 12",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 5,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "13px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "13px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 24,
+ min: 10,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "13px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return +val;
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 3,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 16, 19, 19, 16, 16, 14, 15, 15, 17, 17, 19, 19, 18, 18, 20, 20,
+ 18, 18, 22, 22, 20, 20, 18, 18, 20, 20, 18, 20, 20, 22,
+ ];
+ initChart(
+ chart1,
+ "#kt_charts_widget_11_tab_1",
+ "#kt_charts_widget_11_chart_1",
+ chart1Data,
+ false
+ );
+
+ var chart2Data = [
+ 18, 18, 20, 20, 18, 18, 22, 22, 20, 20, 18, 18, 20, 20, 18, 18,
+ 20, 20, 22, 15, 18, 18, 17, 17, 15, 15, 17, 17, 19, 17,
+ ];
+ initChart(
+ chart2,
+ "#kt_charts_widget_11_tab_2",
+ "#kt_charts_widget_11_chart_2",
+ chart2Data,
+ false
+ );
+
+ var chart3Data = [
+ 17, 20, 20, 19, 19, 17, 17, 19, 19, 21, 21, 19, 19, 21, 21, 18,
+ 18, 16, 17, 17, 19, 19, 21, 21, 19, 19, 17, 17, 18, 18,
+ ];
+ initChart(
+ chart3,
+ "#kt_charts_widget_11_tab_3",
+ "#kt_charts_widget_11_chart_3",
+ chart3Data,
+ true
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_11_tab_1",
+ "#kt_charts_widget_11_chart_1",
+ chart1Data,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_11_tab_2",
+ "#kt_charts_widget_11_chart_2",
+ chart2Data,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_11_tab_3",
+ "#kt_charts_widget_11_chart_3",
+ chart3Data,
+ chart3.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget11;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget11.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget12 = (function () {
+ // Private methods
+ var initChart = function (tabSelector, chartSelector, data, initByDefault) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-900");
+
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "Deliveries",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["22%"],
+ borderRadius: 5,
+ dataLabels: {
+ position: "top", // top, center, bottom
+ },
+ startingShape: "flat",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: true,
+ offsetY: -28,
+ style: {
+ fontSize: "13px",
+ colors: labelColor,
+ },
+
+ formatter: function (val) {
+ return val + "K";
+ },
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ categories: [
+ "Grossey",
+ "Pet Food",
+ "Flowers",
+ "Restaurant",
+ "Kids Toys",
+ "Clothing",
+ "Still Water",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ crosshairs: {
+ fill: {
+ gradient: {
+ opacityFrom: 0,
+ opacityTo: 0,
+ },
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+
+ formatter: function (val) {
+ return val + "K";
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return +val + "K";
+ },
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-primary-light"),
+ ],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ var chart = new ApexCharts(element, options);
+
+ var init = false;
+ var tab = document.querySelector(tabSelector);
+
+ if (initByDefault === true) {
+ chart.render();
+ init = true;
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (init == false) {
+ chart.render();
+ init = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(
+ "#kt_charts_widget_12_tab_1",
+ "#kt_charts_widget_12_chart_1",
+ [54, 42, 75, 110, 23, 87, 50],
+ true
+ );
+ initChart(
+ "#kt_charts_widget_12_tab_2",
+ "#kt_charts_widget_12_chart_2",
+ [25, 55, 35, 50, 45, 20, 31],
+ false
+ );
+ initChart(
+ "#kt_charts_widget_12_tab_3",
+ "#kt_charts_widget_12_chart_3",
+ [45, 15, 35, 70, 45, 50, 21],
+ false
+ );
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget12;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget12.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget13 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_13_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/
+ var chart = root.container.children.push(
+ am5xy.XYChart.new(root, {
+ panX: true,
+ panY: true,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ })
+ );
+
+ // Add cursor
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/
+ var cursor = chart.set(
+ "cursor",
+ am5xy.XYCursor.new(root, {
+ behavior: "none",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // The data
+ var data = [
+ {
+ year: "2003",
+ cars: 1587,
+ motorcycles: 650,
+ bicycles: 121,
+ },
+ {
+ year: "2004",
+ cars: 1567,
+ motorcycles: 683,
+ bicycles: 146,
+ },
+ {
+ year: "2005",
+ cars: 1617,
+ motorcycles: 691,
+ bicycles: 138,
+ },
+ {
+ year: "2006",
+ cars: 1630,
+ motorcycles: 642,
+ bicycles: 127,
+ },
+ {
+ year: "2007",
+ cars: 1660,
+ motorcycles: 699,
+ bicycles: 105,
+ },
+ {
+ year: "2008",
+ cars: 1683,
+ motorcycles: 721,
+ bicycles: 109,
+ },
+ {
+ year: "2009",
+ cars: 1691,
+ motorcycles: 737,
+ bicycles: 112,
+ },
+ {
+ year: "2010",
+ cars: 1298,
+ motorcycles: 680,
+ bicycles: 101,
+ },
+ {
+ year: "2011",
+ cars: 1275,
+ motorcycles: 664,
+ bicycles: 97,
+ },
+ {
+ year: "2012",
+ cars: 1246,
+ motorcycles: 648,
+ bicycles: 93,
+ },
+ {
+ year: "2013",
+ cars: 1318,
+ motorcycles: 697,
+ bicycles: 111,
+ },
+ {
+ year: "2014",
+ cars: 1213,
+ motorcycles: 633,
+ bicycles: 87,
+ },
+ {
+ year: "2015",
+ cars: 1199,
+ motorcycles: 621,
+ bicycles: 79,
+ },
+ {
+ year: "2016",
+ cars: 1110,
+ motorcycles: 210,
+ bicycles: 81,
+ },
+ {
+ year: "2017",
+ cars: 1165,
+ motorcycles: 232,
+ bicycles: 75,
+ },
+ {
+ year: "2018",
+ cars: 1145,
+ motorcycles: 219,
+ bicycles: 88,
+ },
+ {
+ year: "2019",
+ cars: 1163,
+ motorcycles: 201,
+ bicycles: 82,
+ },
+ {
+ year: "2020",
+ cars: 1180,
+ motorcycles: 285,
+ bicycles: 87,
+ },
+ {
+ year: "2021",
+ cars: 1159,
+ motorcycles: 277,
+ bicycles: 71,
+ },
+ ];
+
+ // Create axes
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "year",
+ startLocation: 0.5,
+ endLocation: 0.5,
+ renderer: am5xy.AxisRendererX.new(root, {}),
+ tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ xAxis.get("renderer").grid.template.setAll({
+ disabled: true,
+ strokeOpacity: 0,
+ });
+
+ xAxis.get("renderer").labels.template.setAll({
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ xAxis.data.setAll(data);
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: am5xy.AxisRendererY.new(root, {}),
+ })
+ );
+
+ yAxis.get("renderer").grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ yAxis.get("renderer").labels.template.setAll({
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ // Add series
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/series/
+
+ function createSeries(name, field, color) {
+ var series = chart.series.push(
+ am5xy.LineSeries.new(root, {
+ name: name,
+ xAxis: xAxis,
+ yAxis: yAxis,
+ stacked: true,
+ valueYField: field,
+ categoryXField: "year",
+ fill: am5.color(color),
+ tooltip: am5.Tooltip.new(root, {
+ pointerOrientation: "horizontal",
+ labelText: "[bold]{name}[/]\n{categoryX}: {valueY}",
+ }),
+ })
+ );
+
+ series.fills.template.setAll({
+ fillOpacity: 0.5,
+ visible: true,
+ });
+
+ series.data.setAll(data);
+ series.appear(1000);
+ }
+
+ createSeries(
+ "Cars",
+ "cars",
+ KTUtil.getCssVariableValue("--bs-primary")
+ );
+ createSeries(
+ "Motorcycles",
+ "motorcycles",
+ KTUtil.getCssVariableValue("--bs-success")
+ );
+ createSeries(
+ "Bicycles",
+ "bicycles",
+ KTUtil.getCssVariableValue("--bs-warning")
+ );
+
+ // Add scrollbar
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/scrollbars/
+ var scrollbarX = chart.set(
+ "scrollbarX",
+ am5.Scrollbar.new(root, {
+ orientation: "horizontal",
+ marginBottom: 25,
+ height: 8,
+ })
+ );
+
+ // Create axis ranges
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/
+ var rangeDataItem = xAxis.makeDataItem({
+ category: "2016",
+ endCategory: "2021",
+ });
+
+ var range = xAxis.createAxisRange(rangeDataItem);
+
+ rangeDataItem.get("grid").setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-200")),
+ strokeOpacity: 0.5,
+ strokeDasharray: [3],
+ });
+
+ rangeDataItem.get("axisFill").setAll({
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-200")),
+ fillOpacity: 0.1,
+ });
+
+ rangeDataItem.get("label").setAll({
+ inside: true,
+ text: "Fines increased",
+ rotation: 90,
+ centerX: am5.p100,
+ centerY: am5.p100,
+ location: 0,
+ paddingBottom: 10,
+ paddingRight: 15,
+ });
+
+ var rangeDataItem2 = xAxis.makeDataItem({
+ category: "2021",
+ });
+
+ var range2 = xAxis.createAxisRange(rangeDataItem2);
+
+ rangeDataItem2.get("grid").setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-danger")),
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ rangeDataItem2.get("label").setAll({
+ inside: true,
+ text: "Fee introduced",
+ rotation: 90,
+ centerX: am5.p100,
+ centerY: am5.p100,
+ location: 0,
+ paddingBottom: 10,
+ paddingRight: 15,
+ });
+
+ // Make stuff animate on load
+ // https://www.amcharts.com/docs/v5/concepts/animations/
+ chart.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget13;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget13.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget14 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_14_chart");
+
+ if (!element) {
+ return;
+ }
+
+ am5.ready(function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ var root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ innerRadius: am5.percent(20),
+ startAngle: -90,
+ endAngle: 180,
+ })
+ );
+
+ // Data
+ var data = [
+ {
+ category: "Research",
+ value: 80,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-info")
+ ),
+ },
+ },
+ {
+ category: "Marketing",
+ value: 35,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-danger")
+ ),
+ },
+ },
+ {
+ category: "Distribution",
+ value: 92,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ category: "Human Resources",
+ value: 68,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-success")
+ ),
+ },
+ },
+ ];
+
+ // Add cursor
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Cursor
+ var cursor = chart.set(
+ "cursor",
+ am5radar.RadarCursor.new(root, {
+ behavior: "zoomX",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {
+ //minGridDistance: 50
+ });
+
+ xRenderer.labels.template.setAll({
+ radius: 10,
+ });
+
+ xRenderer.grid.template.setAll({
+ forceHidden: true,
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: xRenderer,
+ min: 0,
+ max: 100,
+ strictMinMax: true,
+ numberFormat: "#'%'",
+ tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ xAxis.get("renderer").labels.template.setAll({
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ fontWeight: "500",
+ fontSize: 16,
+ });
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 20,
+ });
+
+ yRenderer.labels.template.setAll({
+ centerX: am5.p100,
+ fontWeight: "500",
+ fontSize: 18,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ templateField: "columnSettings",
+ });
+
+ yRenderer.grid.template.setAll({
+ forceHidden: true,
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "category",
+ renderer: yRenderer,
+ })
+ );
+
+ yAxis.data.setAll(data);
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series1 = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ clustered: false,
+ valueXField: "full",
+ categoryYField: "category",
+ fill: root.interfaceColors.get("alternativeBackground"),
+ })
+ );
+
+ series1.columns.template.setAll({
+ width: am5.p100,
+ fillOpacity: 0.08,
+ strokeOpacity: 0,
+ cornerRadius: 20,
+ });
+
+ series1.data.setAll(data);
+
+ var series2 = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ clustered: false,
+ valueXField: "value",
+ categoryYField: "category",
+ })
+ );
+
+ series2.columns.template.setAll({
+ width: am5.p100,
+ strokeOpacity: 0,
+ tooltipText: "{category}: {valueX}%",
+ cornerRadius: 20,
+ templateField: "columnSettings",
+ });
+
+ series2.data.setAll(data);
+
+ // Animate chart and series in
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series1.appear(1000);
+ series2.appear(1000);
+ chart.appear(1000, 100);
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget14;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget14.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget15 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_15_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/
+ var chart = root.container.children.push(
+ am5xy.XYChart.new(root, {
+ panX: false,
+ panY: false,
+ //wheelX: "panX",
+ //wheelY: "zoomX",
+ layout: root.verticalLayout,
+ })
+ );
+
+ // Data
+ var colors = chart.get("colors");
+
+ var data = [
+ {
+ country: "US",
+ visits: 725,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/united-states.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "UK",
+ visits: 625,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/united-kingdom.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "China",
+ visits: 602,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/china.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Japan",
+ visits: 509,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/japan.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Germany",
+ visits: 322,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/germany.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "France",
+ visits: 214,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/france.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "India",
+ visits: 204,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/india.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Spain",
+ visits: 200,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/spain.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Italy",
+ visits: 165,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/italy.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Russia",
+ visits: 152,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/russia.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Norway",
+ visits: 125,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/norway.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ country: "Canada",
+ visits: 99,
+ icon: "https://www.amcharts.com/wp-content/uploads/flags/canada.svg",
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ ];
+
+ // Create axes
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "country",
+ renderer: am5xy.AxisRendererX.new(root, {
+ minGridDistance: 30,
+ }),
+ bullet: function (root, axis, dataItem) {
+ return am5xy.AxisBullet.new(root, {
+ location: 0.5,
+ sprite: am5.Picture.new(root, {
+ width: 24,
+ height: 24,
+ centerY: am5.p50,
+ centerX: am5.p50,
+ src: dataItem.dataContext.icon,
+ }),
+ });
+ },
+ })
+ );
+
+ xAxis.get("renderer").labels.template.setAll({
+ paddingTop: 20,
+ fontWeight: "400",
+ fontSize: 10,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ xAxis.get("renderer").grid.template.setAll({
+ disabled: true,
+ strokeOpacity: 0,
+ });
+
+ xAxis.data.setAll(data);
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: am5xy.AxisRendererY.new(root, {}),
+ })
+ );
+
+ yAxis.get("renderer").grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ yAxis.get("renderer").labels.template.setAll({
+ fontWeight: "400",
+ fontSize: 10,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ // Add series
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/series/
+ var series = chart.series.push(
+ am5xy.ColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "visits",
+ categoryXField: "country",
+ })
+ );
+
+ series.columns.template.setAll({
+ tooltipText: "{categoryX}: {valueY}",
+ tooltipY: 0,
+ strokeOpacity: 0,
+ templateField: "columnSettings",
+ });
+
+ series.columns.template.setAll({
+ strokeOpacity: 0,
+ cornerRadiusBR: 0,
+ cornerRadiusTR: 6,
+ cornerRadiusBL: 0,
+ cornerRadiusTL: 6,
+ });
+
+ series.data.setAll(data);
+
+ // Make stuff animate on load
+ // https://www.amcharts.com/docs/v5/concepts/animations/
+ series.appear();
+ chart.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget15;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget15.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget16 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_16_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/
+ var chart = root.container.children.push(
+ am5xy.XYChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ layout: root.verticalLayout,
+ })
+ );
+
+ var colors = chart.get("colors");
+
+ var data = [
+ {
+ country: "US",
+ visits: 725,
+ },
+ {
+ country: "UK",
+ visits: 625,
+ },
+ {
+ country: "China",
+ visits: 602,
+ },
+ {
+ country: "Japan",
+ visits: 509,
+ },
+ {
+ country: "Germany",
+ visits: 322,
+ },
+ {
+ country: "France",
+ visits: 214,
+ },
+ {
+ country: "India",
+ visits: 204,
+ },
+ {
+ country: "Spain",
+ visits: 198,
+ },
+ {
+ country: "Italy",
+ visits: 165,
+ },
+ {
+ country: "Russia",
+ visits: 130,
+ },
+ {
+ country: "Norway",
+ visits: 93,
+ },
+ {
+ country: "Canada",
+ visits: 41,
+ },
+ ];
+
+ prepareParetoData();
+
+ function prepareParetoData() {
+ var total = 0;
+
+ for (var i = 0; i < data.length; i++) {
+ var value = data[i].visits;
+ total += value;
+ }
+
+ var sum = 0;
+ for (var i = 0; i < data.length; i++) {
+ var value = data[i].visits;
+ sum += value;
+ data[i].pareto = (sum / total) * 100;
+ }
+ }
+
+ // Create axes
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "country",
+ renderer: am5xy.AxisRendererX.new(root, {
+ minGridDistance: 30,
+ }),
+ })
+ );
+
+ xAxis.get("renderer").labels.template.setAll({
+ paddingTop: 10,
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ xAxis.get("renderer").grid.template.setAll({
+ disabled: true,
+ strokeOpacity: 0,
+ });
+
+ xAxis.data.setAll(data);
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: am5xy.AxisRendererY.new(root, {}),
+ })
+ );
+
+ yAxis.get("renderer").labels.template.setAll({
+ paddingLeft: 10,
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ yAxis.get("renderer").grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ var paretoAxisRenderer = am5xy.AxisRendererY.new(root, {
+ opposite: true,
+ });
+
+ var paretoAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: paretoAxisRenderer,
+ min: 0,
+ max: 100,
+ strictMinMax: true,
+ })
+ );
+
+ paretoAxis.get("renderer").labels.template.setAll({
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ paretoAxisRenderer.grid.template.set("forceHidden", true);
+ paretoAxis.set("numberFormat", "#'%");
+
+ // Add series
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/series/
+ var series = chart.series.push(
+ am5xy.ColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "visits",
+ categoryXField: "country",
+ })
+ );
+
+ series.columns.template.setAll({
+ tooltipText: "{categoryX}: {valueY}",
+ tooltipY: 0,
+ strokeOpacity: 0,
+ cornerRadiusTL: 6,
+ cornerRadiusTR: 6,
+ });
+
+ series.columns.template.adapters.add(
+ "fill",
+ function (fill, target) {
+ return chart
+ .get("colors")
+ .getIndex(series.dataItems.indexOf(target.dataItem));
+ }
+ );
+
+ // pareto series
+ var paretoSeries = chart.series.push(
+ am5xy.LineSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: paretoAxis,
+ valueYField: "pareto",
+ categoryXField: "country",
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-dark")),
+ maskBullets: false,
+ })
+ );
+
+ paretoSeries.bullets.push(function () {
+ return am5.Bullet.new(root, {
+ locationY: 1,
+ sprite: am5.Circle.new(root, {
+ radius: 5,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ stroke: am5.color(
+ KTUtil.getCssVariableValue("--bs-dark")
+ ),
+ }),
+ });
+ });
+
+ series.data.setAll(data);
+ paretoSeries.data.setAll(data);
+
+ // Make stuff animate on load
+ // https://www.amcharts.com/docs/v5/concepts/animations/
+ series.appear();
+ chart.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget16;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget16.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget17 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_17_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/
+ // start and end angle must be set both for chart and series
+ var chart = root.container.children.push(
+ am5percent.PieChart.new(root, {
+ startAngle: 180,
+ endAngle: 360,
+ layout: root.verticalLayout,
+ innerRadius: am5.percent(50),
+ })
+ );
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Series
+ // start and end angle must be set both for chart and series
+ var series = chart.series.push(
+ am5percent.PieSeries.new(root, {
+ startAngle: 180,
+ endAngle: 360,
+ valueField: "value",
+ categoryField: "category",
+ alignLabels: false,
+ })
+ );
+
+ series.labels.template.setAll({
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ series.states.create("hidden", {
+ startAngle: 180,
+ endAngle: 180,
+ });
+
+ series.slices.template.setAll({
+ cornerRadius: 5,
+ });
+
+ series.ticks.template.setAll({
+ forceHidden: true,
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Setting_data
+ series.data.setAll([
+ {
+ value: 10,
+ category: "One",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ },
+ {
+ value: 9,
+ category: "Two",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ },
+ {
+ value: 6,
+ category: "Three",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-danger")),
+ },
+ {
+ value: 5,
+ category: "Four",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-warning")),
+ },
+ {
+ value: 4,
+ category: "Five",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-info")),
+ },
+ {
+ value: 3,
+ category: "Six",
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-secondary")
+ ),
+ },
+ ]);
+
+ series.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget17;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget17.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget18 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_18_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-900");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "Spent time",
+ data: [54, 42, 75, 110, 23, 87, 50],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["28%"],
+ borderRadius: 5,
+ dataLabels: {
+ position: "top", // top, center, bottom
+ },
+ startingShape: "flat",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: true,
+ offsetY: -28,
+ style: {
+ fontSize: "13px",
+ colors: [labelColor],
+ },
+ formatter: function (val) {
+ return val; // + "H";
+ },
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ categories: [
+ "QA Analysis",
+ "Marketing",
+ "Web Dev",
+ "Maths",
+ "Front-end Dev",
+ "Physics",
+ "Phylosophy",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ crosshairs: {
+ fill: {
+ gradient: {
+ opacityFrom: 0,
+ opacityTo: 0,
+ },
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ formatter: function (val) {
+ return val + "H";
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return +val + " hours";
+ },
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-primary-light"),
+ ],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget18;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget18.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget19 = (function () {
+ // Private methods
+ var initChart1 = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_19_chart_1");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ innerRadius: am5.percent(20),
+ startAngle: -90,
+ endAngle: 180,
+ })
+ );
+
+ // Data
+ var data = [
+ {
+ category: "Research",
+ value: 80,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-info")
+ ),
+ },
+ },
+ {
+ category: "Marketing",
+ value: 35,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-danger")
+ ),
+ },
+ },
+ {
+ category: "Distribution",
+ value: 92,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ category: "Human Resources",
+ value: 68,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-success")
+ ),
+ },
+ },
+ ];
+
+ // Add cursor
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Cursor
+ var cursor = chart.set(
+ "cursor",
+ am5radar.RadarCursor.new(root, {
+ behavior: "zoomX",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {
+ //minGridDistance: 50
+ });
+
+ xRenderer.labels.template.setAll({
+ radius: 10,
+ });
+
+ xRenderer.grid.template.setAll({
+ forceHidden: true,
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: xRenderer,
+ min: 0,
+ max: 100,
+ strictMinMax: true,
+ numberFormat: "#'%'",
+ tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ xAxis.get("renderer").labels.template.setAll({
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ fontWeight: "500",
+ fontSize: 16,
+ });
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 20,
+ });
+
+ yRenderer.labels.template.setAll({
+ centerX: am5.p100,
+ fontWeight: "500",
+ fontSize: 18,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ templateField: "columnSettings",
+ });
+
+ yRenderer.grid.template.setAll({
+ forceHidden: true,
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "category",
+ renderer: yRenderer,
+ })
+ );
+
+ yAxis.data.setAll(data);
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series1 = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ clustered: false,
+ valueXField: "full",
+ categoryYField: "category",
+ fill: root.interfaceColors.get("alternativeBackground"),
+ })
+ );
+
+ series1.columns.template.setAll({
+ width: am5.p100,
+ fillOpacity: 0.08,
+ strokeOpacity: 0,
+ cornerRadius: 20,
+ });
+
+ series1.data.setAll(data);
+
+ var series2 = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ clustered: false,
+ valueXField: "value",
+ categoryYField: "category",
+ })
+ );
+
+ series2.columns.template.setAll({
+ width: am5.p100,
+ strokeOpacity: 0,
+ tooltipText: "{category}: {valueX}%",
+ cornerRadius: 20,
+ templateField: "columnSettings",
+ });
+
+ series2.data.setAll(data);
+
+ // Animate chart and series in
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series1.appear(1000);
+ series2.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ var initChart2 = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_19_chart_2");
+
+ var root;
+
+ if (!element) {
+ return;
+ }
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ innerRadius: am5.percent(20),
+ startAngle: -90,
+ endAngle: 180,
+ })
+ );
+
+ // Data
+ var data = [
+ {
+ category: "Research",
+ value: 40,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-info")
+ ),
+ },
+ },
+ {
+ category: "Marketing",
+ value: 50,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-danger")
+ ),
+ },
+ },
+ {
+ category: "Distribution",
+ value: 80,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ category: "Human Resources",
+ value: 70,
+ full: 100,
+ columnSettings: {
+ fillOpacity: 1,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-success")
+ ),
+ },
+ },
+ ];
+
+ // Add cursor
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Cursor
+ var cursor = chart.set(
+ "cursor",
+ am5radar.RadarCursor.new(root, {
+ behavior: "zoomX",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {
+ //minGridDistance: 50
+ });
+
+ xRenderer.labels.template.setAll({
+ radius: 10,
+ });
+
+ xRenderer.grid.template.setAll({
+ forceHidden: true,
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: xRenderer,
+ min: 0,
+ max: 100,
+ strictMinMax: true,
+ numberFormat: "#'%'",
+ tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 20,
+ });
+
+ yRenderer.labels.template.setAll({
+ centerX: am5.p100,
+ fontWeight: "500",
+ fontSize: 18,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ templateField: "columnSettings",
+ });
+
+ yRenderer.grid.template.setAll({
+ forceHidden: true,
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "category",
+ renderer: yRenderer,
+ })
+ );
+
+ yAxis.data.setAll(data);
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series1 = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ clustered: false,
+ valueXField: "full",
+ categoryYField: "category",
+ fill: root.interfaceColors.get("alternativeBackground"),
+ })
+ );
+
+ series1.columns.template.setAll({
+ width: am5.p100,
+ fillOpacity: 0.08,
+ strokeOpacity: 0,
+ cornerRadius: 20,
+ });
+
+ series1.data.setAll(data);
+
+ var series2 = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ clustered: false,
+ valueXField: "value",
+ categoryYField: "category",
+ })
+ );
+
+ series2.columns.template.setAll({
+ width: am5.p100,
+ strokeOpacity: 0,
+ tooltipText: "{category}: {valueX}%",
+ cornerRadius: 20,
+ templateField: "columnSettings",
+ });
+
+ series2.data.setAll(data);
+
+ // Animate chart and series in
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series1.appear(1000);
+ series2.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart1();
+ initChart2();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget19;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget19.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget2 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_2");
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute("data-kt-chart-color");
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var strokeColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-" + color + "-light");
+
+ var options = {
+ series: [
+ {
+ name: "Overview",
+ data: [15, 15, 45, 45, 25, 25, 55, 55, 20, 20, 37],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "Feb",
+ "Mar",
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ colors: [lightColor],
+ markers: {
+ colors: lightColor,
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget2;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget2.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget20 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_20");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-danger");
+ var lightColor = KTUtil.getCssVariableValue("--bs-danger");
+ var chartInfo = element.getAttribute("data-kt-chart-info");
+
+ var options = {
+ series: [
+ {
+ name: chartInfo,
+ data: [
+ 34.5, 34.5, 35, 35, 35.5, 35.5, 35, 35, 35.5, 35.5, 35,
+ 35, 34.5, 34.5, 35, 35, 35.4, 35.4, 35,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 19",
+ "Apr 21",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ max: 36.3,
+ min: 33,
+ tickAmount: 6,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return "$" + parseInt(10 * val);
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + parseInt(10 * val);
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget20;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget20.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget21 = (function () {
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_21");
+
+ if (!element) {
+ return;
+ }
+
+ var options = {
+ type: "serial",
+ theme: "light",
+ legend: {
+ equalWidths: false,
+ useGraphSettings: true,
+ valueAlign: "left",
+ valueWidth: 120,
+ },
+ dataProvider: [
+ {
+ date: "2012-01-01",
+ distance: 227,
+ townName: "New York",
+ townName2: "New York",
+ townSize: 25,
+ latitude: 40.71,
+ duration: 408,
+ },
+ {
+ date: "2012-01-02",
+ distance: 371,
+ townName: "Washington",
+ townSize: 14,
+ latitude: 38.89,
+ duration: 482,
+ },
+ {
+ date: "2012-01-03",
+ distance: 433,
+ townName: "Wilmington",
+ townSize: 6,
+ latitude: 34.22,
+ duration: 562,
+ },
+ {
+ date: "2012-01-04",
+ distance: 345,
+ townName: "Jacksonville",
+ townSize: 7,
+ latitude: 30.35,
+ duration: 379,
+ },
+ {
+ date: "2012-01-05",
+ distance: 480,
+ townName: "Miami",
+ townName2: "Miami",
+ townSize: 10,
+ latitude: 25.83,
+ duration: 501,
+ },
+ {
+ date: "2012-01-06",
+ distance: 386,
+ townName: "Tallahassee",
+ townSize: 7,
+ latitude: 30.46,
+ duration: 443,
+ },
+ {
+ date: "2012-01-07",
+ distance: 348,
+ townName: "New Orleans",
+ townSize: 10,
+ latitude: 29.94,
+ duration: 405,
+ },
+ {
+ date: "2012-01-08",
+ distance: 238,
+ townName: "Houston",
+ townName2: "Houston",
+ townSize: 16,
+ latitude: 29.76,
+ duration: 309,
+ },
+ {
+ date: "2012-01-09",
+ distance: 218,
+ townName: "Dalas",
+ townSize: 17,
+ latitude: 32.8,
+ duration: 287,
+ },
+ {
+ date: "2012-01-10",
+ distance: 349,
+ townName: "Oklahoma City",
+ townSize: 11,
+ latitude: 35.49,
+ duration: 485,
+ },
+ {
+ date: "2012-01-11",
+ distance: 603,
+ townName: "Kansas City",
+ townSize: 10,
+ latitude: 39.1,
+ duration: 890,
+ },
+ {
+ date: "2012-01-12",
+ distance: 534,
+ townName: "Denver",
+ townName2: "Denver",
+ townSize: 18,
+ latitude: 39.74,
+ duration: 810,
+ },
+ {
+ date: "2012-01-13",
+ townName: "Salt Lake City",
+ townSize: 12,
+ distance: 425,
+ duration: 670,
+ latitude: 40.75,
+ dashLength: 8,
+ alpha: 0.4,
+ },
+ {
+ date: "2012-01-14",
+ latitude: 36.1,
+ duration: 470,
+ townName: "Las Vegas",
+ townName2: "Las Vegas",
+ },
+ {
+ date: "2012-01-15",
+ },
+ {
+ date: "2012-01-16",
+ },
+ {
+ date: "2012-01-17",
+ },
+ {
+ date: "2012-01-18",
+ },
+ {
+ date: "2012-01-19",
+ },
+ ],
+ valueAxes: [
+ {
+ id: "distanceAxis",
+ axisAlpha: 0,
+ gridAlpha: 0,
+ position: "left",
+ title: "distance",
+ },
+ {
+ id: "latitudeAxis",
+ axisAlpha: 0,
+ gridAlpha: 0,
+ labelsEnabled: false,
+ position: "right",
+ },
+ {
+ id: "durationAxis",
+ duration: "mm",
+ durationUnits: {
+ hh: "h ",
+ mm: "min",
+ },
+ axisAlpha: 0,
+ gridAlpha: 0,
+ inside: true,
+ position: "right",
+ title: "duration",
+ },
+ ],
+ graphs: [
+ {
+ alphaField: "alpha",
+ balloonText: "[[value]] miles",
+ dashLengthField: "dashLength",
+ fillAlphas: 0.7,
+ legendPeriodValueText: "total: [[value.sum]] mi",
+ legendValueText: "[[value]] mi",
+ title: "distance",
+ type: "column",
+ valueField: "distance",
+ valueAxis: "distanceAxis",
+ },
+ {
+ balloonText: "latitude:[[value]]",
+ bullet: "round",
+ bulletBorderAlpha: 1,
+ useLineColorForBulletBorder: true,
+ bulletColor: "#FFFFFF",
+ bulletSizeField: "townSize",
+ dashLengthField: "dashLength",
+ descriptionField: "townName",
+ labelPosition: "right",
+ labelText: "[[townName2]]",
+ legendValueText: "[[value]]/[[description]]",
+ title: "latitude/city",
+ fillAlphas: 0,
+ valueField: "latitude",
+ valueAxis: "latitudeAxis",
+ },
+ {
+ bullet: "square",
+ bulletBorderAlpha: 1,
+ bulletBorderThickness: 1,
+ dashLengthField: "dashLength",
+ legendValueText: "[[value]]",
+ title: "duration",
+ fillAlphas: 0,
+ valueField: "duration",
+ valueAxis: "durationAxis",
+ },
+ ],
+ chartCursor: {
+ categoryBalloonDateFormat: "DD",
+ cursorAlpha: 0.1,
+ cursorColor: "#000000",
+ fullWidth: true,
+ valueBalloonsEnabled: false,
+ zoomable: false,
+ },
+ dataDateFormat: "YYYY-MM-DD",
+ categoryField: "date",
+ categoryAxis: {
+ dateFormats: [
+ {
+ period: "DD",
+ format: "DD",
+ },
+ {
+ period: "WW",
+ format: "MMM DD",
+ },
+ {
+ period: "MM",
+ format: "MMM",
+ },
+ {
+ period: "YYYY",
+ format: "YYYY",
+ },
+ ],
+ parseDates: true,
+ autoGridCount: false,
+ axisColor: "#555555",
+ gridAlpha: 0.1,
+ gridColor: "#FFFFFF",
+ gridCount: 50,
+ },
+ export: {
+ enabled: true,
+ },
+ };
+
+ var chart = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.render();
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget21;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget21.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget22 = (function () {
+ // Private methods
+ var initChart = function (tabSelector, chartSelector, data, initByDefault) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+
+ var options = {
+ series: data,
+ chart: {
+ fontFamily: "inherit",
+ type: "donut",
+ width: 250,
+ },
+ plotOptions: {
+ pie: {
+ donut: {
+ size: "50%",
+ labels: {
+ value: {
+ fontSize: "10px",
+ },
+ },
+ },
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-info"),
+ KTUtil.getCssVariableValue("--bs-success"),
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-danger"),
+ ],
+ stroke: {
+ width: 0,
+ },
+ labels: ["Sales", "Sales", "Sales", "Sales"],
+ legend: {
+ show: false,
+ },
+ fill: {
+ type: "false",
+ },
+ };
+
+ var chart = new ApexCharts(element, options);
+
+ var init = false;
+
+ var tab = document.querySelector(tabSelector);
+
+ if (initByDefault === true) {
+ chart.render();
+ init = true;
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (init == false) {
+ chart.render();
+ init = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(
+ "#kt_chart_widgets_22_tab_1",
+ "#kt_chart_widgets_22_chart_1",
+ [20, 100, 15, 25],
+ true
+ );
+ initChart(
+ "#kt_chart_widgets_22_tab_2",
+ "#kt_chart_widgets_22_chart_2",
+ [70, 13, 11, 2],
+ false
+ );
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget22;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget22.init();
+});
+// Class definition
+var KTChartsWidget23 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_23");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/
+ var chart = root.container.children.push(
+ am5xy.XYChart.new(root, {
+ panX: false,
+ panY: false,
+ layout: root.verticalLayout,
+ })
+ );
+
+ var data = [
+ {
+ year: "2016",
+ income: 23.5,
+ expenses: 21.1,
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ year: "2017",
+ income: 26.2,
+ expenses: 30.5,
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ year: "2018",
+ income: 30.1,
+ expenses: 34.9,
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ year: "2019",
+ income: 29.5,
+ expenses: 31.1,
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ year: "2020",
+ income: 30.6,
+ expenses: 28.2,
+ strokeSettings: {
+ strokeWidth: 3,
+ strokeDasharray: [5, 5],
+ },
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ year: "2021",
+ income: 40.6,
+ expenses: 28.2,
+ strokeSettings: {
+ strokeWidth: 3,
+ strokeDasharray: [5, 5],
+ },
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ {
+ year: "2022",
+ income: 34.1,
+ expenses: 32.9,
+ strokeSettings: {
+ strokeWidth: 3,
+ strokeDasharray: [5, 5],
+ },
+ columnSettings: {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-primary")
+ ),
+ },
+ },
+ ];
+
+ // Create axes
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "year",
+ renderer: am5xy.AxisRendererX.new(root, {}),
+ //tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ xAxis.data.setAll(data);
+
+ xAxis.get("renderer").labels.template.setAll({
+ paddingTop: 20,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ xAxis.get("renderer").grid.template.setAll({
+ disabled: true,
+ strokeOpacity: 0,
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ min: 0,
+ extraMax: 0.1,
+ renderer: am5xy.AxisRendererY.new(root, {}),
+ })
+ );
+
+ yAxis.get("renderer").labels.template.setAll({
+ paddingTop: 0,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ yAxis.get("renderer").grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ // Add series
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/series/
+ var series1 = chart.series.push(
+ am5xy.ColumnSeries.new(root, {
+ name: "Income",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "income",
+ categoryXField: "year",
+ tooltip: am5.Tooltip.new(root, {
+ pointerOrientation: "horizontal",
+ labelText: "{name} in {categoryX}: {valueY} {info}",
+ }),
+ })
+ );
+
+ series1.columns.template.setAll({
+ tooltipY: am5.percent(10),
+ templateField: "columnSettings",
+ });
+
+ series1.data.setAll(data);
+
+ var series2 = chart.series.push(
+ am5xy.LineSeries.new(root, {
+ name: "Expenses",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "expenses",
+ categoryXField: "year",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ stroke: am5.color(
+ KTUtil.getCssVariableValue("--bs-success")
+ ),
+ tooltip: am5.Tooltip.new(root, {
+ pointerOrientation: "horizontal",
+ labelText: "{name} in {categoryX}: {valueY} {info}",
+ }),
+ })
+ );
+
+ series2.strokes.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ series2.strokes.template.setAll({
+ strokeWidth: 3,
+ templateField: "strokeSettings",
+ });
+
+ series2.data.setAll(data);
+
+ series2.bullets.push(function () {
+ return am5.Bullet.new(root, {
+ sprite: am5.Circle.new(root, {
+ strokeWidth: 3,
+ stroke: am5.color(
+ KTUtil.getCssVariableValue("--bs-success")
+ ),
+ radius: 5,
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-success-light")
+ ),
+ }),
+ });
+ });
+
+ series1.columns.template.setAll({
+ strokeOpacity: 0,
+ cornerRadiusBR: 0,
+ cornerRadiusTR: 6,
+ cornerRadiusBL: 0,
+ cornerRadiusTL: 6,
+ });
+
+ chart.set("cursor", am5xy.XYCursor.new(root, {}));
+
+ chart.get("cursor").lineX.setAll({ visible: false });
+ chart.get("cursor").lineY.setAll({ visible: false });
+
+ // Add legend
+ // https://www.amcharts.com/docs/v5/charts/xy-chart/legend-xy-series/
+ var legend = chart.children.push(
+ am5.Legend.new(root, {
+ centerX: am5.p50,
+ x: am5.p50,
+ })
+ );
+ legend.data.setAll(chart.series.values);
+
+ legend.labels.template.setAll({
+ fontWeight: "600",
+ fontSize: 14,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ // Make stuff animate on load
+ // https://www.amcharts.com/docs/v5/concepts/animations/
+ chart.appear(1000, 100);
+ series1.appear();
+ };
+
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget23;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget23.init();
+});
+
+// Class definition
+var KTChartsWidget24 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_24");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ var usData = [
+ {
+ age: "0 to 5",
+ male: 10175713,
+ female: 9736305,
+ },
+ {
+ age: "5 to 9",
+ male: 10470147,
+ female: 10031835,
+ },
+ {
+ age: "10 to 14",
+ male: 10561873,
+ female: 10117913,
+ },
+ {
+ age: "15 to 17",
+ male: 6447043,
+ female: 6142996,
+ },
+ {
+ age: "18 to 21",
+ male: 9349745,
+ female: 8874664,
+ },
+ {
+ age: "22 to 24",
+ male: 6722248,
+ female: 6422017,
+ },
+ {
+ age: "25 to 29",
+ male: 10989596,
+ female: 10708414,
+ },
+ {
+ age: "30 to 34",
+ male: 10625791,
+ female: 10557848,
+ },
+ {
+ age: "35 to 39",
+ male: 9899569,
+ female: 9956213,
+ },
+ {
+ age: "40 to 44",
+ male: 10330986,
+ female: 10465142,
+ },
+ {
+ age: "45 to 49",
+ male: 10571984,
+ female: 10798384,
+ },
+ {
+ age: "50 to 54",
+ male: 11051409,
+ female: 11474081,
+ },
+ {
+ age: "55 to 59",
+ male: 10173646,
+ female: 10828301,
+ },
+ {
+ age: "60 to 64",
+ male: 8824852,
+ female: 9590829,
+ },
+ {
+ age: "65 to 69",
+ male: 6876271,
+ female: 7671175,
+ },
+ {
+ age: "70 to 74",
+ male: 4867513,
+ female: 5720208,
+ },
+ {
+ age: "75 to 79",
+ male: 3416432,
+ female: 4313697,
+ },
+ {
+ age: "80 to 84",
+ male: 2378691,
+ female: 3432738,
+ },
+ {
+ age: "85 and Older",
+ male: 2000771,
+ female: 3937981,
+ },
+ ];
+
+ var stateData = {
+ AK: [
+ {
+ age: "0 to 5",
+ male: 28346,
+ female: 26607,
+ },
+ {
+ age: "10 to 14",
+ male: 26350,
+ female: 24821,
+ },
+ {
+ age: "15 to 17",
+ male: 15929,
+ female: 14735,
+ },
+ {
+ age: "18 to 21",
+ male: 25360,
+ female: 19030,
+ },
+ {
+ age: "22 to 24",
+ male: 20755,
+ female: 15663,
+ },
+ {
+ age: "25 to 29",
+ male: 32415,
+ female: 28259,
+ },
+ {
+ age: "30 to 34",
+ male: 28232,
+ female: 25272,
+ },
+ {
+ age: "35 to 39",
+ male: 24217,
+ female: 22002,
+ },
+ {
+ age: "40 to 44",
+ male: 23429,
+ female: 21968,
+ },
+ {
+ age: "45 to 49",
+ male: 24764,
+ female: 22784,
+ },
+ {
+ age: "5 to 9",
+ male: 26276,
+ female: 25063,
+ },
+ {
+ age: "50 to 54",
+ male: 27623,
+ female: 25503,
+ },
+ {
+ age: "55 to 59",
+ male: 26300,
+ female: 25198,
+ },
+ {
+ age: "60 to 64",
+ male: 21798,
+ female: 18970,
+ },
+ {
+ age: "65 to 69",
+ male: 13758,
+ female: 12899,
+ },
+ {
+ age: "70 to 74",
+ male: 8877,
+ female: 8269,
+ },
+ {
+ age: "75 to 79",
+ male: 4834,
+ female: 4894,
+ },
+ {
+ age: "80 to 84",
+ male: 3015,
+ female: 3758,
+ },
+ {
+ age: "85 and Older",
+ male: 1882,
+ female: 3520,
+ },
+ ],
+ AL: [
+ {
+ age: "0 to 5",
+ male: 150860,
+ female: 144194,
+ },
+ {
+ age: "10 to 14",
+ male: 161596,
+ female: 156841,
+ },
+ {
+ age: "15 to 17",
+ male: 98307,
+ female: 94462,
+ },
+ {
+ age: "18 to 21",
+ male: 142173,
+ female: 136514,
+ },
+ {
+ age: "22 to 24",
+ male: 99164,
+ female: 101444,
+ },
+ {
+ age: "25 to 29",
+ male: 154977,
+ female: 159815,
+ },
+ {
+ age: "30 to 34",
+ male: 150036,
+ female: 156764,
+ },
+ {
+ age: "35 to 39",
+ male: 141667,
+ female: 152220,
+ },
+ {
+ age: "40 to 44",
+ male: 155693,
+ female: 159835,
+ },
+ {
+ age: "45 to 49",
+ male: 156413,
+ female: 163909,
+ },
+ {
+ age: "5 to 9",
+ male: 156380,
+ female: 149334,
+ },
+ {
+ age: "50 to 54",
+ male: 166863,
+ female: 178187,
+ },
+ {
+ age: "55 to 59",
+ male: 156994,
+ female: 169355,
+ },
+ {
+ age: "60 to 64",
+ male: 140659,
+ female: 156638,
+ },
+ {
+ age: "65 to 69",
+ male: 112724,
+ female: 128494,
+ },
+ {
+ age: "70 to 74",
+ male: 79258,
+ female: 96507,
+ },
+ {
+ age: "75 to 79",
+ male: 55122,
+ female: 75371,
+ },
+ {
+ age: "80 to 84",
+ male: 36252,
+ female: 53976,
+ },
+ {
+ age: "85 and Older",
+ male: 25955,
+ female: 55667,
+ },
+ ],
+ AR: [
+ {
+ age: "0 to 5",
+ male: 98246,
+ female: 93534,
+ },
+ {
+ age: "10 to 14",
+ male: 99707,
+ female: 96862,
+ },
+ {
+ age: "15 to 17",
+ male: 60521,
+ female: 57735,
+ },
+ {
+ age: "18 to 21",
+ male: 87209,
+ female: 81936,
+ },
+ {
+ age: "22 to 24",
+ male: 59114,
+ female: 59387,
+ },
+ {
+ age: "25 to 29",
+ male: 96190,
+ female: 96573,
+ },
+ {
+ age: "30 to 34",
+ male: 96273,
+ female: 95632,
+ },
+ {
+ age: "35 to 39",
+ male: 90371,
+ female: 90620,
+ },
+ {
+ age: "40 to 44",
+ male: 91881,
+ female: 93777,
+ },
+ {
+ age: "45 to 49",
+ male: 93238,
+ female: 95476,
+ },
+ {
+ age: "5 to 9",
+ male: 103613,
+ female: 97603,
+ },
+ {
+ age: "50 to 54",
+ male: 98960,
+ female: 102953,
+ },
+ {
+ age: "55 to 59",
+ male: 92133,
+ female: 100676,
+ },
+ {
+ age: "60 to 64",
+ male: 84082,
+ female: 90243,
+ },
+ {
+ age: "65 to 69",
+ male: 70121,
+ female: 76669,
+ },
+ {
+ age: "70 to 74",
+ male: 52154,
+ female: 61686,
+ },
+ {
+ age: "75 to 79",
+ male: 36856,
+ female: 44371,
+ },
+ {
+ age: "80 to 84",
+ male: 23098,
+ female: 35328,
+ },
+ {
+ age: "85 and Older",
+ male: 18146,
+ female: 35234,
+ },
+ ],
+ AZ: [
+ {
+ age: "0 to 5",
+ male: 221511,
+ female: 212324,
+ },
+ {
+ age: "10 to 14",
+ male: 233530,
+ female: 222965,
+ },
+ {
+ age: "15 to 17",
+ male: 138926,
+ female: 132399,
+ },
+ {
+ age: "18 to 21",
+ male: 200240,
+ female: 187786,
+ },
+ {
+ age: "22 to 24",
+ male: 142852,
+ female: 132457,
+ },
+ {
+ age: "25 to 29",
+ male: 231488,
+ female: 215985,
+ },
+ {
+ age: "30 to 34",
+ male: 223754,
+ female: 214946,
+ },
+ {
+ age: "35 to 39",
+ male: 206718,
+ female: 202482,
+ },
+ {
+ age: "40 to 44",
+ male: 213591,
+ female: 210621,
+ },
+ {
+ age: "45 to 49",
+ male: 205830,
+ female: 206081,
+ },
+ {
+ age: "5 to 9",
+ male: 231249,
+ female: 224385,
+ },
+ {
+ age: "50 to 54",
+ male: 210386,
+ female: 218328,
+ },
+ {
+ age: "55 to 59",
+ male: 192614,
+ female: 209767,
+ },
+ {
+ age: "60 to 64",
+ male: 178325,
+ female: 200313,
+ },
+ {
+ age: "65 to 69",
+ male: 155852,
+ female: 174407,
+ },
+ {
+ age: "70 to 74",
+ male: 121878,
+ female: 136840,
+ },
+ {
+ age: "75 to 79",
+ male: 87470,
+ female: 96953,
+ },
+ {
+ age: "80 to 84",
+ male: 58553,
+ female: 69559,
+ },
+ {
+ age: "85 and Older",
+ male: 44321,
+ female: 74242,
+ },
+ ],
+ CA: [
+ {
+ age: "0 to 5",
+ male: 1283763,
+ female: 1228013,
+ },
+ {
+ age: "10 to 14",
+ male: 1297819,
+ female: 1245016,
+ },
+ {
+ age: "15 to 17",
+ male: 811114,
+ female: 773387,
+ },
+ {
+ age: "18 to 21",
+ male: 1179739,
+ female: 1100368,
+ },
+ {
+ age: "22 to 24",
+ male: 883323,
+ female: 825833,
+ },
+ {
+ age: "25 to 29",
+ male: 1478557,
+ female: 1387516,
+ },
+ {
+ age: "30 to 34",
+ male: 1399835,
+ female: 1348430,
+ },
+ {
+ age: "35 to 39",
+ male: 1287803,
+ female: 1271908,
+ },
+ {
+ age: "40 to 44",
+ male: 1308311,
+ female: 1309907,
+ },
+ {
+ age: "45 to 49",
+ male: 1306719,
+ female: 1303528,
+ },
+ {
+ age: "5 to 9",
+ male: 1295030,
+ female: 1240201,
+ },
+ {
+ age: "50 to 54",
+ male: 1305323,
+ female: 1330645,
+ },
+ {
+ age: "55 to 59",
+ male: 1161821,
+ female: 1223440,
+ },
+ {
+ age: "60 to 64",
+ male: 975874,
+ female: 1060921,
+ },
+ {
+ age: "65 to 69",
+ male: 734814,
+ female: 833926,
+ },
+ {
+ age: "70 to 74",
+ male: 515115,
+ female: 604615,
+ },
+ {
+ age: "75 to 79",
+ male: 363282,
+ female: 455568,
+ },
+ {
+ age: "80 to 84",
+ male: 264126,
+ female: 363937,
+ },
+ {
+ age: "85 and Older",
+ male: 234767,
+ female: 427170,
+ },
+ ],
+ CO: [
+ {
+ age: "0 to 5",
+ male: 173245,
+ female: 163629,
+ },
+ {
+ age: "10 to 14",
+ male: 179579,
+ female: 170930,
+ },
+ {
+ age: "15 to 17",
+ male: 102577,
+ female: 98569,
+ },
+ {
+ age: "18 to 21",
+ male: 152713,
+ female: 139268,
+ },
+ {
+ age: "22 to 24",
+ male: 116654,
+ female: 108238,
+ },
+ {
+ age: "25 to 29",
+ male: 204625,
+ female: 188680,
+ },
+ {
+ age: "30 to 34",
+ male: 200624,
+ female: 188616,
+ },
+ {
+ age: "35 to 39",
+ male: 183386,
+ female: 175326,
+ },
+ {
+ age: "40 to 44",
+ male: 184422,
+ female: 173654,
+ },
+ {
+ age: "45 to 49",
+ male: 174730,
+ female: 172981,
+ },
+ {
+ age: "5 to 9",
+ male: 179803,
+ female: 173524,
+ },
+ {
+ age: "50 to 54",
+ male: 183543,
+ female: 187757,
+ },
+ {
+ age: "55 to 59",
+ male: 170717,
+ female: 179537,
+ },
+ {
+ age: "60 to 64",
+ male: 150815,
+ female: 155924,
+ },
+ {
+ age: "65 to 69",
+ male: 111094,
+ female: 119530,
+ },
+ {
+ age: "70 to 74",
+ male: 72252,
+ female: 80168,
+ },
+ {
+ age: "75 to 79",
+ male: 49142,
+ female: 59393,
+ },
+ {
+ age: "80 to 84",
+ male: 31894,
+ female: 43881,
+ },
+ {
+ age: "85 and Older",
+ male: 26852,
+ female: 50634,
+ },
+ ],
+ CT: [
+ {
+ age: "0 to 5",
+ male: 97647,
+ female: 93798,
+ },
+ {
+ age: "10 to 14",
+ male: 118032,
+ female: 113043,
+ },
+ {
+ age: "15 to 17",
+ male: 75546,
+ female: 71687,
+ },
+ {
+ age: "18 to 21",
+ male: 106966,
+ female: 102763,
+ },
+ {
+ age: "22 to 24",
+ male: 71125,
+ female: 64777,
+ },
+ {
+ age: "25 to 29",
+ male: 112189,
+ female: 108170,
+ },
+ {
+ age: "30 to 34",
+ male: 107223,
+ female: 109096,
+ },
+ {
+ age: "35 to 39",
+ male: 102424,
+ female: 106008,
+ },
+ {
+ age: "40 to 44",
+ male: 116664,
+ female: 123744,
+ },
+ {
+ age: "45 to 49",
+ male: 131872,
+ female: 139406,
+ },
+ {
+ age: "5 to 9",
+ male: 110043,
+ female: 104940,
+ },
+ {
+ age: "50 to 54",
+ male: 138644,
+ female: 146532,
+ },
+ {
+ age: "55 to 59",
+ male: 126670,
+ female: 132895,
+ },
+ {
+ age: "60 to 64",
+ male: 104701,
+ female: 114339,
+ },
+ {
+ age: "65 to 69",
+ male: 80178,
+ female: 91052,
+ },
+ {
+ age: "70 to 74",
+ male: 55237,
+ female: 65488,
+ },
+ {
+ age: "75 to 79",
+ male: 38844,
+ female: 51544,
+ },
+ {
+ age: "80 to 84",
+ male: 28908,
+ female: 43036,
+ },
+ {
+ age: "85 and Older",
+ male: 28694,
+ female: 59297,
+ },
+ ],
+ DC: [
+ {
+ age: "0 to 5",
+ male: 20585,
+ female: 19848,
+ },
+ {
+ age: "10 to 14",
+ male: 12723,
+ female: 11991,
+ },
+ {
+ age: "15 to 17",
+ male: 7740,
+ female: 7901,
+ },
+ {
+ age: "18 to 21",
+ male: 22350,
+ female: 25467,
+ },
+ {
+ age: "22 to 24",
+ male: 15325,
+ female: 19085,
+ },
+ {
+ age: "25 to 29",
+ male: 35295,
+ female: 41913,
+ },
+ {
+ age: "30 to 34",
+ male: 32716,
+ female: 35553,
+ },
+ {
+ age: "35 to 39",
+ male: 23748,
+ female: 24922,
+ },
+ {
+ age: "40 to 44",
+ male: 21158,
+ female: 20113,
+ },
+ {
+ age: "45 to 49",
+ male: 19279,
+ female: 18956,
+ },
+ {
+ age: "5 to 9",
+ male: 14999,
+ female: 15518,
+ },
+ {
+ age: "50 to 54",
+ male: 19249,
+ female: 19279,
+ },
+ {
+ age: "55 to 59",
+ male: 17592,
+ female: 18716,
+ },
+ {
+ age: "60 to 64",
+ male: 14272,
+ female: 17892,
+ },
+ {
+ age: "65 to 69",
+ male: 9740,
+ female: 13375,
+ },
+ {
+ age: "70 to 74",
+ male: 8221,
+ female: 9761,
+ },
+ {
+ age: "75 to 79",
+ male: 5071,
+ female: 7601,
+ },
+ {
+ age: "80 to 84",
+ male: 3399,
+ female: 5619,
+ },
+ {
+ age: "85 and Older",
+ male: 3212,
+ female: 7300,
+ },
+ ],
+ DE: [
+ {
+ age: "0 to 5",
+ male: 28382,
+ female: 27430,
+ },
+ {
+ age: "10 to 14",
+ male: 29482,
+ female: 27484,
+ },
+ {
+ age: "15 to 17",
+ male: 17589,
+ female: 16828,
+ },
+ {
+ age: "18 to 21",
+ male: 26852,
+ female: 26911,
+ },
+ {
+ age: "22 to 24",
+ male: 19006,
+ female: 18413,
+ },
+ {
+ age: "25 to 29",
+ male: 30933,
+ female: 31146,
+ },
+ {
+ age: "30 to 34",
+ male: 28602,
+ female: 29431,
+ },
+ {
+ age: "35 to 39",
+ male: 26498,
+ female: 28738,
+ },
+ {
+ age: "40 to 44",
+ male: 27674,
+ female: 28519,
+ },
+ {
+ age: "45 to 49",
+ male: 30582,
+ female: 32924,
+ },
+ {
+ age: "5 to 9",
+ male: 28224,
+ female: 28735,
+ },
+ {
+ age: "50 to 54",
+ male: 32444,
+ female: 35052,
+ },
+ {
+ age: "55 to 59",
+ male: 29048,
+ female: 34377,
+ },
+ {
+ age: "60 to 64",
+ male: 27925,
+ female: 30017,
+ },
+ {
+ age: "65 to 69",
+ male: 22767,
+ female: 26707,
+ },
+ {
+ age: "70 to 74",
+ male: 17121,
+ female: 19327,
+ },
+ {
+ age: "75 to 79",
+ male: 11479,
+ female: 14264,
+ },
+ {
+ age: "80 to 84",
+ male: 7473,
+ female: 10353,
+ },
+ {
+ age: "85 and Older",
+ male: 6332,
+ female: 11385,
+ },
+ ],
+ FL: [
+ {
+ age: "0 to 5",
+ male: 552054,
+ female: 529003,
+ },
+ {
+ age: "10 to 14",
+ male: 582351,
+ female: 558377,
+ },
+ {
+ age: "15 to 17",
+ male: 363538,
+ female: 345048,
+ },
+ {
+ age: "18 to 21",
+ male: 528013,
+ female: 498162,
+ },
+ {
+ age: "22 to 24",
+ male: 385515,
+ female: 368754,
+ },
+ {
+ age: "25 to 29",
+ male: 641710,
+ female: 622134,
+ },
+ {
+ age: "30 to 34",
+ male: 602467,
+ female: 602634,
+ },
+ {
+ age: "35 to 39",
+ male: 579722,
+ female: 585089,
+ },
+ {
+ age: "40 to 44",
+ male: 623074,
+ female: 639410,
+ },
+ {
+ age: "45 to 49",
+ male: 659376,
+ female: 677305,
+ },
+ {
+ age: "5 to 9",
+ male: 567479,
+ female: 543273,
+ },
+ {
+ age: "50 to 54",
+ male: 687625,
+ female: 723103,
+ },
+ {
+ age: "55 to 59",
+ male: 626363,
+ female: 685728,
+ },
+ {
+ age: "60 to 64",
+ male: 566282,
+ female: 651192,
+ },
+ {
+ age: "65 to 69",
+ male: 517513,
+ female: 589377,
+ },
+ {
+ age: "70 to 74",
+ male: 407275,
+ female: 470688,
+ },
+ {
+ age: "75 to 79",
+ male: 305530,
+ female: 361107,
+ },
+ {
+ age: "80 to 84",
+ male: 219362,
+ female: 281016,
+ },
+ {
+ age: "85 and Older",
+ male: 184760,
+ female: 314363,
+ },
+ ],
+ GA: [
+ {
+ age: "0 to 5",
+ male: 338979,
+ female: 326326,
+ },
+ {
+ age: "10 to 14",
+ male: 356404,
+ female: 351833,
+ },
+ {
+ age: "15 to 17",
+ male: 211908,
+ female: 203412,
+ },
+ {
+ age: "18 to 21",
+ male: 305617,
+ female: 289233,
+ },
+ {
+ age: "22 to 24",
+ male: 214032,
+ female: 206526,
+ },
+ {
+ age: "25 to 29",
+ male: 342885,
+ female: 343115,
+ },
+ {
+ age: "30 to 34",
+ male: 333159,
+ female: 348125,
+ },
+ {
+ age: "35 to 39",
+ male: 325121,
+ female: 345251,
+ },
+ {
+ age: "40 to 44",
+ male: 348120,
+ female: 363703,
+ },
+ {
+ age: "45 to 49",
+ male: 343559,
+ female: 358754,
+ },
+ {
+ age: "5 to 9",
+ male: 362147,
+ female: 340071,
+ },
+ {
+ age: "50 to 54",
+ male: 338424,
+ female: 359362,
+ },
+ {
+ age: "55 to 59",
+ male: 294734,
+ female: 325653,
+ },
+ {
+ age: "60 to 64",
+ male: 254497,
+ female: 285276,
+ },
+ {
+ age: "65 to 69",
+ male: 198714,
+ female: 226714,
+ },
+ {
+ age: "70 to 74",
+ male: 135107,
+ female: 164091,
+ },
+ {
+ age: "75 to 79",
+ male: 88135,
+ female: 115830,
+ },
+ {
+ age: "80 to 84",
+ male: 53792,
+ female: 84961,
+ },
+ {
+ age: "85 and Older",
+ male: 37997,
+ female: 85126,
+ },
+ ],
+ HI: [
+ {
+ age: "0 to 5",
+ male: 46668,
+ female: 44389,
+ },
+ {
+ age: "10 to 14",
+ male: 42590,
+ female: 41289,
+ },
+ {
+ age: "15 to 17",
+ male: 24759,
+ female: 23961,
+ },
+ {
+ age: "18 to 21",
+ male: 39937,
+ female: 32348,
+ },
+ {
+ age: "22 to 24",
+ male: 35270,
+ female: 28495,
+ },
+ {
+ age: "25 to 29",
+ male: 58033,
+ female: 48700,
+ },
+ {
+ age: "30 to 34",
+ male: 51544,
+ female: 47286,
+ },
+ {
+ age: "35 to 39",
+ male: 44144,
+ female: 42208,
+ },
+ {
+ age: "40 to 44",
+ male: 45731,
+ female: 43404,
+ },
+ {
+ age: "45 to 49",
+ male: 44336,
+ female: 44134,
+ },
+ {
+ age: "5 to 9",
+ male: 44115,
+ female: 40426,
+ },
+ {
+ age: "50 to 54",
+ male: 46481,
+ female: 46908,
+ },
+ {
+ age: "55 to 59",
+ male: 45959,
+ female: 47379,
+ },
+ {
+ age: "60 to 64",
+ male: 42420,
+ female: 43735,
+ },
+ {
+ age: "65 to 69",
+ male: 34846,
+ female: 36670,
+ },
+ {
+ age: "70 to 74",
+ male: 22981,
+ female: 25496,
+ },
+ {
+ age: "75 to 79",
+ male: 15219,
+ female: 18755,
+ },
+ {
+ age: "80 to 84",
+ male: 11142,
+ female: 17952,
+ },
+ {
+ age: "85 and Older",
+ male: 13696,
+ female: 22893,
+ },
+ ],
+ IA: [
+ {
+ age: "0 to 5",
+ male: 100400,
+ female: 96170,
+ },
+ {
+ age: "10 to 14",
+ male: 104674,
+ female: 98485,
+ },
+ {
+ age: "15 to 17",
+ male: 62452,
+ female: 59605,
+ },
+ {
+ age: "18 to 21",
+ male: 96966,
+ female: 91782,
+ },
+ {
+ age: "22 to 24",
+ male: 66307,
+ female: 62504,
+ },
+ {
+ age: "25 to 29",
+ male: 98079,
+ female: 93653,
+ },
+ {
+ age: "30 to 34",
+ male: 100924,
+ female: 97248,
+ },
+ {
+ age: "35 to 39",
+ male: 90980,
+ female: 89632,
+ },
+ {
+ age: "40 to 44",
+ male: 92961,
+ female: 90218,
+ },
+ {
+ age: "45 to 49",
+ male: 98877,
+ female: 96654,
+ },
+ {
+ age: "5 to 9",
+ male: 104279,
+ female: 100558,
+ },
+ {
+ age: "50 to 54",
+ male: 109267,
+ female: 110142,
+ },
+ {
+ age: "55 to 59",
+ male: 104021,
+ female: 106042,
+ },
+ {
+ age: "60 to 64",
+ male: 95379,
+ female: 95499,
+ },
+ {
+ age: "65 to 69",
+ male: 68276,
+ female: 73624,
+ },
+ {
+ age: "70 to 74",
+ male: 50414,
+ female: 56973,
+ },
+ {
+ age: "75 to 79",
+ male: 37867,
+ female: 48121,
+ },
+ {
+ age: "80 to 84",
+ male: 27523,
+ female: 39851,
+ },
+ {
+ age: "85 and Older",
+ male: 24949,
+ female: 52170,
+ },
+ ],
+ ID: [
+ {
+ age: "0 to 5",
+ male: 58355,
+ female: 56478,
+ },
+ {
+ age: "10 to 14",
+ male: 62528,
+ female: 59881,
+ },
+ {
+ age: "15 to 17",
+ male: 36373,
+ female: 33687,
+ },
+ {
+ age: "18 to 21",
+ male: 45752,
+ female: 45590,
+ },
+ {
+ age: "22 to 24",
+ male: 34595,
+ female: 30216,
+ },
+ {
+ age: "25 to 29",
+ male: 53998,
+ female: 52077,
+ },
+ {
+ age: "30 to 34",
+ male: 54217,
+ female: 52091,
+ },
+ {
+ age: "35 to 39",
+ male: 51247,
+ female: 47801,
+ },
+ {
+ age: "40 to 44",
+ male: 49113,
+ female: 49853,
+ },
+ {
+ age: "45 to 49",
+ male: 48392,
+ female: 48288,
+ },
+ {
+ age: "5 to 9",
+ male: 63107,
+ female: 59237,
+ },
+ {
+ age: "50 to 54",
+ male: 51805,
+ female: 52984,
+ },
+ {
+ age: "55 to 59",
+ male: 49226,
+ female: 51868,
+ },
+ {
+ age: "60 to 64",
+ male: 47343,
+ female: 47631,
+ },
+ {
+ age: "65 to 69",
+ male: 38436,
+ female: 38133,
+ },
+ {
+ age: "70 to 74",
+ male: 26243,
+ female: 28577,
+ },
+ {
+ age: "75 to 79",
+ male: 18404,
+ female: 20325,
+ },
+ {
+ age: "80 to 84",
+ male: 11653,
+ female: 15313,
+ },
+ {
+ age: "85 and Older",
+ male: 9677,
+ female: 16053,
+ },
+ ],
+ IL: [
+ {
+ age: "0 to 5",
+ male: 408295,
+ female: 392900,
+ },
+ {
+ age: "10 to 14",
+ male: 437688,
+ female: 419077,
+ },
+ {
+ age: "15 to 17",
+ male: 269202,
+ female: 257213,
+ },
+ {
+ age: "18 to 21",
+ male: 369219,
+ female: 353570,
+ },
+ {
+ age: "22 to 24",
+ male: 268501,
+ female: 258559,
+ },
+ {
+ age: "25 to 29",
+ male: 448001,
+ female: 442418,
+ },
+ {
+ age: "30 to 34",
+ male: 445416,
+ female: 445729,
+ },
+ {
+ age: "35 to 39",
+ male: 416265,
+ female: 418999,
+ },
+ {
+ age: "40 to 44",
+ male: 425825,
+ female: 427573,
+ },
+ {
+ age: "45 to 49",
+ male: 433177,
+ female: 441116,
+ },
+ {
+ age: "5 to 9",
+ male: 427121,
+ female: 412238,
+ },
+ {
+ age: "50 to 54",
+ male: 454039,
+ female: 470982,
+ },
+ {
+ age: "55 to 59",
+ male: 414948,
+ female: 442280,
+ },
+ {
+ age: "60 to 64",
+ male: 354782,
+ female: 380640,
+ },
+ {
+ age: "65 to 69",
+ male: 259363,
+ female: 292899,
+ },
+ {
+ age: "70 to 74",
+ male: 184622,
+ female: 223905,
+ },
+ {
+ age: "75 to 79",
+ male: 129016,
+ female: 171743,
+ },
+ {
+ age: "80 to 84",
+ male: 91973,
+ female: 139204,
+ },
+ {
+ age: "85 and Older",
+ male: 79446,
+ female: 165817,
+ },
+ ],
+ IN: [
+ {
+ age: "0 to 5",
+ male: 215697,
+ female: 205242,
+ },
+ {
+ age: "10 to 14",
+ male: 229911,
+ female: 221563,
+ },
+ {
+ age: "15 to 17",
+ male: 139494,
+ female: 132879,
+ },
+ {
+ age: "18 to 21",
+ male: 198763,
+ female: 194206,
+ },
+ {
+ age: "22 to 24",
+ male: 140805,
+ female: 131947,
+ },
+ {
+ age: "25 to 29",
+ male: 210315,
+ female: 208593,
+ },
+ {
+ age: "30 to 34",
+ male: 211656,
+ female: 210103,
+ },
+ {
+ age: "35 to 39",
+ male: 201979,
+ female: 200693,
+ },
+ {
+ age: "40 to 44",
+ male: 212114,
+ female: 212653,
+ },
+ {
+ age: "45 to 49",
+ male: 216446,
+ female: 219033,
+ },
+ {
+ age: "5 to 9",
+ male: 226901,
+ female: 214964,
+ },
+ {
+ age: "50 to 54",
+ male: 232241,
+ female: 237844,
+ },
+ {
+ age: "55 to 59",
+ male: 217033,
+ female: 228674,
+ },
+ {
+ age: "60 to 64",
+ male: 186412,
+ female: 197353,
+ },
+ {
+ age: "65 to 69",
+ male: 140336,
+ female: 156256,
+ },
+ {
+ age: "70 to 74",
+ male: 99402,
+ female: 116834,
+ },
+ {
+ age: "75 to 79",
+ male: 68758,
+ female: 88794,
+ },
+ {
+ age: "80 to 84",
+ male: 47628,
+ female: 72061,
+ },
+ {
+ age: "85 and Older",
+ male: 39372,
+ female: 83690,
+ },
+ ],
+ KS: [
+ {
+ age: "0 to 5",
+ male: 102716,
+ female: 98004,
+ },
+ {
+ age: "10 to 14",
+ male: 102335,
+ female: 99132,
+ },
+ {
+ age: "15 to 17",
+ male: 60870,
+ female: 57957,
+ },
+ {
+ age: "18 to 21",
+ male: 90593,
+ female: 83299,
+ },
+ {
+ age: "22 to 24",
+ male: 66512,
+ female: 59368,
+ },
+ {
+ age: "25 to 29",
+ male: 99384,
+ female: 93840,
+ },
+ {
+ age: "30 to 34",
+ male: 98020,
+ female: 94075,
+ },
+ {
+ age: "35 to 39",
+ male: 87763,
+ female: 85422,
+ },
+ {
+ age: "40 to 44",
+ male: 87647,
+ female: 84970,
+ },
+ {
+ age: "45 to 49",
+ male: 89233,
+ female: 88877,
+ },
+ {
+ age: "5 to 9",
+ male: 103861,
+ female: 98642,
+ },
+ {
+ age: "50 to 54",
+ male: 98398,
+ female: 101197,
+ },
+ {
+ age: "55 to 59",
+ male: 95861,
+ female: 96152,
+ },
+ {
+ age: "60 to 64",
+ male: 79440,
+ female: 85124,
+ },
+ {
+ age: "65 to 69",
+ male: 60035,
+ female: 64369,
+ },
+ {
+ age: "70 to 74",
+ male: 42434,
+ female: 49221,
+ },
+ {
+ age: "75 to 79",
+ male: 30967,
+ female: 39425,
+ },
+ {
+ age: "80 to 84",
+ male: 23026,
+ female: 33863,
+ },
+ {
+ age: "85 and Older",
+ male: 20767,
+ female: 40188,
+ },
+ ],
+ KY: [
+ {
+ age: "0 to 5",
+ male: 142062,
+ female: 134389,
+ },
+ {
+ age: "10 to 14",
+ male: 147586,
+ female: 138629,
+ },
+ {
+ age: "15 to 17",
+ male: 87696,
+ female: 83139,
+ },
+ {
+ age: "18 to 21",
+ male: 128249,
+ female: 121099,
+ },
+ {
+ age: "22 to 24",
+ male: 90794,
+ female: 85930,
+ },
+ {
+ age: "25 to 29",
+ male: 140811,
+ female: 139855,
+ },
+ {
+ age: "30 to 34",
+ male: 142732,
+ female: 142551,
+ },
+ {
+ age: "35 to 39",
+ male: 137211,
+ female: 136524,
+ },
+ {
+ age: "40 to 44",
+ male: 145358,
+ female: 145251,
+ },
+ {
+ age: "45 to 49",
+ male: 148883,
+ female: 150922,
+ },
+ {
+ age: "5 to 9",
+ male: 143532,
+ female: 139032,
+ },
+ {
+ age: "50 to 54",
+ male: 156890,
+ female: 163054,
+ },
+ {
+ age: "55 to 59",
+ male: 147006,
+ female: 156302,
+ },
+ {
+ age: "60 to 64",
+ male: 129457,
+ female: 139434,
+ },
+ {
+ age: "65 to 69",
+ male: 100883,
+ female: 112696,
+ },
+ {
+ age: "70 to 74",
+ male: 71867,
+ female: 83665,
+ },
+ {
+ age: "75 to 79",
+ male: 47828,
+ female: 62775,
+ },
+ {
+ age: "80 to 84",
+ male: 31477,
+ female: 46386,
+ },
+ {
+ age: "85 and Older",
+ male: 23886,
+ female: 51512,
+ },
+ ],
+ LA: [
+ {
+ age: "0 to 5",
+ male: 157642,
+ female: 152324,
+ },
+ {
+ age: "10 to 14",
+ male: 157781,
+ female: 149752,
+ },
+ {
+ age: "15 to 17",
+ male: 93357,
+ female: 90227,
+ },
+ {
+ age: "18 to 21",
+ male: 136496,
+ female: 131202,
+ },
+ {
+ age: "22 to 24",
+ male: 101438,
+ female: 101480,
+ },
+ {
+ age: "25 to 29",
+ male: 167414,
+ female: 168886,
+ },
+ {
+ age: "30 to 34",
+ male: 160094,
+ female: 161424,
+ },
+ {
+ age: "35 to 39",
+ male: 142182,
+ female: 141813,
+ },
+ {
+ age: "40 to 44",
+ male: 138717,
+ female: 144789,
+ },
+ {
+ age: "45 to 49",
+ male: 145906,
+ female: 152340,
+ },
+ {
+ age: "5 to 9",
+ male: 159193,
+ female: 154320,
+ },
+ {
+ age: "50 to 54",
+ male: 157743,
+ female: 167125,
+ },
+ {
+ age: "55 to 59",
+ male: 149001,
+ female: 161295,
+ },
+ {
+ age: "60 to 64",
+ male: 129265,
+ female: 139378,
+ },
+ {
+ age: "65 to 69",
+ male: 98404,
+ female: 106844,
+ },
+ {
+ age: "70 to 74",
+ male: 65845,
+ female: 83779,
+ },
+ {
+ age: "75 to 79",
+ male: 47365,
+ female: 60745,
+ },
+ {
+ age: "80 to 84",
+ male: 29452,
+ female: 48839,
+ },
+ {
+ age: "85 and Older",
+ male: 23861,
+ female: 47535,
+ },
+ ],
+ MA: [
+ {
+ age: "0 to 5",
+ male: 187066,
+ female: 178775,
+ },
+ {
+ age: "10 to 14",
+ male: 205530,
+ female: 195312,
+ },
+ {
+ age: "15 to 17",
+ male: 129433,
+ female: 123212,
+ },
+ {
+ age: "18 to 21",
+ male: 207432,
+ female: 213820,
+ },
+ {
+ age: "22 to 24",
+ male: 140356,
+ female: 135839,
+ },
+ {
+ age: "25 to 29",
+ male: 235172,
+ female: 237653,
+ },
+ {
+ age: "30 to 34",
+ male: 216220,
+ female: 221692,
+ },
+ {
+ age: "35 to 39",
+ male: 196293,
+ female: 202730,
+ },
+ {
+ age: "40 to 44",
+ male: 218111,
+ female: 231277,
+ },
+ {
+ age: "45 to 49",
+ male: 237629,
+ female: 249926,
+ },
+ {
+ age: "5 to 9",
+ male: 191958,
+ female: 186343,
+ },
+ {
+ age: "50 to 54",
+ male: 247973,
+ female: 260886,
+ },
+ {
+ age: "55 to 59",
+ male: 227238,
+ female: 241029,
+ },
+ {
+ age: "60 to 64",
+ male: 189981,
+ female: 211282,
+ },
+ {
+ age: "65 to 69",
+ male: 146129,
+ female: 164268,
+ },
+ {
+ age: "70 to 74",
+ male: 100745,
+ female: 123577,
+ },
+ {
+ age: "75 to 79",
+ male: 70828,
+ female: 92141,
+ },
+ {
+ age: "80 to 84",
+ male: 52074,
+ female: 81603,
+ },
+ {
+ age: "85 and Older",
+ male: 49482,
+ female: 104571,
+ },
+ ],
+ MD: [
+ {
+ age: "0 to 5",
+ male: 187617,
+ female: 180105,
+ },
+ {
+ age: "10 to 14",
+ male: 191787,
+ female: 185380,
+ },
+ {
+ age: "15 to 17",
+ male: 118027,
+ female: 113549,
+ },
+ {
+ age: "18 to 21",
+ male: 166991,
+ female: 159589,
+ },
+ {
+ age: "22 to 24",
+ male: 120617,
+ female: 116602,
+ },
+ {
+ age: "25 to 29",
+ male: 205555,
+ female: 206944,
+ },
+ {
+ age: "30 to 34",
+ male: 196824,
+ female: 203989,
+ },
+ {
+ age: "35 to 39",
+ male: 179340,
+ female: 193957,
+ },
+ {
+ age: "40 to 44",
+ male: 195388,
+ female: 205570,
+ },
+ {
+ age: "45 to 49",
+ male: 208382,
+ female: 225458,
+ },
+ {
+ age: "5 to 9",
+ male: 189781,
+ female: 182034,
+ },
+ {
+ age: "50 to 54",
+ male: 217574,
+ female: 235604,
+ },
+ {
+ age: "55 to 59",
+ male: 193789,
+ female: 210582,
+ },
+ {
+ age: "60 to 64",
+ male: 161828,
+ female: 186524,
+ },
+ {
+ age: "65 to 69",
+ male: 123204,
+ female: 144193,
+ },
+ {
+ age: "70 to 74",
+ male: 84114,
+ female: 101563,
+ },
+ {
+ age: "75 to 79",
+ male: 56755,
+ female: 75715,
+ },
+ {
+ age: "80 to 84",
+ male: 39615,
+ female: 59728,
+ },
+ {
+ age: "85 and Older",
+ male: 35455,
+ female: 70809,
+ },
+ ],
+ ME: [
+ {
+ age: "0 to 5",
+ male: 33298,
+ female: 32108,
+ },
+ {
+ age: "10 to 14",
+ male: 38254,
+ female: 36846,
+ },
+ {
+ age: "15 to 17",
+ male: 24842,
+ female: 23688,
+ },
+ {
+ age: "18 to 21",
+ male: 35315,
+ female: 33777,
+ },
+ {
+ age: "22 to 24",
+ male: 23007,
+ female: 21971,
+ },
+ {
+ age: "25 to 29",
+ male: 37685,
+ female: 38353,
+ },
+ {
+ age: "30 to 34",
+ male: 36838,
+ female: 37697,
+ },
+ {
+ age: "35 to 39",
+ male: 35988,
+ female: 37686,
+ },
+ {
+ age: "40 to 44",
+ male: 42092,
+ female: 42912,
+ },
+ {
+ age: "45 to 49",
+ male: 47141,
+ female: 49161,
+ },
+ {
+ age: "5 to 9",
+ male: 38066,
+ female: 35151,
+ },
+ {
+ age: "50 to 54",
+ male: 53458,
+ female: 55451,
+ },
+ {
+ age: "55 to 59",
+ male: 51789,
+ female: 55407,
+ },
+ {
+ age: "60 to 64",
+ male: 47171,
+ female: 49840,
+ },
+ {
+ age: "65 to 69",
+ male: 37495,
+ female: 39678,
+ },
+ {
+ age: "70 to 74",
+ male: 26300,
+ female: 28932,
+ },
+ {
+ age: "75 to 79",
+ male: 18197,
+ female: 22047,
+ },
+ {
+ age: "80 to 84",
+ male: 12824,
+ female: 18302,
+ },
+ {
+ age: "85 and Older",
+ male: 10321,
+ female: 20012,
+ },
+ ],
+ MI: [
+ {
+ age: "0 to 5",
+ male: 295157,
+ female: 280629,
+ },
+ {
+ age: "10 to 14",
+ male: 329983,
+ female: 319870,
+ },
+ {
+ age: "15 to 17",
+ male: 210017,
+ female: 199977,
+ },
+ {
+ age: "18 to 21",
+ male: 299937,
+ female: 287188,
+ },
+ {
+ age: "22 to 24",
+ male: 208270,
+ female: 202858,
+ },
+ {
+ age: "25 to 29",
+ male: 303606,
+ female: 298013,
+ },
+ {
+ age: "30 to 34",
+ male: 292780,
+ female: 296303,
+ },
+ {
+ age: "35 to 39",
+ male: 283925,
+ female: 288526,
+ },
+ {
+ age: "40 to 44",
+ male: 314544,
+ female: 319923,
+ },
+ {
+ age: "45 to 49",
+ male: 337524,
+ female: 344097,
+ },
+ {
+ age: "5 to 9",
+ male: 316345,
+ female: 297675,
+ },
+ {
+ age: "50 to 54",
+ male: 366054,
+ female: 378332,
+ },
+ {
+ age: "55 to 59",
+ male: 349590,
+ female: 369347,
+ },
+ {
+ age: "60 to 64",
+ male: 303421,
+ female: 323815,
+ },
+ {
+ age: "65 to 69",
+ male: 230810,
+ female: 252455,
+ },
+ {
+ age: "70 to 74",
+ male: 161676,
+ female: 186453,
+ },
+ {
+ age: "75 to 79",
+ male: 112555,
+ female: 141554,
+ },
+ {
+ age: "80 to 84",
+ male: 78669,
+ female: 116914,
+ },
+ {
+ age: "85 and Older",
+ male: 67110,
+ female: 134669,
+ },
+ ],
+ MN: [
+ {
+ age: "0 to 5",
+ male: 178616,
+ female: 170645,
+ },
+ {
+ age: "10 to 14",
+ male: 180951,
+ female: 174374,
+ },
+ {
+ age: "15 to 17",
+ male: 110001,
+ female: 104197,
+ },
+ {
+ age: "18 to 21",
+ male: 148247,
+ female: 144611,
+ },
+ {
+ age: "22 to 24",
+ male: 108864,
+ female: 103755,
+ },
+ {
+ age: "25 to 29",
+ male: 185766,
+ female: 180698,
+ },
+ {
+ age: "30 to 34",
+ male: 189374,
+ female: 184845,
+ },
+ {
+ age: "35 to 39",
+ male: 166613,
+ female: 160534,
+ },
+ {
+ age: "40 to 44",
+ male: 172583,
+ female: 171011,
+ },
+ {
+ age: "45 to 49",
+ male: 184130,
+ female: 182785,
+ },
+ {
+ age: "5 to 9",
+ male: 185244,
+ female: 176674,
+ },
+ {
+ age: "50 to 54",
+ male: 202427,
+ female: 203327,
+ },
+ {
+ age: "55 to 59",
+ male: 187216,
+ female: 189980,
+ },
+ {
+ age: "60 to 64",
+ male: 157586,
+ female: 160588,
+ },
+ {
+ age: "65 to 69",
+ male: 114903,
+ female: 121985,
+ },
+ {
+ age: "70 to 74",
+ male: 81660,
+ female: 92401,
+ },
+ {
+ age: "75 to 79",
+ male: 57855,
+ female: 72839,
+ },
+ {
+ age: "80 to 84",
+ male: 42192,
+ female: 58545,
+ },
+ {
+ age: "85 and Older",
+ male: 37938,
+ female: 73211,
+ },
+ ],
+ MO: [
+ {
+ age: "0 to 5",
+ male: 192851,
+ female: 183921,
+ },
+ {
+ age: "10 to 14",
+ male: 201273,
+ female: 190020,
+ },
+ {
+ age: "15 to 17",
+ male: 122944,
+ female: 116383,
+ },
+ {
+ age: "18 to 21",
+ male: 175782,
+ female: 169076,
+ },
+ {
+ age: "22 to 24",
+ male: 124584,
+ female: 123027,
+ },
+ {
+ age: "25 to 29",
+ male: 200511,
+ female: 200134,
+ },
+ {
+ age: "30 to 34",
+ male: 197781,
+ female: 198735,
+ },
+ {
+ age: "35 to 39",
+ male: 181485,
+ female: 180002,
+ },
+ {
+ age: "40 to 44",
+ male: 183318,
+ female: 188038,
+ },
+ {
+ age: "45 to 49",
+ male: 194538,
+ female: 199735,
+ },
+ {
+ age: "5 to 9",
+ male: 200091,
+ female: 193196,
+ },
+ {
+ age: "50 to 54",
+ male: 218663,
+ female: 225083,
+ },
+ {
+ age: "55 to 59",
+ male: 199513,
+ female: 216459,
+ },
+ {
+ age: "60 to 64",
+ male: 176036,
+ female: 187668,
+ },
+ {
+ age: "65 to 69",
+ male: 135605,
+ female: 150815,
+ },
+ {
+ age: "70 to 74",
+ male: 99845,
+ female: 117802,
+ },
+ {
+ age: "75 to 79",
+ male: 70734,
+ female: 88769,
+ },
+ {
+ age: "80 to 84",
+ male: 48118,
+ female: 72085,
+ },
+ {
+ age: "85 and Older",
+ male: 40331,
+ female: 80497,
+ },
+ ],
+ MS: [
+ {
+ age: "0 to 5",
+ male: 100654,
+ female: 97079,
+ },
+ {
+ age: "10 to 14",
+ male: 107363,
+ female: 101958,
+ },
+ {
+ age: "15 to 17",
+ male: 62923,
+ female: 60591,
+ },
+ {
+ age: "18 to 21",
+ male: 94460,
+ female: 94304,
+ },
+ {
+ age: "22 to 24",
+ male: 63870,
+ female: 58909,
+ },
+ {
+ age: "25 to 29",
+ male: 96027,
+ female: 98023,
+ },
+ {
+ age: "30 to 34",
+ male: 95533,
+ female: 98837,
+ },
+ {
+ age: "35 to 39",
+ male: 88278,
+ female: 92876,
+ },
+ {
+ age: "40 to 44",
+ male: 93579,
+ female: 97851,
+ },
+ {
+ age: "45 to 49",
+ male: 92103,
+ female: 98871,
+ },
+ {
+ age: "5 to 9",
+ male: 104911,
+ female: 100694,
+ },
+ {
+ age: "50 to 54",
+ male: 98578,
+ female: 106516,
+ },
+ {
+ age: "55 to 59",
+ male: 94835,
+ female: 101616,
+ },
+ {
+ age: "60 to 64",
+ male: 80677,
+ female: 91332,
+ },
+ {
+ age: "65 to 69",
+ male: 64386,
+ female: 72940,
+ },
+ {
+ age: "70 to 74",
+ male: 46712,
+ female: 56013,
+ },
+ {
+ age: "75 to 79",
+ male: 32079,
+ female: 42598,
+ },
+ {
+ age: "80 to 84",
+ male: 19966,
+ female: 32724,
+ },
+ {
+ age: "85 and Older",
+ male: 14789,
+ female: 32626,
+ },
+ ],
+ MT: [
+ {
+ age: "0 to 5",
+ male: 31021,
+ female: 29676,
+ },
+ {
+ age: "10 to 14",
+ male: 30960,
+ female: 29710,
+ },
+ {
+ age: "15 to 17",
+ male: 19558,
+ female: 18061,
+ },
+ {
+ age: "18 to 21",
+ male: 30975,
+ female: 27314,
+ },
+ {
+ age: "22 to 24",
+ male: 21419,
+ female: 20153,
+ },
+ {
+ age: "25 to 29",
+ male: 32300,
+ female: 30805,
+ },
+ {
+ age: "30 to 34",
+ male: 33167,
+ female: 30964,
+ },
+ {
+ age: "35 to 39",
+ male: 29772,
+ female: 28999,
+ },
+ {
+ age: "40 to 44",
+ male: 28538,
+ female: 27311,
+ },
+ {
+ age: "45 to 49",
+ male: 30820,
+ female: 30608,
+ },
+ {
+ age: "5 to 9",
+ male: 33641,
+ female: 31763,
+ },
+ {
+ age: "50 to 54",
+ male: 36761,
+ female: 37476,
+ },
+ {
+ age: "55 to 59",
+ male: 38291,
+ female: 40028,
+ },
+ {
+ age: "60 to 64",
+ male: 35306,
+ female: 35021,
+ },
+ {
+ age: "65 to 69",
+ male: 27786,
+ female: 27047,
+ },
+ {
+ age: "70 to 74",
+ male: 19708,
+ female: 19938,
+ },
+ {
+ age: "75 to 79",
+ male: 13344,
+ female: 14751,
+ },
+ {
+ age: "80 to 84",
+ male: 9435,
+ female: 11392,
+ },
+ {
+ age: "85 and Older",
+ male: 7361,
+ female: 13519,
+ },
+ ],
+ NC: [
+ {
+ age: "0 to 5",
+ male: 311288,
+ female: 299882,
+ },
+ {
+ age: "10 to 14",
+ male: 333622,
+ female: 316123,
+ },
+ {
+ age: "15 to 17",
+ male: 194507,
+ female: 185872,
+ },
+ {
+ age: "18 to 21",
+ male: 299506,
+ female: 275504,
+ },
+ {
+ age: "22 to 24",
+ male: 207910,
+ female: 196277,
+ },
+ {
+ age: "25 to 29",
+ male: 317709,
+ female: 324593,
+ },
+ {
+ age: "30 to 34",
+ male: 311582,
+ female: 323483,
+ },
+ {
+ age: "35 to 39",
+ male: 308195,
+ female: 319405,
+ },
+ {
+ age: "40 to 44",
+ male: 334818,
+ female: 349484,
+ },
+ {
+ age: "45 to 49",
+ male: 331086,
+ female: 345940,
+ },
+ {
+ age: "5 to 9",
+ male: 325977,
+ female: 316564,
+ },
+ {
+ age: "50 to 54",
+ male: 334674,
+ female: 355791,
+ },
+ {
+ age: "55 to 59",
+ male: 308840,
+ female: 341170,
+ },
+ {
+ age: "60 to 64",
+ male: 270508,
+ female: 303831,
+ },
+ {
+ age: "65 to 69",
+ male: 225997,
+ female: 254521,
+ },
+ {
+ age: "70 to 74",
+ male: 154010,
+ female: 186677,
+ },
+ {
+ age: "75 to 79",
+ male: 106165,
+ female: 139937,
+ },
+ {
+ age: "80 to 84",
+ male: 68871,
+ female: 104839,
+ },
+ {
+ age: "85 and Older",
+ male: 50143,
+ female: 110032,
+ },
+ ],
+ ND: [
+ {
+ age: "0 to 5",
+ male: 24524,
+ female: 24340,
+ },
+ {
+ age: "10 to 14",
+ male: 20939,
+ female: 20728,
+ },
+ {
+ age: "15 to 17",
+ male: 13197,
+ female: 12227,
+ },
+ {
+ age: "18 to 21",
+ male: 27439,
+ female: 22447,
+ },
+ {
+ age: "22 to 24",
+ male: 21413,
+ female: 19299,
+ },
+ {
+ age: "25 to 29",
+ male: 29543,
+ female: 24602,
+ },
+ {
+ age: "30 to 34",
+ male: 26425,
+ female: 22798,
+ },
+ {
+ age: "35 to 39",
+ male: 21846,
+ female: 19046,
+ },
+ {
+ age: "40 to 44",
+ male: 20123,
+ female: 19010,
+ },
+ {
+ age: "45 to 49",
+ male: 21386,
+ female: 20572,
+ },
+ {
+ age: "5 to 9",
+ male: 24336,
+ female: 22721,
+ },
+ {
+ age: "50 to 54",
+ male: 25126,
+ female: 24631,
+ },
+ {
+ age: "55 to 59",
+ male: 24412,
+ female: 24022,
+ },
+ {
+ age: "60 to 64",
+ male: 21598,
+ female: 20250,
+ },
+ {
+ age: "65 to 69",
+ male: 14868,
+ female: 14633,
+ },
+ {
+ age: "70 to 74",
+ male: 10729,
+ female: 11878,
+ },
+ {
+ age: "75 to 79",
+ male: 8086,
+ female: 9626,
+ },
+ {
+ age: "80 to 84",
+ male: 6222,
+ female: 9241,
+ },
+ {
+ age: "85 and Older",
+ male: 5751,
+ female: 11606,
+ },
+ ],
+ NE: [
+ {
+ age: "0 to 5",
+ male: 67062,
+ female: 62974,
+ },
+ {
+ age: "10 to 14",
+ male: 64843,
+ female: 62695,
+ },
+ {
+ age: "15 to 17",
+ male: 38679,
+ female: 36116,
+ },
+ {
+ age: "18 to 21",
+ male: 56143,
+ female: 54195,
+ },
+ {
+ age: "22 to 24",
+ male: 40531,
+ female: 38139,
+ },
+ {
+ age: "25 to 29",
+ male: 64277,
+ female: 61028,
+ },
+ {
+ age: "30 to 34",
+ male: 64230,
+ female: 62423,
+ },
+ {
+ age: "35 to 39",
+ male: 57741,
+ female: 55950,
+ },
+ {
+ age: "40 to 44",
+ male: 56139,
+ female: 54518,
+ },
+ {
+ age: "45 to 49",
+ male: 57526,
+ female: 57077,
+ },
+ {
+ age: "5 to 9",
+ male: 68079,
+ female: 64509,
+ },
+ {
+ age: "50 to 54",
+ male: 64444,
+ female: 65106,
+ },
+ {
+ age: "55 to 59",
+ male: 61285,
+ female: 62057,
+ },
+ {
+ age: "60 to 64",
+ male: 52560,
+ female: 54977,
+ },
+ {
+ age: "65 to 69",
+ male: 39372,
+ female: 41007,
+ },
+ {
+ age: "70 to 74",
+ male: 27091,
+ female: 31903,
+ },
+ {
+ age: "75 to 79",
+ male: 20472,
+ female: 26808,
+ },
+ {
+ age: "80 to 84",
+ male: 15625,
+ female: 21401,
+ },
+ {
+ age: "85 and Older",
+ male: 13507,
+ female: 26876,
+ },
+ ],
+ NH: [
+ {
+ age: "0 to 5",
+ male: 33531,
+ female: 32061,
+ },
+ {
+ age: "10 to 14",
+ male: 40472,
+ female: 39574,
+ },
+ {
+ age: "15 to 17",
+ male: 26632,
+ female: 25155,
+ },
+ {
+ age: "18 to 21",
+ male: 39600,
+ female: 39270,
+ },
+ {
+ age: "22 to 24",
+ male: 25067,
+ female: 23439,
+ },
+ {
+ age: "25 to 29",
+ male: 39514,
+ female: 37529,
+ },
+ {
+ age: "30 to 34",
+ male: 37282,
+ female: 37104,
+ },
+ {
+ age: "35 to 39",
+ male: 37177,
+ female: 38432,
+ },
+ {
+ age: "40 to 44",
+ male: 43571,
+ female: 43894,
+ },
+ {
+ age: "45 to 49",
+ male: 50559,
+ female: 51423,
+ },
+ {
+ age: "5 to 9",
+ male: 37873,
+ female: 36382,
+ },
+ {
+ age: "50 to 54",
+ male: 55573,
+ female: 57097,
+ },
+ {
+ age: "55 to 59",
+ male: 50802,
+ female: 52906,
+ },
+ {
+ age: "60 to 64",
+ male: 44934,
+ female: 45384,
+ },
+ {
+ age: "65 to 69",
+ male: 33322,
+ female: 34773,
+ },
+ {
+ age: "70 to 74",
+ male: 22786,
+ female: 25421,
+ },
+ {
+ age: "75 to 79",
+ male: 14988,
+ female: 18865,
+ },
+ {
+ age: "80 to 84",
+ male: 10661,
+ female: 14921,
+ },
+ {
+ age: "85 and Older",
+ male: 9140,
+ female: 17087,
+ },
+ ],
+ NJ: [
+ {
+ age: "0 to 5",
+ male: 272239,
+ female: 261405,
+ },
+ {
+ age: "10 to 14",
+ male: 296798,
+ female: 281395,
+ },
+ {
+ age: "15 to 17",
+ male: 183608,
+ female: 174902,
+ },
+ {
+ age: "18 to 21",
+ male: 236406,
+ female: 219234,
+ },
+ {
+ age: "22 to 24",
+ male: 171414,
+ female: 162551,
+ },
+ {
+ age: "25 to 29",
+ male: 288078,
+ female: 278395,
+ },
+ {
+ age: "30 to 34",
+ male: 286242,
+ female: 288661,
+ },
+ {
+ age: "35 to 39",
+ male: 278323,
+ female: 286407,
+ },
+ {
+ age: "40 to 44",
+ male: 306371,
+ female: 315976,
+ },
+ {
+ age: "45 to 49",
+ male: 324604,
+ female: 340805,
+ },
+ {
+ age: "5 to 9",
+ male: 280348,
+ female: 272618,
+ },
+ {
+ age: "50 to 54",
+ male: 335379,
+ female: 351753,
+ },
+ {
+ age: "55 to 59",
+ male: 297889,
+ female: 316509,
+ },
+ {
+ age: "60 to 64",
+ male: 243909,
+ female: 272971,
+ },
+ {
+ age: "65 to 69",
+ male: 187928,
+ female: 216233,
+ },
+ {
+ age: "70 to 74",
+ male: 130458,
+ female: 162862,
+ },
+ {
+ age: "75 to 79",
+ male: 92629,
+ female: 121544,
+ },
+ {
+ age: "80 to 84",
+ male: 68009,
+ female: 107002,
+ },
+ {
+ age: "85 and Older",
+ male: 62395,
+ female: 130163,
+ },
+ ],
+ NM: [
+ {
+ age: "0 to 5",
+ male: 70556,
+ female: 67433,
+ },
+ {
+ age: "10 to 14",
+ male: 72070,
+ female: 69774,
+ },
+ {
+ age: "15 to 17",
+ male: 42831,
+ female: 41474,
+ },
+ {
+ age: "18 to 21",
+ male: 61671,
+ female: 59289,
+ },
+ {
+ age: "22 to 24",
+ male: 47139,
+ female: 41506,
+ },
+ {
+ age: "25 to 29",
+ male: 73009,
+ female: 67866,
+ },
+ {
+ age: "30 to 34",
+ male: 69394,
+ female: 66383,
+ },
+ {
+ age: "35 to 39",
+ male: 62108,
+ female: 60810,
+ },
+ {
+ age: "40 to 44",
+ male: 61075,
+ female: 61508,
+ },
+ {
+ age: "45 to 49",
+ male: 62327,
+ female: 64988,
+ },
+ {
+ age: "5 to 9",
+ male: 72877,
+ female: 69675,
+ },
+ {
+ age: "50 to 54",
+ male: 69856,
+ female: 73683,
+ },
+ {
+ age: "55 to 59",
+ male: 66381,
+ female: 73952,
+ },
+ {
+ age: "60 to 64",
+ male: 61719,
+ female: 66285,
+ },
+ {
+ age: "65 to 69",
+ male: 48657,
+ female: 54175,
+ },
+ {
+ age: "70 to 74",
+ male: 35942,
+ female: 39668,
+ },
+ {
+ age: "75 to 79",
+ male: 24922,
+ female: 29968,
+ },
+ {
+ age: "80 to 84",
+ male: 16894,
+ female: 21049,
+ },
+ {
+ age: "85 and Older",
+ male: 12986,
+ female: 22217,
+ },
+ ],
+ NV: [
+ {
+ age: "0 to 5",
+ male: 91556,
+ female: 87252,
+ },
+ {
+ age: "10 to 14",
+ male: 92376,
+ female: 90127,
+ },
+ {
+ age: "15 to 17",
+ male: 56635,
+ female: 53976,
+ },
+ {
+ age: "18 to 21",
+ male: 72185,
+ female: 68570,
+ },
+ {
+ age: "22 to 24",
+ male: 57429,
+ female: 54635,
+ },
+ {
+ age: "25 to 29",
+ male: 103079,
+ female: 98260,
+ },
+ {
+ age: "30 to 34",
+ male: 101626,
+ female: 97574,
+ },
+ {
+ age: "35 to 39",
+ male: 95952,
+ female: 91752,
+ },
+ {
+ age: "40 to 44",
+ male: 98405,
+ female: 96018,
+ },
+ {
+ age: "45 to 49",
+ male: 98297,
+ female: 92880,
+ },
+ {
+ age: "5 to 9",
+ male: 97639,
+ female: 92019,
+ },
+ {
+ age: "50 to 54",
+ male: 96647,
+ female: 93838,
+ },
+ {
+ age: "55 to 59",
+ male: 86430,
+ female: 90916,
+ },
+ {
+ age: "60 to 64",
+ male: 79651,
+ female: 82206,
+ },
+ {
+ age: "65 to 69",
+ male: 65973,
+ female: 70582,
+ },
+ {
+ age: "70 to 74",
+ male: 48879,
+ female: 50485,
+ },
+ {
+ age: "75 to 79",
+ male: 31798,
+ female: 33652,
+ },
+ {
+ age: "80 to 84",
+ male: 19722,
+ female: 23399,
+ },
+ {
+ age: "85 and Older",
+ male: 13456,
+ female: 22760,
+ },
+ ],
+ NY: [
+ {
+ age: "0 to 5",
+ male: 601900,
+ female: 574532,
+ },
+ {
+ age: "10 to 14",
+ male: 602877,
+ female: 576846,
+ },
+ {
+ age: "15 to 17",
+ male: 381224,
+ female: 364149,
+ },
+ {
+ age: "18 to 21",
+ male: 579276,
+ female: 563517,
+ },
+ {
+ age: "22 to 24",
+ male: 423461,
+ female: 419351,
+ },
+ {
+ age: "25 to 29",
+ male: 722290,
+ female: 728064,
+ },
+ {
+ age: "30 to 34",
+ male: 668918,
+ female: 684340,
+ },
+ {
+ age: "35 to 39",
+ male: 607495,
+ female: 628810,
+ },
+ {
+ age: "40 to 44",
+ male: 632186,
+ female: 660306,
+ },
+ {
+ age: "45 to 49",
+ male: 674516,
+ female: 708960,
+ },
+ {
+ age: "5 to 9",
+ male: 588624,
+ female: 561622,
+ },
+ {
+ age: "50 to 54",
+ male: 695357,
+ female: 740342,
+ },
+ {
+ age: "55 to 59",
+ male: 633602,
+ female: 685163,
+ },
+ {
+ age: "60 to 64",
+ male: 540901,
+ female: 604110,
+ },
+ {
+ age: "65 to 69",
+ male: 409399,
+ female: 483158,
+ },
+ {
+ age: "70 to 74",
+ male: 287440,
+ female: 357971,
+ },
+ {
+ age: "75 to 79",
+ male: 207495,
+ female: 274626,
+ },
+ {
+ age: "80 to 84",
+ male: 150642,
+ female: 231063,
+ },
+ {
+ age: "85 and Older",
+ male: 134198,
+ female: 284443,
+ },
+ ],
+ OH: [
+ {
+ age: "0 to 5",
+ male: 356598,
+ female: 339398,
+ },
+ {
+ age: "10 to 14",
+ male: 385542,
+ female: 371142,
+ },
+ {
+ age: "15 to 17",
+ male: 239825,
+ female: 228296,
+ },
+ {
+ age: "18 to 21",
+ male: 331115,
+ female: 318019,
+ },
+ {
+ age: "22 to 24",
+ male: 227916,
+ female: 225400,
+ },
+ {
+ age: "25 to 29",
+ male: 369646,
+ female: 367475,
+ },
+ {
+ age: "30 to 34",
+ male: 356757,
+ female: 359375,
+ },
+ {
+ age: "35 to 39",
+ male: 338273,
+ female: 340410,
+ },
+ {
+ age: "40 to 44",
+ male: 368578,
+ female: 375476,
+ },
+ {
+ age: "45 to 49",
+ male: 385388,
+ female: 394341,
+ },
+ {
+ age: "5 to 9",
+ male: 376976,
+ female: 358242,
+ },
+ {
+ age: "50 to 54",
+ male: 420561,
+ female: 438290,
+ },
+ {
+ age: "55 to 59",
+ male: 403067,
+ female: 427137,
+ },
+ {
+ age: "60 to 64",
+ male: 350563,
+ female: 374890,
+ },
+ {
+ age: "65 to 69",
+ male: 262844,
+ female: 292745,
+ },
+ {
+ age: "70 to 74",
+ male: 183419,
+ female: 222552,
+ },
+ {
+ age: "75 to 79",
+ male: 131940,
+ female: 173303,
+ },
+ {
+ age: "80 to 84",
+ male: 93267,
+ female: 140079,
+ },
+ {
+ age: "85 and Older",
+ male: 80618,
+ female: 166514,
+ },
+ ],
+ OK: [
+ {
+ age: "0 to 5",
+ male: 135423,
+ female: 130297,
+ },
+ {
+ age: "10 to 14",
+ male: 133539,
+ female: 128110,
+ },
+ {
+ age: "15 to 17",
+ male: 79207,
+ female: 74080,
+ },
+ {
+ age: "18 to 21",
+ male: 115423,
+ female: 107651,
+ },
+ {
+ age: "22 to 24",
+ male: 85610,
+ female: 80749,
+ },
+ {
+ age: "25 to 29",
+ male: 135217,
+ female: 130966,
+ },
+ {
+ age: "30 to 34",
+ male: 132683,
+ female: 128496,
+ },
+ {
+ age: "35 to 39",
+ male: 118240,
+ female: 116104,
+ },
+ {
+ age: "40 to 44",
+ male: 118534,
+ female: 117501,
+ },
+ {
+ age: "45 to 49",
+ male: 117065,
+ female: 118300,
+ },
+ {
+ age: "5 to 9",
+ male: 137212,
+ female: 130040,
+ },
+ {
+ age: "50 to 54",
+ male: 129964,
+ female: 132941,
+ },
+ {
+ age: "55 to 59",
+ male: 121988,
+ female: 129033,
+ },
+ {
+ age: "60 to 64",
+ male: 105018,
+ female: 113144,
+ },
+ {
+ age: "65 to 69",
+ male: 82818,
+ female: 93914,
+ },
+ {
+ age: "70 to 74",
+ male: 62979,
+ female: 71856,
+ },
+ {
+ age: "75 to 79",
+ male: 43899,
+ female: 54848,
+ },
+ {
+ age: "80 to 84",
+ male: 29237,
+ female: 42044,
+ },
+ {
+ age: "85 and Older",
+ male: 22888,
+ female: 42715,
+ },
+ ],
+ OR: [
+ {
+ age: "0 to 5",
+ male: 118561,
+ female: 112841,
+ },
+ {
+ age: "10 to 14",
+ male: 123223,
+ female: 116373,
+ },
+ {
+ age: "15 to 17",
+ male: 75620,
+ female: 71764,
+ },
+ {
+ age: "18 to 21",
+ male: 106121,
+ female: 103044,
+ },
+ {
+ age: "22 to 24",
+ male: 79106,
+ female: 75639,
+ },
+ {
+ age: "25 to 29",
+ male: 134241,
+ female: 131539,
+ },
+ {
+ age: "30 to 34",
+ male: 137090,
+ female: 135734,
+ },
+ {
+ age: "35 to 39",
+ male: 128812,
+ female: 126071,
+ },
+ {
+ age: "40 to 44",
+ male: 131405,
+ female: 126875,
+ },
+ {
+ age: "45 to 49",
+ male: 125373,
+ female: 125074,
+ },
+ {
+ age: "5 to 9",
+ male: 122920,
+ female: 119049,
+ },
+ {
+ age: "50 to 54",
+ male: 131932,
+ female: 137021,
+ },
+ {
+ age: "55 to 59",
+ male: 130434,
+ female: 141380,
+ },
+ {
+ age: "60 to 64",
+ male: 129063,
+ female: 136051,
+ },
+ {
+ age: "65 to 69",
+ male: 99577,
+ female: 106208,
+ },
+ {
+ age: "70 to 74",
+ male: 69028,
+ female: 77428,
+ },
+ {
+ age: "75 to 79",
+ male: 46055,
+ female: 53682,
+ },
+ {
+ age: "80 to 84",
+ male: 30900,
+ female: 41853,
+ },
+ {
+ age: "85 and Older",
+ male: 28992,
+ female: 53154,
+ },
+ ],
+ PA: [
+ {
+ age: "0 to 5",
+ male: 367290,
+ female: 350371,
+ },
+ {
+ age: "10 to 14",
+ male: 393719,
+ female: 374666,
+ },
+ {
+ age: "15 to 17",
+ male: 250754,
+ female: 236670,
+ },
+ {
+ age: "18 to 21",
+ male: 378940,
+ female: 369819,
+ },
+ {
+ age: "22 to 24",
+ male: 251063,
+ female: 243391,
+ },
+ {
+ age: "25 to 29",
+ male: 420247,
+ female: 410193,
+ },
+ {
+ age: "30 to 34",
+ male: 391190,
+ female: 387225,
+ },
+ {
+ age: "35 to 39",
+ male: 365742,
+ female: 365646,
+ },
+ {
+ age: "40 to 44",
+ male: 399152,
+ female: 405848,
+ },
+ {
+ age: "45 to 49",
+ male: 435250,
+ female: 446328,
+ },
+ {
+ age: "5 to 9",
+ male: 381910,
+ female: 366854,
+ },
+ {
+ age: "50 to 54",
+ male: 472070,
+ female: 489057,
+ },
+ {
+ age: "55 to 59",
+ male: 456215,
+ female: 475044,
+ },
+ {
+ age: "60 to 64",
+ male: 390595,
+ female: 419924,
+ },
+ {
+ age: "65 to 69",
+ male: 301610,
+ female: 335127,
+ },
+ {
+ age: "70 to 74",
+ male: 212200,
+ female: 256188,
+ },
+ {
+ age: "75 to 79",
+ male: 156335,
+ female: 205974,
+ },
+ {
+ age: "80 to 84",
+ male: 117050,
+ female: 178358,
+ },
+ {
+ age: "85 and Older",
+ male: 104012,
+ female: 217532,
+ },
+ ],
+ RI: [
+ {
+ age: "0 to 5",
+ male: 28289,
+ female: 26941,
+ },
+ {
+ age: "10 to 14",
+ male: 31383,
+ female: 30724,
+ },
+ {
+ age: "15 to 17",
+ male: 20093,
+ female: 19249,
+ },
+ {
+ age: "18 to 21",
+ male: 35376,
+ female: 37870,
+ },
+ {
+ age: "22 to 24",
+ male: 23397,
+ female: 21358,
+ },
+ {
+ age: "25 to 29",
+ male: 35958,
+ female: 34710,
+ },
+ {
+ age: "30 to 34",
+ male: 32410,
+ female: 32567,
+ },
+ {
+ age: "35 to 39",
+ male: 30325,
+ female: 31145,
+ },
+ {
+ age: "40 to 44",
+ male: 32542,
+ female: 34087,
+ },
+ {
+ age: "45 to 49",
+ male: 36151,
+ female: 38462,
+ },
+ {
+ age: "5 to 9",
+ male: 30462,
+ female: 27878,
+ },
+ {
+ age: "50 to 54",
+ male: 38419,
+ female: 41642,
+ },
+ {
+ age: "55 to 59",
+ male: 36706,
+ female: 39127,
+ },
+ {
+ age: "60 to 64",
+ male: 30349,
+ female: 33752,
+ },
+ {
+ age: "65 to 69",
+ male: 23462,
+ female: 26311,
+ },
+ {
+ age: "70 to 74",
+ male: 16385,
+ female: 19335,
+ },
+ {
+ age: "75 to 79",
+ male: 10978,
+ female: 14833,
+ },
+ {
+ age: "80 to 84",
+ male: 9224,
+ female: 13439,
+ },
+ {
+ age: "85 and Older",
+ male: 8479,
+ female: 19843,
+ },
+ ],
+ SC: [
+ {
+ age: "0 to 5",
+ male: 148363,
+ female: 144218,
+ },
+ {
+ age: "10 to 14",
+ male: 153051,
+ female: 148064,
+ },
+ {
+ age: "15 to 17",
+ male: 92781,
+ female: 88090,
+ },
+ {
+ age: "18 to 21",
+ male: 150464,
+ female: 136857,
+ },
+ {
+ age: "22 to 24",
+ male: 99237,
+ female: 99178,
+ },
+ {
+ age: "25 to 29",
+ male: 156273,
+ female: 156982,
+ },
+ {
+ age: "30 to 34",
+ male: 148237,
+ female: 153197,
+ },
+ {
+ age: "35 to 39",
+ male: 139949,
+ female: 146281,
+ },
+ {
+ age: "40 to 44",
+ male: 151524,
+ female: 157192,
+ },
+ {
+ age: "45 to 49",
+ male: 153110,
+ female: 163562,
+ },
+ {
+ age: "5 to 9",
+ male: 156323,
+ female: 150943,
+ },
+ {
+ age: "50 to 54",
+ male: 161003,
+ female: 173752,
+ },
+ {
+ age: "55 to 59",
+ male: 150770,
+ female: 169238,
+ },
+ {
+ age: "60 to 64",
+ male: 141268,
+ female: 160890,
+ },
+ {
+ age: "65 to 69",
+ male: 120618,
+ female: 137154,
+ },
+ {
+ age: "70 to 74",
+ male: 85197,
+ female: 97581,
+ },
+ {
+ age: "75 to 79",
+ male: 55278,
+ female: 69067,
+ },
+ {
+ age: "80 to 84",
+ male: 33979,
+ female: 50585,
+ },
+ {
+ age: "85 and Older",
+ male: 24984,
+ female: 52336,
+ },
+ ],
+ SD: [
+ {
+ age: "0 to 5",
+ male: 30615,
+ female: 29377,
+ },
+ {
+ age: "10 to 14",
+ male: 28360,
+ female: 26492,
+ },
+ {
+ age: "15 to 17",
+ male: 17193,
+ female: 16250,
+ },
+ {
+ age: "18 to 21",
+ male: 25514,
+ female: 24234,
+ },
+ {
+ age: "22 to 24",
+ male: 18413,
+ female: 16324,
+ },
+ {
+ age: "25 to 29",
+ male: 29131,
+ female: 26757,
+ },
+ {
+ age: "30 to 34",
+ male: 28133,
+ female: 26710,
+ },
+ {
+ age: "35 to 39",
+ male: 24971,
+ female: 23347,
+ },
+ {
+ age: "40 to 44",
+ male: 24234,
+ female: 23231,
+ },
+ {
+ age: "45 to 49",
+ male: 25555,
+ female: 24867,
+ },
+ {
+ age: "5 to 9",
+ male: 30399,
+ female: 28980,
+ },
+ {
+ age: "50 to 54",
+ male: 29754,
+ female: 29530,
+ },
+ {
+ age: "55 to 59",
+ male: 29075,
+ female: 28968,
+ },
+ {
+ age: "60 to 64",
+ male: 25633,
+ female: 25530,
+ },
+ {
+ age: "65 to 69",
+ male: 19320,
+ female: 18489,
+ },
+ {
+ age: "70 to 74",
+ male: 12964,
+ female: 14702,
+ },
+ {
+ age: "75 to 79",
+ male: 9646,
+ female: 12077,
+ },
+ {
+ age: "80 to 84",
+ male: 7669,
+ female: 10566,
+ },
+ {
+ age: "85 and Older",
+ male: 6898,
+ female: 13282,
+ },
+ ],
+ TN: [
+ {
+ age: "0 to 5",
+ male: 204457,
+ female: 196347,
+ },
+ {
+ age: "10 to 14",
+ male: 217061,
+ female: 206350,
+ },
+ {
+ age: "15 to 17",
+ male: 129690,
+ female: 124122,
+ },
+ {
+ age: "18 to 21",
+ male: 183910,
+ female: 175377,
+ },
+ {
+ age: "22 to 24",
+ male: 132501,
+ female: 134905,
+ },
+ {
+ age: "25 to 29",
+ male: 210618,
+ female: 214944,
+ },
+ {
+ age: "30 to 34",
+ male: 209305,
+ female: 214151,
+ },
+ {
+ age: "35 to 39",
+ male: 200270,
+ female: 207520,
+ },
+ {
+ age: "40 to 44",
+ male: 216542,
+ female: 219178,
+ },
+ {
+ age: "45 to 49",
+ male: 217059,
+ female: 224473,
+ },
+ {
+ age: "5 to 9",
+ male: 210365,
+ female: 204494,
+ },
+ {
+ age: "50 to 54",
+ male: 223663,
+ female: 238025,
+ },
+ {
+ age: "55 to 59",
+ male: 210228,
+ female: 229974,
+ },
+ {
+ age: "60 to 64",
+ male: 186739,
+ female: 207022,
+ },
+ {
+ age: "65 to 69",
+ male: 153737,
+ female: 171357,
+ },
+ {
+ age: "70 to 74",
+ male: 108743,
+ female: 125362,
+ },
+ {
+ age: "75 to 79",
+ male: 72813,
+ female: 94077,
+ },
+ {
+ age: "80 to 84",
+ male: 46556,
+ female: 71212,
+ },
+ {
+ age: "85 and Older",
+ male: 33499,
+ female: 72969,
+ },
+ ],
+ TX: [
+ {
+ age: "0 to 5",
+ male: 996070,
+ female: 955235,
+ },
+ {
+ age: "10 to 14",
+ male: 998209,
+ female: 959762,
+ },
+ {
+ age: "15 to 17",
+ male: 587712,
+ female: 561008,
+ },
+ {
+ age: "18 to 21",
+ male: 818590,
+ female: 756451,
+ },
+ {
+ age: "22 to 24",
+ male: 582570,
+ female: 556850,
+ },
+ {
+ age: "25 to 29",
+ male: 982673,
+ female: 948564,
+ },
+ {
+ age: "30 to 34",
+ male: 961403,
+ female: 947710,
+ },
+ {
+ age: "35 to 39",
+ male: 897542,
+ female: 898907,
+ },
+ {
+ age: "40 to 44",
+ male: 897922,
+ female: 908091,
+ },
+ {
+ age: "45 to 49",
+ male: 857621,
+ female: 865642,
+ },
+ {
+ age: "5 to 9",
+ male: 1021123,
+ female: 979891,
+ },
+ {
+ age: "50 to 54",
+ male: 861849,
+ female: 880746,
+ },
+ {
+ age: "55 to 59",
+ male: 761410,
+ female: 799294,
+ },
+ {
+ age: "60 to 64",
+ male: 635465,
+ female: 692072,
+ },
+ {
+ age: "65 to 69",
+ male: 483436,
+ female: 533368,
+ },
+ {
+ age: "70 to 74",
+ male: 330457,
+ female: 389996,
+ },
+ {
+ age: "75 to 79",
+ male: 228243,
+ female: 289446,
+ },
+ {
+ age: "80 to 84",
+ male: 153391,
+ female: 219572,
+ },
+ {
+ age: "85 and Older",
+ male: 115630,
+ female: 224693,
+ },
+ ],
+ UT: [
+ {
+ age: "0 to 5",
+ male: 130873,
+ female: 124371,
+ },
+ {
+ age: "10 to 14",
+ male: 128076,
+ female: 120364,
+ },
+ {
+ age: "15 to 17",
+ male: 70832,
+ female: 66798,
+ },
+ {
+ age: "18 to 21",
+ male: 87877,
+ female: 92950,
+ },
+ {
+ age: "22 to 24",
+ male: 79431,
+ female: 71405,
+ },
+ {
+ age: "25 to 29",
+ male: 109125,
+ female: 106576,
+ },
+ {
+ age: "30 to 34",
+ male: 115198,
+ female: 110546,
+ },
+ {
+ age: "35 to 39",
+ male: 102771,
+ female: 99664,
+ },
+ {
+ age: "40 to 44",
+ male: 88181,
+ female: 83229,
+ },
+ {
+ age: "45 to 49",
+ male: 76552,
+ female: 74993,
+ },
+ {
+ age: "5 to 9",
+ male: 131094,
+ female: 125110,
+ },
+ {
+ age: "50 to 54",
+ male: 76913,
+ female: 78113,
+ },
+ {
+ age: "55 to 59",
+ male: 71490,
+ female: 73221,
+ },
+ {
+ age: "60 to 64",
+ male: 60996,
+ female: 63835,
+ },
+ {
+ age: "65 to 69",
+ male: 45491,
+ female: 49273,
+ },
+ {
+ age: "70 to 74",
+ male: 32191,
+ female: 35931,
+ },
+ {
+ age: "75 to 79",
+ male: 23112,
+ female: 27761,
+ },
+ {
+ age: "80 to 84",
+ male: 15827,
+ female: 20155,
+ },
+ {
+ age: "85 and Older",
+ male: 13199,
+ female: 19855,
+ },
+ ],
+ VA: [
+ {
+ age: "0 to 5",
+ male: 262278,
+ female: 250000,
+ },
+ {
+ age: "10 to 14",
+ male: 266247,
+ female: 251516,
+ },
+ {
+ age: "15 to 17",
+ male: 160174,
+ female: 153149,
+ },
+ {
+ age: "18 to 21",
+ male: 248284,
+ female: 233796,
+ },
+ {
+ age: "22 to 24",
+ male: 175833,
+ female: 167676,
+ },
+ {
+ age: "25 to 29",
+ male: 296682,
+ female: 287052,
+ },
+ {
+ age: "30 to 34",
+ male: 286536,
+ female: 283804,
+ },
+ {
+ age: "35 to 39",
+ male: 264490,
+ female: 265951,
+ },
+ {
+ age: "40 to 44",
+ male: 278474,
+ female: 286095,
+ },
+ {
+ age: "45 to 49",
+ male: 286793,
+ female: 297558,
+ },
+ {
+ age: "5 to 9",
+ male: 264413,
+ female: 256891,
+ },
+ {
+ age: "50 to 54",
+ male: 296096,
+ female: 309898,
+ },
+ {
+ age: "55 to 59",
+ male: 262954,
+ female: 283219,
+ },
+ {
+ age: "60 to 64",
+ male: 228721,
+ female: 250389,
+ },
+ {
+ age: "65 to 69",
+ male: 178498,
+ female: 197033,
+ },
+ {
+ age: "70 to 74",
+ male: 123597,
+ female: 146376,
+ },
+ {
+ age: "75 to 79",
+ male: 82281,
+ female: 103044,
+ },
+ {
+ age: "80 to 84",
+ male: 55037,
+ female: 80081,
+ },
+ {
+ age: "85 and Older",
+ male: 43560,
+ female: 92154,
+ },
+ ],
+ VT: [
+ {
+ age: "0 to 5",
+ male: 15766,
+ female: 14629,
+ },
+ {
+ age: "10 to 14",
+ male: 18674,
+ female: 17317,
+ },
+ {
+ age: "15 to 17",
+ male: 11909,
+ female: 11565,
+ },
+ {
+ age: "18 to 21",
+ male: 21686,
+ female: 20502,
+ },
+ {
+ age: "22 to 24",
+ male: 12648,
+ female: 11840,
+ },
+ {
+ age: "25 to 29",
+ male: 18005,
+ female: 17548,
+ },
+ {
+ age: "30 to 34",
+ male: 17565,
+ female: 18161,
+ },
+ {
+ age: "35 to 39",
+ male: 16856,
+ female: 17454,
+ },
+ {
+ age: "40 to 44",
+ male: 19431,
+ female: 19600,
+ },
+ {
+ age: "45 to 49",
+ male: 21315,
+ female: 22377,
+ },
+ {
+ age: "5 to 9",
+ male: 17073,
+ female: 16338,
+ },
+ {
+ age: "50 to 54",
+ male: 24629,
+ female: 26080,
+ },
+ {
+ age: "55 to 59",
+ male: 24925,
+ female: 25588,
+ },
+ {
+ age: "60 to 64",
+ male: 21769,
+ female: 23081,
+ },
+ {
+ age: "65 to 69",
+ male: 16842,
+ female: 17925,
+ },
+ {
+ age: "70 to 74",
+ male: 11855,
+ female: 12331,
+ },
+ {
+ age: "75 to 79",
+ male: 7639,
+ female: 9192,
+ },
+ {
+ age: "80 to 84",
+ male: 5291,
+ female: 8001,
+ },
+ {
+ age: "85 and Older",
+ male: 4695,
+ female: 8502,
+ },
+ ],
+ WA: [
+ {
+ age: "0 to 5",
+ male: 228403,
+ female: 217400,
+ },
+ {
+ age: "10 to 14",
+ male: 224142,
+ female: 217269,
+ },
+ {
+ age: "15 to 17",
+ male: 136967,
+ female: 130193,
+ },
+ {
+ age: "18 to 21",
+ male: 195001,
+ female: 179996,
+ },
+ {
+ age: "22 to 24",
+ male: 151577,
+ female: 140876,
+ },
+ {
+ age: "25 to 29",
+ male: 260873,
+ female: 244497,
+ },
+ {
+ age: "30 to 34",
+ male: 252612,
+ female: 243147,
+ },
+ {
+ age: "35 to 39",
+ male: 230325,
+ female: 223596,
+ },
+ {
+ age: "40 to 44",
+ male: 234066,
+ female: 228073,
+ },
+ {
+ age: "45 to 49",
+ male: 233107,
+ female: 230232,
+ },
+ {
+ age: "5 to 9",
+ male: 227824,
+ female: 214378,
+ },
+ {
+ age: "50 to 54",
+ male: 245685,
+ female: 247691,
+ },
+ {
+ age: "55 to 59",
+ male: 231612,
+ female: 241813,
+ },
+ {
+ age: "60 to 64",
+ male: 206233,
+ female: 219560,
+ },
+ {
+ age: "65 to 69",
+ male: 158697,
+ female: 170678,
+ },
+ {
+ age: "70 to 74",
+ male: 107931,
+ female: 118093,
+ },
+ {
+ age: "75 to 79",
+ male: 70497,
+ female: 83476,
+ },
+ {
+ age: "80 to 84",
+ male: 48802,
+ female: 66167,
+ },
+ {
+ age: "85 and Older",
+ male: 43371,
+ female: 80604,
+ },
+ ],
+ WI: [
+ {
+ age: "0 to 5",
+ male: 176217,
+ female: 168178,
+ },
+ {
+ age: "10 to 14",
+ male: 191911,
+ female: 180587,
+ },
+ {
+ age: "15 to 17",
+ male: 115730,
+ female: 110660,
+ },
+ {
+ age: "18 to 21",
+ male: 167063,
+ female: 161358,
+ },
+ {
+ age: "22 to 24",
+ male: 117861,
+ female: 113393,
+ },
+ {
+ age: "25 to 29",
+ male: 183464,
+ female: 176718,
+ },
+ {
+ age: "30 to 34",
+ male: 187494,
+ female: 181605,
+ },
+ {
+ age: "35 to 39",
+ male: 172689,
+ female: 168116,
+ },
+ {
+ age: "40 to 44",
+ male: 179862,
+ female: 176322,
+ },
+ {
+ age: "45 to 49",
+ male: 198114,
+ female: 197462,
+ },
+ {
+ age: "5 to 9",
+ male: 186006,
+ female: 180034,
+ },
+ {
+ age: "50 to 54",
+ male: 217886,
+ female: 219813,
+ },
+ {
+ age: "55 to 59",
+ male: 204370,
+ female: 206108,
+ },
+ {
+ age: "60 to 64",
+ male: 176161,
+ female: 178738,
+ },
+ {
+ age: "65 to 69",
+ male: 130349,
+ female: 136552,
+ },
+ {
+ age: "70 to 74",
+ male: 90955,
+ female: 103217,
+ },
+ {
+ age: "75 to 79",
+ male: 65738,
+ female: 81341,
+ },
+ {
+ age: "80 to 84",
+ male: 48337,
+ female: 67614,
+ },
+ {
+ age: "85 and Older",
+ male: 41178,
+ female: 82916,
+ },
+ ],
+ WV: [
+ {
+ age: "0 to 5",
+ male: 52472,
+ female: 50287,
+ },
+ {
+ age: "10 to 14",
+ male: 55269,
+ female: 52689,
+ },
+ {
+ age: "15 to 17",
+ male: 34100,
+ female: 32359,
+ },
+ {
+ age: "18 to 21",
+ male: 51801,
+ female: 48967,
+ },
+ {
+ age: "22 to 24",
+ male: 35920,
+ female: 34241,
+ },
+ {
+ age: "25 to 29",
+ male: 54564,
+ female: 52255,
+ },
+ {
+ age: "30 to 34",
+ male: 56430,
+ female: 55121,
+ },
+ {
+ age: "35 to 39",
+ male: 55764,
+ female: 55399,
+ },
+ {
+ age: "40 to 44",
+ male: 60662,
+ female: 59373,
+ },
+ {
+ age: "45 to 49",
+ male: 61771,
+ female: 61257,
+ },
+ {
+ age: "5 to 9",
+ male: 53707,
+ female: 51490,
+ },
+ {
+ age: "50 to 54",
+ male: 66156,
+ female: 68671,
+ },
+ {
+ age: "55 to 59",
+ male: 66936,
+ female: 71680,
+ },
+ {
+ age: "60 to 64",
+ male: 65717,
+ female: 67056,
+ },
+ {
+ age: "65 to 69",
+ male: 51285,
+ female: 54807,
+ },
+ {
+ age: "70 to 74",
+ male: 36504,
+ female: 39946,
+ },
+ {
+ age: "75 to 79",
+ male: 25738,
+ female: 31619,
+ },
+ {
+ age: "80 to 84",
+ male: 16397,
+ female: 24351,
+ },
+ {
+ age: "85 and Older",
+ male: 12438,
+ female: 26221,
+ },
+ ],
+ WY: [
+ {
+ age: "0 to 5",
+ male: 19649,
+ female: 18996,
+ },
+ {
+ age: "10 to 14",
+ male: 20703,
+ female: 17785,
+ },
+ {
+ age: "15 to 17",
+ male: 11500,
+ female: 10383,
+ },
+ {
+ age: "18 to 21",
+ male: 18008,
+ female: 15534,
+ },
+ {
+ age: "22 to 24",
+ male: 12727,
+ female: 11405,
+ },
+ {
+ age: "25 to 29",
+ male: 21459,
+ female: 19350,
+ },
+ {
+ age: "30 to 34",
+ male: 21008,
+ female: 19465,
+ },
+ {
+ age: "35 to 39",
+ male: 18573,
+ female: 17022,
+ },
+ {
+ age: "40 to 44",
+ male: 17553,
+ female: 16402,
+ },
+ {
+ age: "45 to 49",
+ male: 17580,
+ female: 16702,
+ },
+ {
+ age: "5 to 9",
+ male: 19198,
+ female: 19519,
+ },
+ {
+ age: "50 to 54",
+ male: 20337,
+ female: 20958,
+ },
+ {
+ age: "55 to 59",
+ male: 21523,
+ female: 21000,
+ },
+ {
+ age: "60 to 64",
+ male: 19048,
+ female: 18292,
+ },
+ {
+ age: "65 to 69",
+ male: 13999,
+ female: 13130,
+ },
+ {
+ age: "70 to 74",
+ male: 8710,
+ female: 9880,
+ },
+ {
+ age: "75 to 79",
+ male: 6149,
+ female: 6938,
+ },
+ {
+ age: "80 to 84",
+ male: 4442,
+ female: 5560,
+ },
+ {
+ age: "85 and Older",
+ male: 3395,
+ female: 5797,
+ },
+ ],
+ };
+
+ function aggregateData(list) {
+ var maleTotal = 0;
+ var femaleTotal = 0;
+
+ for (var i = 0; i < list.length; i++) {
+ var row = list[i];
+ maleTotal += row.male;
+ femaleTotal += row.female;
+ }
+
+ for (var i = 0; i < list.length; i++) {
+ var row = list[i];
+ row.malePercent =
+ (-1 * Math.round((row.male / maleTotal) * 10000)) / 100;
+ row.femalePercent =
+ Math.round((row.female / femaleTotal) * 10000) / 100;
+ }
+
+ return list;
+ }
+
+ usData = aggregateData(usData);
+
+ // ===========================================================
+ // Root and wrapper container
+ // ===========================================================
+
+ // Create root and chart
+ root = am5.Root.new(element);
+
+ // Set themes
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create wrapper container
+ var container = root.container.children.push(
+ am5.Container.new(root, {
+ layout: root.horizontalLayout,
+ width: am5.p100,
+ height: am5.p100,
+ })
+ );
+
+ // Set up formats
+ root.numberFormatter.setAll({
+ numberFormat: "#.##as",
+ });
+
+ // ===========================================================
+ // XY chart
+ // ===========================================================
+
+ // Create chart
+ var chart = container.children.push(
+ am5xy.XYChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "none",
+ wheelY: "none",
+ layout: root.verticalLayout,
+ width: am5.percent(60),
+ })
+ );
+
+ // Create axes
+ var yAxis1 = chart.yAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "age",
+ renderer: am5xy.AxisRendererY.new(root, {}),
+ })
+ );
+
+ yAxis1.get("renderer").labels.template.setAll({
+ paddingTop: 0,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ yAxis1.get("renderer").grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ yAxis1.data.setAll(usData);
+
+ var yAxis2 = chart.yAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ categoryField: "age",
+ renderer: am5xy.AxisRendererY.new(root, {
+ opposite: true,
+ }),
+ })
+ );
+
+ yAxis2.get("renderer").grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ strokeWidth: 1,
+ strokeOpacity: 1,
+ strokeDasharray: [3],
+ });
+
+ yAxis2.get("renderer").labels.template.setAll({
+ paddingTop: 0,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ yAxis2.data.setAll(usData);
+
+ var xAxis = chart.xAxes.push(
+ am5xy.ValueAxis.new(root, {
+ min: -10,
+ max: 10,
+ numberFormat: "#.s'%'",
+ renderer: am5xy.AxisRendererX.new(root, {
+ minGridDistance: 40,
+ }),
+ })
+ );
+
+ xAxis.get("renderer").labels.template.setAll({
+ paddingTop: 20,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ xAxis.get("renderer").grid.template.setAll({
+ disabled: true,
+ strokeOpacity: 0,
+ });
+
+ // Create series
+ var maleSeries = chart.series.push(
+ am5xy.ColumnSeries.new(root, {
+ name: "Males",
+ xAxis: xAxis,
+ yAxis: yAxis1,
+ valueXField: "malePercent",
+ categoryYField: "age",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ clustered: false,
+ })
+ );
+
+ maleSeries.columns.template.setAll({
+ tooltipText:
+ "Males, age {categoryY}: {male} ({malePercent.formatNumber('#.0s')}%)",
+ tooltipX: am5.p100,
+ cornerRadiusBR: 4,
+ cornerRadiusTR: 4,
+ cornerRadiusBL: 0,
+ cornerRadiusTL: 0,
+ });
+
+ maleSeries.data.setAll(usData);
+
+ var femaleSeries = chart.series.push(
+ am5xy.ColumnSeries.new(root, {
+ name: "Males",
+ xAxis: xAxis,
+ yAxis: yAxis1,
+ valueXField: "femalePercent",
+ categoryYField: "age",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ clustered: false,
+ })
+ );
+
+ femaleSeries.columns.template.setAll({
+ tooltipText:
+ "Males, age {categoryY}: {female} ({femalePercent.formatNumber('#.0s')}%)",
+ tooltipX: am5.p100,
+ cornerRadiusBR: 4,
+ cornerRadiusTR: 4,
+ cornerRadiusBL: 0,
+ cornerRadiusTL: 0,
+ });
+
+ femaleSeries.data.setAll(usData);
+
+ // Add labels
+ var maleLabel = chart.plotContainer.children.push(
+ am5.Label.new(root, {
+ text: "Males",
+ fontSize: 13,
+ fontWeight: "500",
+ y: 5,
+ x: 5,
+ //centerX: am5.p50,
+ fill: maleSeries.get("fill"),
+ })
+ );
+
+ var femaleLabel = chart.plotContainer.children.push(
+ am5.Label.new(root, {
+ text: "Females",
+ fontSize: 13,
+ fontWeight: "500",
+ y: 5,
+ x: am5.p100,
+ centerX: am5.p100,
+ dx: -5,
+ fill: femaleSeries.get("fill"),
+ })
+ );
+
+ // ===========================================================
+ // Map chart
+ // ===========================================================
+
+ // Create chart
+ var map = container.children.push(
+ am5map.MapChart.new(root, {
+ panX: "none",
+ panY: "none",
+ wheelY: "none",
+ projection: am5map.geoAlbersUsa(),
+ width: am5.percent(40),
+ })
+ );
+
+ chart.getTooltip().set("autoTextColor", false);
+
+ // Title
+ var title = map.children.push(
+ am5.Label.new(root, {
+ text: "United States",
+ fontSize: 14,
+ fontWeight: "500",
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-gray-800")
+ ),
+ y: 20,
+ x: am5.p50,
+ centerX: am5.p50,
+ })
+ );
+
+ // Create polygon series
+ var polygonSeries = map.series.push(
+ am5map.MapPolygonSeries.new(root, {
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-gray-300")
+ ),
+ geoJSON: am5geodata_usaLow,
+ })
+ );
+
+ polygonSeries.mapPolygons.template.setAll({
+ tooltipText: "{name}",
+ interactive: true,
+ });
+
+ polygonSeries.mapPolygons.template.states.create("hover", {
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ polygonSeries.mapPolygons.template.states.create("active", {
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ var activePolygon;
+ polygonSeries.mapPolygons.template.events.on(
+ "click",
+ function (ev) {
+ if (activePolygon) {
+ activePolygon.set("active", false);
+ }
+ activePolygon = ev.target;
+ activePolygon.set("active", true);
+ var state = ev.target.dataItem.dataContext.id
+ .split("-")
+ .pop();
+ var data = aggregateData(stateData[state]);
+
+ for (var i = 0; i < data.length; i++) {
+ maleSeries.data.setIndex(i, data[i]);
+ femaleSeries.data.setIndex(i, data[i]);
+ }
+
+ title.set("text", ev.target.dataItem.dataContext.name);
+ }
+ );
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ // Init chart
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget24;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget24.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget25 = (function () {
+ // Private methods
+ var initChart1 = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_25_chart_1");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ innerRadius: am5.percent(40),
+ radius: am5.percent(70),
+ arrangeTooltips: false,
+ })
+ );
+
+ var cursor = chart.set(
+ "cursor",
+ am5radar.RadarCursor.new(root, {
+ behavior: "zoomX",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {
+ minGridDistance: 30,
+ });
+
+ xRenderer.labels.template.setAll({
+ textType: "radial",
+ radius: 10,
+ paddingTop: 0,
+ paddingBottom: 0,
+ centerY: am5.p50,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ xRenderer.grid.template.setAll({
+ location: 0.5,
+ strokeDasharray: [2, 2],
+ stroke: KTUtil.getCssVariableValue("--bs-gray-400"),
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ maxDeviation: 0,
+ categoryField: "name",
+ renderer: xRenderer,
+ })
+ );
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 30,
+ });
+
+ yRenderer.labels.template.setAll({
+ fontWeight: "500",
+ fontSize: 12,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: yRenderer,
+ })
+ );
+
+ yRenderer.grid.template.setAll({
+ strokeDasharray: [2, 2],
+ stroke: KTUtil.getCssVariableValue("--bs-gray-400"),
+ });
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series1 = chart.series.push(
+ am5radar.RadarLineSeries.new(root, {
+ name: "Revenue",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value1",
+ categoryXField: "name",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ })
+ );
+
+ series1.strokes.template.setAll({
+ strokeOpacity: 0,
+ });
+
+ series1.fills.template.setAll({
+ visible: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ fillOpacity: 0.5,
+ });
+
+ var series2 = chart.series.push(
+ am5radar.RadarLineSeries.new(root, {
+ name: "Expense",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value2",
+ categoryXField: "name",
+ stacked: true,
+ tooltip: am5.Tooltip.new(root, {
+ labelText: "Revenue: {value1}\nExpense:{value2}",
+ }),
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ })
+ );
+
+ series2.strokes.template.setAll({
+ strokeOpacity: 0,
+ });
+
+ series2.fills.template.setAll({
+ visible: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ fillOpacity: 0.5,
+ });
+
+ var legend = chart.radarContainer.children.push(
+ am5.Legend.new(root, {
+ width: 150,
+ centerX: am5.p50,
+ centerY: am5.p50,
+ })
+ );
+ legend.data.setAll([series1, series2]);
+
+ legend.labels.template.setAll({
+ fontWeight: "600",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Setting_data
+ var data = [
+ {
+ name: "Openlane",
+ value1: 160.2,
+ value2: 26.9,
+ },
+ {
+ name: "Yearin",
+ value1: 120.1,
+ value2: 50.5,
+ },
+ {
+ name: "Goodsilron",
+ value1: 150.7,
+ value2: 12.3,
+ },
+ {
+ name: "Condax",
+ value1: 69.4,
+ value2: 74.5,
+ },
+ {
+ name: "Opentech",
+ value1: 78.5,
+ value2: 29.7,
+ },
+ {
+ name: "Golddex",
+ value1: 77.6,
+ value2: 102.2,
+ },
+ {
+ name: "Isdom",
+ value1: 69.8,
+ value2: 22.6,
+ },
+ {
+ name: "Plusstrip",
+ value1: 63.6,
+ value2: 45.3,
+ },
+ {
+ name: "Kinnamplus",
+ value1: 59.7,
+ value2: 12.8,
+ },
+ {
+ name: "Zumgoity",
+ value1: 64.3,
+ value2: 19.6,
+ },
+ {
+ name: "Stanredtax",
+ value1: 52.9,
+ value2: 96.3,
+ },
+ {
+ name: "Conecom",
+ value1: 42.9,
+ value2: 11.9,
+ },
+ {
+ name: "Zencorporation",
+ value1: 40.9,
+ value2: 16.8,
+ },
+ {
+ name: "Iselectrics",
+ value1: 39.2,
+ value2: 9.9,
+ },
+ {
+ name: "Treequote",
+ value1: 76.6,
+ value2: 36.9,
+ },
+ {
+ name: "Sumace",
+ value1: 34.8,
+ value2: 14.6,
+ },
+ {
+ name: "Lexiqvolax",
+ value1: 32.1,
+ value2: 35.6,
+ },
+ {
+ name: "Sunnamplex",
+ value1: 31.8,
+ value2: 5.9,
+ },
+ {
+ name: "Faxquote",
+ value1: 29.3,
+ value2: 14.7,
+ },
+ {
+ name: "Donware",
+ value1: 23.0,
+ value2: 2.8,
+ },
+ {
+ name: "Warephase",
+ value1: 21.5,
+ value2: 12.1,
+ },
+ {
+ name: "Donquadtech",
+ value1: 19.7,
+ value2: 10.8,
+ },
+ {
+ name: "Nam-zim",
+ value1: 15.5,
+ value2: 4.1,
+ },
+ {
+ name: "Y-corporation",
+ value1: 14.2,
+ value2: 11.3,
+ },
+ ];
+
+ series1.data.setAll(data);
+ series2.data.setAll(data);
+ xAxis.data.setAll(data);
+
+ // Animate chart and series in
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series1.appear(1000);
+ series2.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ var initChart2 = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_25_chart_2");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ innerRadius: am5.percent(40),
+ radius: am5.percent(70),
+ arrangeTooltips: false,
+ })
+ );
+
+ var cursor = chart.set(
+ "cursor",
+ am5radar.RadarCursor.new(root, {
+ behavior: "zoomX",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {
+ minGridDistance: 30,
+ });
+ xRenderer.labels.template.setAll({
+ textType: "radial",
+ radius: 10,
+ paddingTop: 0,
+ paddingBottom: 0,
+ centerY: am5.p50,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ xRenderer.grid.template.setAll({
+ location: 0.5,
+ strokeDasharray: [2, 2],
+ stroke: KTUtil.getCssVariableValue("--bs-gray-400"),
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ maxDeviation: 0,
+ categoryField: "name",
+ renderer: xRenderer,
+ })
+ );
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 30,
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: yRenderer,
+ })
+ );
+
+ yRenderer.grid.template.setAll({
+ strokeDasharray: [2, 2],
+ stroke: KTUtil.getCssVariableValue("--bs-gray-400"),
+ });
+
+ yRenderer.labels.template.setAll({
+ fontWeight: "500",
+ fontSize: 12,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series1 = chart.series.push(
+ am5radar.RadarLineSeries.new(root, {
+ name: "Revenue",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value1",
+ categoryXField: "name",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ })
+ );
+
+ series1.strokes.template.setAll({
+ strokeOpacity: 0,
+ });
+
+ series1.fills.template.setAll({
+ visible: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ fillOpacity: 0.5,
+ });
+
+ var series2 = chart.series.push(
+ am5radar.RadarLineSeries.new(root, {
+ name: "Expense",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value2",
+ categoryXField: "name",
+ stacked: true,
+ tooltip: am5.Tooltip.new(root, {
+ labelText: "Revenue: {value1}\nExpense:{value2}",
+ }),
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ })
+ );
+
+ series2.strokes.template.setAll({
+ strokeOpacity: 0,
+ });
+
+ series2.fills.template.setAll({
+ visible: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ fillOpacity: 0.5,
+ });
+
+ var legend = chart.radarContainer.children.push(
+ am5.Legend.new(root, {
+ width: 150,
+ centerX: am5.p50,
+ centerY: am5.p50,
+ })
+ );
+ legend.data.setAll([series1, series2]);
+
+ legend.labels.template.setAll({
+ fontWeight: "600",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Setting_data
+ var data = [
+ {
+ name: "Openlane",
+ value1: 160.2,
+ value2: 66.9,
+ },
+ {
+ name: "Yearin",
+ value1: 150.1,
+ value2: 50.5,
+ },
+ {
+ name: "Goodsilron",
+ value1: 120.7,
+ value2: 32.3,
+ },
+ {
+ name: "Condax",
+ value1: 89.4,
+ value2: 74.5,
+ },
+ {
+ name: "Opentech",
+ value1: 78.5,
+ value2: 29.7,
+ },
+ {
+ name: "Golddex",
+ value1: 77.6,
+ value2: 102.2,
+ },
+ {
+ name: "Isdom",
+ value1: 69.8,
+ value2: 22.6,
+ },
+ {
+ name: "Plusstrip",
+ value1: 63.6,
+ value2: 45.3,
+ },
+ {
+ name: "Kinnamplus",
+ value1: 59.7,
+ value2: 12.8,
+ },
+ {
+ name: "Zumgoity",
+ value1: 54.3,
+ value2: 19.6,
+ },
+ {
+ name: "Stanredtax",
+ value1: 52.9,
+ value2: 96.3,
+ },
+ {
+ name: "Conecom",
+ value1: 42.9,
+ value2: 11.9,
+ },
+ {
+ name: "Zencorporation",
+ value1: 40.9,
+ value2: 16.8,
+ },
+ {
+ name: "Iselectrics",
+ value1: 39.2,
+ value2: 9.9,
+ },
+ {
+ name: "Treequote",
+ value1: 36.6,
+ value2: 36.9,
+ },
+ {
+ name: "Sumace",
+ value1: 34.8,
+ value2: 14.6,
+ },
+ {
+ name: "Lexiqvolax",
+ value1: 32.1,
+ value2: 35.6,
+ },
+ {
+ name: "Sunnamplex",
+ value1: 31.8,
+ value2: 5.9,
+ },
+ {
+ name: "Faxquote",
+ value1: 29.3,
+ value2: 14.7,
+ },
+ {
+ name: "Donware",
+ value1: 23.0,
+ value2: 2.8,
+ },
+ {
+ name: "Warephase",
+ value1: 21.5,
+ value2: 12.1,
+ },
+ {
+ name: "Donquadtech",
+ value1: 19.7,
+ value2: 10.8,
+ },
+ {
+ name: "Nam-zim",
+ value1: 15.5,
+ value2: 4.1,
+ },
+ {
+ name: "Y-corporation",
+ value1: 14.2,
+ value2: 11.3,
+ },
+ ];
+
+ series1.data.setAll(data);
+ series2.data.setAll(data);
+ xAxis.data.setAll(data);
+
+ // Animate chart and series in
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series1.appear(1000);
+ series2.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart1();
+ initChart2();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget25;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget25.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget26 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_26");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-primary");
+ var lightColor = KTUtil.getCssVariableValue("--bs-primary");
+ var chartInfo = element.getAttribute("data-kt-chart-info");
+
+ var options = {
+ series: [
+ {
+ name: chartInfo,
+ data: [
+ 34.5, 34.5, 35, 35, 35.5, 35.5, 35, 35, 35.5, 35.5, 35,
+ 35, 34.5, 34.5, 35, 35, 35.5, 35.5, 35,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 19",
+ "Apr 21",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ max: 36.3,
+ min: 33,
+ tickAmount: 6,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return "$" + parseInt(10 * val);
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + parseInt(10 * val);
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget26;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget26.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget27 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_27");
+
+ if (!element) {
+ return;
+ }
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var maxValue = 18;
+
+ var options = {
+ series: [
+ {
+ name: "Sessions",
+ data: [12.478, 7.546, 6.083, 5.041, 4.42],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: 350,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ borderRadius: 8,
+ horizontal: true,
+ distributed: true,
+ barHeight: 50,
+ dataLabels: {
+ position: "bottom", // use 'bottom' for left and 'top' for right align(textAnchor)
+ },
+ },
+ },
+ dataLabels: {
+ // Docs: https://apexcharts.com/docs/options/datalabels/
+ enabled: true,
+ textAnchor: "start",
+ offsetX: 0,
+ formatter: function (val, opts) {
+ var val = val * 1000;
+ var Format = wNumb({
+ //prefix: '$',
+ //suffix: ',-',
+ thousand: ",",
+ });
+
+ return Format.to(val);
+ },
+ style: {
+ fontSize: "14px",
+ fontWeight: "600",
+ align: "left",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ colors: ["#3E97FF", "#F1416C", "#50CD89", "#FFC700", "#7239EA"],
+ xaxis: {
+ categories: ["USA", "India", "Canada", "Brasil", "France"],
+ labels: {
+ formatter: function (val) {
+ return val + "K";
+ },
+ style: {
+ colors: labelColor,
+ fontSize: "14px",
+ fontWeight: "600",
+ align: "left",
+ },
+ },
+ axisBorder: {
+ show: false,
+ },
+ },
+ yaxis: {
+ labels: {
+ formatter: function (val, opt) {
+ if (Number.isInteger(val)) {
+ var percentage = parseInt(
+ (val * 100) / maxValue
+ ).toString();
+ return val + " - " + percentage + "%";
+ } else {
+ return val;
+ }
+ },
+ style: {
+ colors: labelColor,
+ fontSize: "14px",
+ fontWeight: "600",
+ },
+ offsetY: 2,
+ align: "left",
+ },
+ },
+ grid: {
+ borderColor: borderColor,
+ xaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ yaxis: {
+ lines: {
+ show: false,
+ },
+ },
+ strokeDashArray: 4,
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget27;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget27.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget28 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_28");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-info");
+
+ var options = {
+ series: [
+ {
+ name: "Links",
+ data: [
+ 190, 230, 230, 200, 200, 190, 190, 200, 200, 220, 220,
+ 200, 200, 210, 210,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "May 04",
+ "May 05",
+ "May 06",
+ "May 09",
+ "May 10",
+ "May 12",
+ "May 14",
+ "May 17",
+ "May 18",
+ "May 20",
+ "May 22",
+ "May 24",
+ "May 26",
+ "May 28",
+ "May 30",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ offsetX: 20,
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 3,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 250,
+ min: 100,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget28;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget28.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget29 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_29");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-warning");
+
+ var options = {
+ series: [
+ {
+ name: "Position",
+ data: [4, 7.5, 7.5, 6, 6, 4, 4, 6, 6, 8, 8, 6, 6, 7, 7],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 09",
+ "Apr 10",
+ "Apr 12",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 18",
+ "Apr 20",
+ "Apr 22",
+ "Apr 24",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ offsetX: 20,
+ tickAmount: 4,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 10,
+ min: 1,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget29;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget29.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget3 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_3");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-success");
+ var lightColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [
+ 18, 18, 20, 20, 18, 18, 22, 22, 20, 20, 18, 18, 20, 20,
+ 18, 18, 20, 20, 22,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 15",
+ "Apr 16",
+ "Apr 17",
+ "Apr 18",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 24,
+ min: 10,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return "$" + val + "K";
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + "K";
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget3;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget3.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget30 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_30_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/
+ // start and end angle must be set both for chart and series
+ var chart = root.container.children.push(
+ am5percent.PieChart.new(root, {
+ startAngle: 180,
+ endAngle: 360,
+ layout: root.verticalLayout,
+ innerRadius: am5.percent(50),
+ })
+ );
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Series
+ // start and end angle must be set both for chart and series
+ var series = chart.series.push(
+ am5percent.PieSeries.new(root, {
+ startAngle: 180,
+ endAngle: 360,
+ valueField: "value",
+ categoryField: "category",
+ alignLabels: false,
+ })
+ );
+
+ series.labels.template.setAll({
+ fontWeight: "400",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-500")),
+ });
+
+ series.states.create("hidden", {
+ startAngle: 180,
+ endAngle: 180,
+ });
+
+ series.slices.template.setAll({
+ cornerRadius: 5,
+ });
+
+ series.ticks.template.setAll({
+ forceHidden: true,
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Setting_data
+ series.data.setAll([
+ {
+ value: 10,
+ category: "One",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ },
+ {
+ value: 9,
+ category: "Two",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ },
+ {
+ value: 6,
+ category: "Three",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-danger")),
+ },
+ {
+ value: 5,
+ category: "Four",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-warning")),
+ },
+ {
+ value: 4,
+ category: "Five",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-info")),
+ },
+ {
+ value: 3,
+ category: "Six",
+ fill: am5.color(
+ KTUtil.getCssVariableValue("--bs-secondary")
+ ),
+ },
+ ]);
+
+ series.appear(1000, 100);
+ };
+
+ am5.ready(function () {
+ init();
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget30;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget30.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget31 = (function () {
+ // Private methods
+ var initChart1 = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_charts_widget_31_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var chart;
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ innerRadius: am5.percent(40),
+ radius: am5.percent(70),
+ arrangeTooltips: false,
+ })
+ );
+
+ var cursor = chart.set(
+ "cursor",
+ am5radar.RadarCursor.new(root, {
+ behavior: "zoomX",
+ })
+ );
+
+ cursor.lineY.set("visible", false);
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {
+ minGridDistance: 30,
+ });
+
+ xRenderer.labels.template.setAll({
+ textType: "radial",
+ radius: 10,
+ paddingTop: 0,
+ paddingBottom: 0,
+ centerY: am5.p50,
+ fontWeight: "400",
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-800")),
+ });
+
+ xRenderer.grid.template.setAll({
+ location: 0.5,
+ strokeDasharray: [2, 2],
+ stroke: KTUtil.getCssVariableValue("--bs-gray-400"),
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ maxDeviation: 0,
+ categoryField: "name",
+ renderer: xRenderer,
+ })
+ );
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 30,
+ });
+
+ yRenderer.labels.template.setAll({
+ fontWeight: "500",
+ fontSize: 12,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ renderer: yRenderer,
+ })
+ );
+
+ yRenderer.grid.template.setAll({
+ strokeDasharray: [2, 2],
+ stroke: KTUtil.getCssVariableValue("--bs-gray-400"),
+ });
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series1 = chart.series.push(
+ am5radar.RadarLineSeries.new(root, {
+ name: "Revenue",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value1",
+ categoryXField: "name",
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ })
+ );
+
+ series1.strokes.template.setAll({
+ strokeOpacity: 0,
+ });
+
+ series1.fills.template.setAll({
+ visible: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ fillOpacity: 0.5,
+ });
+
+ var series2 = chart.series.push(
+ am5radar.RadarLineSeries.new(root, {
+ name: "Expense",
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value2",
+ categoryXField: "name",
+ stacked: true,
+ tooltip: am5.Tooltip.new(root, {
+ labelText: "Revenue: {value1}\nExpense:{value2}",
+ }),
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ })
+ );
+
+ series2.strokes.template.setAll({
+ strokeOpacity: 0,
+ });
+
+ series2.fills.template.setAll({
+ visible: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-primary")),
+ fillOpacity: 0.5,
+ });
+
+ var legend = chart.radarContainer.children.push(
+ am5.Legend.new(root, {
+ width: 150,
+ centerX: am5.p50,
+ centerY: am5.p50,
+ })
+ );
+ legend.data.setAll([series1, series2]);
+
+ legend.labels.template.setAll({
+ fontWeight: "600",
+ fontSize: 13,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Setting_data
+ var data = [
+ {
+ name: "Openlane",
+ value1: 160.2,
+ value2: 26.9,
+ },
+ {
+ name: "Yearin",
+ value1: 120.1,
+ value2: 50.5,
+ },
+ {
+ name: "Goodsilron",
+ value1: 150.7,
+ value2: 12.3,
+ },
+ {
+ name: "Condax",
+ value1: 69.4,
+ value2: 74.5,
+ },
+ {
+ name: "Opentech",
+ value1: 78.5,
+ value2: 29.7,
+ },
+ {
+ name: "Golddex",
+ value1: 77.6,
+ value2: 102.2,
+ },
+ {
+ name: "Isdom",
+ value1: 69.8,
+ value2: 22.6,
+ },
+ {
+ name: "Plusstrip",
+ value1: 63.6,
+ value2: 45.3,
+ },
+ {
+ name: "Kinnamplus",
+ value1: 59.7,
+ value2: 12.8,
+ },
+ {
+ name: "Zumgoity",
+ value1: 64.3,
+ value2: 19.6,
+ },
+ {
+ name: "Stanredtax",
+ value1: 52.9,
+ value2: 96.3,
+ },
+ {
+ name: "Conecom",
+ value1: 42.9,
+ value2: 11.9,
+ },
+ {
+ name: "Zencorporation",
+ value1: 40.9,
+ value2: 16.8,
+ },
+ {
+ name: "Iselectrics",
+ value1: 39.2,
+ value2: 9.9,
+ },
+ {
+ name: "Treequote",
+ value1: 76.6,
+ value2: 36.9,
+ },
+ {
+ name: "Sumace",
+ value1: 34.8,
+ value2: 14.6,
+ },
+ {
+ name: "Lexiqvolax",
+ value1: 32.1,
+ value2: 35.6,
+ },
+ {
+ name: "Sunnamplex",
+ value1: 31.8,
+ value2: 5.9,
+ },
+ {
+ name: "Faxquote",
+ value1: 29.3,
+ value2: 14.7,
+ },
+ {
+ name: "Donware",
+ value1: 23.0,
+ value2: 2.8,
+ },
+ {
+ name: "Warephase",
+ value1: 21.5,
+ value2: 12.1,
+ },
+ {
+ name: "Donquadtech",
+ value1: 19.7,
+ value2: 10.8,
+ },
+ {
+ name: "Nam-zim",
+ value1: 15.5,
+ value2: 4.1,
+ },
+ {
+ name: "Y-corporation",
+ value1: 14.2,
+ value2: 11.3,
+ },
+ ];
+
+ series1.data.setAll(data);
+ series2.data.setAll(data);
+ xAxis.data.setAll(data);
+
+ // Animate chart and series in
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series1.appear(1000);
+ series2.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart1();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget31;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget31.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget32 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-900");
+
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "Deliveries",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["22%"],
+ borderRadius: 5,
+ dataLabels: {
+ position: "top", // top, center, bottom
+ },
+ startingShape: "flat",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: true,
+ offsetY: -28,
+ style: {
+ fontSize: "13px",
+ colors: [labelColor],
+ },
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ categories: [
+ "Grossey",
+ "Pet Food",
+ "Flowers",
+ "Restaurant",
+ "Kids Toys",
+ "Clothing",
+ "Still Water",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ crosshairs: {
+ fill: {
+ gradient: {
+ opacityFrom: 0,
+ opacityTo: 0,
+ },
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-primary-light"),
+ ],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [54, 42, 75, 110, 23, 87, 50];
+ initChart(
+ chart1,
+ "#kt_charts_widget_32_tab_1",
+ "#kt_charts_widget_32_chart_1",
+ chart1Data,
+ true
+ );
+
+ var chart2Data = [25, 55, 35, 50, 45, 20, 31];
+ initChart(
+ chart2,
+ "#kt_charts_widget_32_tab_2",
+ "#kt_charts_widget_32_chart_2",
+ chart2Data,
+ false
+ );
+
+ var chart3Data = [45, 15, 35, 70, 45, 50, 21];
+ initChart(
+ chart3,
+ "#kt_charts_widget_32_tab_3",
+ "#kt_charts_widget_32_chart_3",
+ chart3Data,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_32_tab_1",
+ "#kt_charts_widget_32_chart_1",
+ chart1Data,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_32_tab_2",
+ "#kt_charts_widget_32_chart_2",
+ chart2Data,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_32_tab_3",
+ "#kt_charts_widget_32_chart_3",
+ chart3Data,
+ chart3.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget32;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget32.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget33 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ labels,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute("data-kt-chart-color");
+ var height = parseInt(KTUtil.css(element, "height"));
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Etherium ",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: labels,
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ offsetX: 20,
+ tickAmount: 4,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 4000,
+ min: 1000,
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val + "$";
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 3,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 2100, 3200, 3200, 2400, 2400, 1800, 1800, 2400, 2400, 3200,
+ 3200, 3000, 3000, 3250, 3250,
+ ];
+ var chart1Labels = [
+ "10AM",
+ "10.30AM",
+ "11AM",
+ "11.15AM",
+ "11.30AM",
+ "12PM",
+ "1PM",
+ "2PM",
+ "3PM",
+ "4PM",
+ "5PM",
+ "6PM",
+ "7PM",
+ "8PM",
+ "9PM",
+ ];
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_33_tab_1",
+ "#kt_charts_widget_33_chart_1",
+ chart1Data,
+ chart1Labels,
+ true
+ );
+
+ var chart2Data = [
+ 2300, 2300, 2000, 3200, 3200, 2800, 2400, 2400, 3100, 2900,
+ 3100, 3100, 2600, 2600, 3200,
+ ];
+ var chart2Labels = [
+ "Apr 01",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 15",
+ ];
+
+ initChart(
+ chart2,
+ "#kt_charts_widget_33_tab_2",
+ "#kt_charts_widget_33_chart_2",
+ chart2Data,
+ chart2Labels,
+ false
+ );
+
+ var chart3Data = [
+ 2600, 3200, 2300, 2300, 2000, 3200, 3100, 2900, 3200, 3200,
+ 2600, 3100, 2800, 2400, 2400,
+ ];
+ var chart3Labels = [
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 09",
+ "Apr 10",
+ "Apr 12",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 18",
+ "Apr 20",
+ "Apr 22",
+ "Apr 24",
+ ];
+
+ initChart(
+ chart3,
+ "#kt_charts_widget_33_tab_3",
+ "#kt_charts_widget_33_chart_3",
+ chart3Data,
+ chart3Labels,
+ false
+ );
+
+ var chart4Data = [
+ 1800, 1800, 2400, 2400, 3200, 3200, 3000, 2100, 3200, 3300,
+ 2400, 2400, 3000, 3200, 3100,
+ ];
+ var chart4Labels = [
+ "Jun 2021",
+ "Jul 2021",
+ "Aug 2021",
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ ];
+
+ initChart(
+ chart4,
+ "#kt_charts_widget_33_tab_4",
+ "#kt_charts_widget_33_chart_4",
+ chart4Data,
+ chart4Labels,
+ false
+ );
+
+ var chart5Data = [
+ 3000, 2100, 3300, 3100, 1800, 1800, 2400, 2400, 3100, 3100,
+ 2400, 2400, 3000, 2400, 2800,
+ ];
+ var chart5Labels = [
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ "Sep 2022",
+ "Oct 2022",
+ "Nov 2022",
+ ];
+
+ initChart(
+ chart5,
+ "#kt_charts_widget_33_tab_5",
+ "#kt_charts_widget_33_chart_5",
+ chart5Data,
+ chart5Labels,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_33_tab_1",
+ "#kt_charts_widget_33_chart_1",
+ chart1Data,
+ chart1Labels,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_33_tab_2",
+ "#kt_charts_widget_33_chart_2",
+ chart2Data,
+ chart2Labels,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_33_tab_3",
+ "#kt_charts_widget_33_chart_3",
+ chart3Data,
+ chart3Labels,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_charts_widget_33_tab_4",
+ "#kt_charts_widget_33_chart_4",
+ chart4Data,
+ chart4Labels,
+ chart4.rendered
+ );
+ initChart(
+ chart5,
+ "#kt_charts_widget_33_tab_5",
+ "#kt_charts_widget_33_chart_5",
+ chart5Data,
+ chart5Labels,
+ chart5.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget33;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget33.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget34 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ labels,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Earnings",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: labels,
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ offsetX: 20,
+ tickAmount: 4,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 4000,
+ min: 1000,
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val + "$";
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 3,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 2100, 2800, 2800, 2400, 2400, 1800, 1800, 2400, 2400, 3200,
+ 3200, 2800, 2800, 3250, 3250,
+ ];
+ var chart1Labels = [
+ "10AM",
+ "10.30AM",
+ "11AM",
+ "11.15AM",
+ "11.30AM",
+ "12PM",
+ "1PM",
+ "2PM",
+ "3PM",
+ "4PM",
+ "5PM",
+ "6PM",
+ "7PM",
+ "8PM",
+ "9PM",
+ ];
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_34_tab_1",
+ "#kt_charts_widget_34_chart_1",
+ chart1Data,
+ chart1Labels,
+ true
+ );
+
+ var chart2Data = [
+ 2300, 2300, 2000, 3100, 3100, 2800, 2400, 2400, 3100, 2900,
+ 3200, 3200, 2600, 2600, 3200,
+ ];
+ var chart2Labels = [
+ "Apr 01",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 15",
+ ];
+
+ initChart(
+ chart2,
+ "#kt_charts_widget_34_tab_2",
+ "#kt_charts_widget_34_chart_2",
+ chart2Data,
+ chart2Labels,
+ false
+ );
+
+ var chart3Data = [
+ 2600, 3400, 2300, 2300, 2000, 3100, 3100, 2900, 3200, 3200,
+ 2600, 3100, 2800, 2400, 2400,
+ ];
+ var chart3Labels = [
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 09",
+ "Apr 10",
+ "Apr 12",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 18",
+ "Apr 20",
+ "Apr 22",
+ "Apr 24",
+ ];
+
+ initChart(
+ chart3,
+ "#kt_charts_widget_34_tab_3",
+ "#kt_charts_widget_34_chart_3",
+ chart3Data,
+ chart3Labels,
+ false
+ );
+
+ var chart4Data = [
+ 1800, 1800, 2400, 2400, 3100, 3100, 3000, 2100, 3200, 3200,
+ 2400, 2400, 3000, 3200, 3100,
+ ];
+ var chart4Labels = [
+ "Jun 2021",
+ "Jul 2021",
+ "Aug 2021",
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ ];
+
+ initChart(
+ chart4,
+ "#kt_charts_widget_34_tab_4",
+ "#kt_charts_widget_34_chart_4",
+ chart4Data,
+ chart4Labels,
+ false
+ );
+
+ var chart5Data = [
+ 3000, 2100, 3200, 3200, 1800, 1800, 2400, 2400, 3100, 3100,
+ 2400, 2400, 3000, 2400, 2800,
+ ];
+ var chart5Labels = [
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ "Sep 2022",
+ "Oct 2022",
+ "Nov 2022",
+ ];
+
+ initChart(
+ chart5,
+ "#kt_charts_widget_34_tab_5",
+ "#kt_charts_widget_34_chart_5",
+ chart5Data,
+ chart5Labels,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_34_tab_1",
+ "#kt_charts_widget_34_chart_1",
+ chart1Data,
+ chart1Labels,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_34_tab_2",
+ "#kt_charts_widget_34_chart_2",
+ chart2Data,
+ chart2Labels,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_34_tab_3",
+ "#kt_charts_widget_34_chart_3",
+ chart3Data,
+ chart3Labels,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_charts_widget_34_tab_4",
+ "#kt_charts_widget_34_chart_4",
+ chart4Data,
+ chart4Labels,
+ chart4.rendered
+ );
+ initChart(
+ chart5,
+ "#kt_charts_widget_34_tab_5",
+ "#kt_charts_widget_34_chart_5",
+ chart5Data,
+ chart5Labels,
+ chart5.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget34;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget34.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget35 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ labels,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Earnings",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: labels,
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ offsetX: 20,
+ tickAmount: 4,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 4000,
+ min: 1000,
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val + "$";
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 3,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 2100, 3100, 3100, 2400, 2400, 1800, 1800, 2400, 2400, 3200,
+ 3200, 2800, 2800, 3250, 3250,
+ ];
+ var chart1Labels = [
+ "10AM",
+ "10.30AM",
+ "11AM",
+ "11.15AM",
+ "11.30AM",
+ "12PM",
+ "1PM",
+ "2PM",
+ "3PM",
+ "4PM",
+ "5PM",
+ "6PM",
+ "7PM",
+ "8PM",
+ "9PM",
+ ];
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_35_tab_1",
+ "#kt_charts_widget_35_chart_1",
+ chart1Data,
+ chart1Labels,
+ true
+ );
+
+ var chart2Data = [
+ 2300, 2300, 2000, 3200, 3200, 2800, 2400, 2400, 3100, 2900,
+ 3200, 3200, 2600, 2600, 3200,
+ ];
+ var chart2Labels = [
+ "Apr 01",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 15",
+ ];
+
+ initChart(
+ chart2,
+ "#kt_charts_widget_35_tab_2",
+ "#kt_charts_widget_35_chart_2",
+ chart2Data,
+ chart2Labels,
+ false
+ );
+
+ var chart3Data = [
+ 2600, 3200, 2300, 2300, 2000, 3200, 3100, 2900, 3400, 3400,
+ 2600, 3200, 2800, 2400, 2400,
+ ];
+ var chart3Labels = [
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 09",
+ "Apr 10",
+ "Apr 12",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 18",
+ "Apr 20",
+ "Apr 22",
+ "Apr 24",
+ ];
+
+ initChart(
+ chart3,
+ "#kt_charts_widget_35_tab_3",
+ "#kt_charts_widget_35_chart_3",
+ chart3Data,
+ chart3Labels,
+ false
+ );
+
+ var chart4Data = [
+ 1800, 1800, 2400, 2400, 3200, 3200, 3000, 2100, 3200, 3200,
+ 2400, 2400, 3000, 3200, 3100,
+ ];
+ var chart4Labels = [
+ "Jun 2021",
+ "Jul 2021",
+ "Aug 2021",
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ ];
+
+ initChart(
+ chart4,
+ "#kt_charts_widget_35_tab_4",
+ "#kt_charts_widget_35_chart_4",
+ chart4Data,
+ chart4Labels,
+ false
+ );
+
+ var chart5Data = [
+ 3200, 2100, 3200, 3200, 3200, 3500, 3000, 2400, 3250, 2400,
+ 2400, 3250, 3000, 2400, 2800,
+ ];
+ var chart5Labels = [
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ "Sep 2022",
+ "Oct 2022",
+ "Nov 2022",
+ ];
+
+ initChart(
+ chart5,
+ "#kt_charts_widget_35_tab_5",
+ "#kt_charts_widget_35_chart_5",
+ chart5Data,
+ chart5Labels,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_35_tab_1",
+ "#kt_charts_widget_35_chart_1",
+ chart1Data,
+ chart1Labels,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_35_tab_2",
+ "#kt_charts_widget_35_chart_2",
+ chart2Data,
+ chart2Labels,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_35_tab_3",
+ "#kt_charts_widget_35_chart_3",
+ chart3Data,
+ chart3Labels,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_charts_widget_35_tab_4",
+ "#kt_charts_widget_35_chart_4",
+ chart4Data,
+ chart4Labels,
+ chart4.rendered
+ );
+ initChart(
+ chart5,
+ "#kt_charts_widget_35_tab_5",
+ "#kt_charts_widget_35_chart_5",
+ chart5Data,
+ chart5Labels,
+ chart5.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget35;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget35.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget36 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_36");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseprimaryColor = KTUtil.getCssVariableValue("--bs-primary");
+ var lightprimaryColor = KTUtil.getCssVariableValue("--bs-primary");
+ var basesuccessColor = KTUtil.getCssVariableValue("--bs-success");
+ var lightsuccessColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Payment Gateway",
+ data: [
+ 65, 80, 80, 60, 60, 45, 45, 80, 80, 70, 70, 90, 90, 80,
+ 80, 80, 60, 60, 50,
+ ],
+ },
+ {
+ name: "Bank Transfer",
+ data: [
+ 90, 110, 110, 95, 95, 85, 85, 95, 95, 115, 115, 100,
+ 100, 115, 115, 95, 95, 85, 85,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseprimaryColor, basesuccessColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "8 AM",
+ "81 AM",
+ "9 AM",
+ "10 AM",
+ "11 AM",
+ "12 PM",
+ "13 PM",
+ "14 PM",
+ "15 PM",
+ "16 PM",
+ "17 PM",
+ "18 PM",
+ "18:20 PM",
+ "18:20 PM",
+ "19 PM",
+ "20 PM",
+ "21 PM",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: [baseprimaryColor, basesuccessColor],
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ max: 120,
+ min: 30,
+ tickAmount: 6,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ },
+ colors: [lightprimaryColor, lightsuccessColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: [baseprimaryColor, basesuccessColor],
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget36;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget36.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget37 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ labels,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Earnings",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: labels,
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ offsetX: 20,
+ tickAmount: 4,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 4000,
+ min: 1000,
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val + "$";
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 3,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 2100, 3200, 3200, 2400, 2400, 1800, 1800, 2400, 2400, 3200,
+ 3200, 3000, 3000, 3250, 3250,
+ ];
+ var chart1Labels = [
+ "10AM",
+ "10.30AM",
+ "11AM",
+ "11.15AM",
+ "11.30AM",
+ "12PM",
+ "1PM",
+ "2PM",
+ "3PM",
+ "4PM",
+ "5PM",
+ "6PM",
+ "7PM",
+ "8PM",
+ "9PM",
+ ];
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_37_tab_1",
+ "#kt_charts_widget_37_chart_1",
+ chart1Data,
+ chart1Labels,
+ true
+ );
+
+ var chart2Data = [
+ 2300, 2300, 2000, 3200, 3200, 2800, 2400, 2400, 3100, 2900,
+ 3100, 3100, 2600, 2600, 3200,
+ ];
+ var chart2Labels = [
+ "Apr 01",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 15",
+ ];
+
+ initChart(
+ chart2,
+ "#kt_charts_widget_37_tab_2",
+ "#kt_charts_widget_37_chart_2",
+ chart2Data,
+ chart2Labels,
+ false
+ );
+
+ var chart3Data = [
+ 2600, 3200, 2300, 2300, 2000, 3200, 3100, 2900, 3200, 3200,
+ 2600, 3100, 2800, 2400, 2400,
+ ];
+ var chart3Labels = [
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 09",
+ "Apr 10",
+ "Apr 12",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 18",
+ "Apr 20",
+ "Apr 22",
+ "Apr 24",
+ ];
+
+ initChart(
+ chart3,
+ "#kt_charts_widget_37_tab_3",
+ "#kt_charts_widget_37_chart_3",
+ chart3Data,
+ chart3Labels,
+ false
+ );
+
+ var chart4Data = [
+ 1800, 1800, 2400, 2400, 3200, 3200, 3000, 2100, 3200, 3300,
+ 2400, 2400, 3000, 3200, 3100,
+ ];
+ var chart4Labels = [
+ "Jun 2021",
+ "Jul 2021",
+ "Aug 2021",
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ ];
+
+ initChart(
+ chart4,
+ "#kt_charts_widget_37_tab_4",
+ "#kt_charts_widget_37_chart_4",
+ chart4Data,
+ chart4Labels,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_37_tab_1",
+ "#kt_charts_widget_37_chart_1",
+ chart1Data,
+ chart1Labels,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_37_tab_2",
+ "#kt_charts_widget_37_chart_2",
+ chart2Data,
+ chart2Labels,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_37_tab_3",
+ "#kt_charts_widget_37_chart_3",
+ chart3Data,
+ chart3Labels,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_charts_widget_37_tab_4",
+ "#kt_charts_widget_37_chart_4",
+ chart4Data,
+ chart4Labels,
+ chart4.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget37;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget37.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget38 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_38_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-900");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "LOI Issued",
+ data: [54, 42, 75, 110, 23, 87, 50],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["28%"],
+ borderRadius: 5,
+ dataLabels: {
+ position: "top", // top, center, bottom
+ },
+ startingShape: "flat",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: true,
+ offsetY: -28,
+ style: {
+ fontSize: "13px",
+ colors: [labelColor],
+ },
+ formatter: function (val) {
+ return val; // + "H";
+ },
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ categories: [
+ "E2E",
+ "IMC",
+ "SSMC",
+ "SSBD",
+ "ICCD",
+ "PAN",
+ "SBN",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ crosshairs: {
+ fill: {
+ gradient: {
+ opacityFrom: 0,
+ opacityTo: 0,
+ },
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ formatter: function (val) {
+ return val + "M";
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return +val + "M";
+ },
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-primary-light"),
+ ],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget38;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget38.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget39 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.querySelector("#kt_charts_widget_39_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ if (!root) {
+ return;
+ }
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ })
+ );
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {});
+ xRenderer.labels.template.setAll({
+ radius: 10,
+ });
+
+ xRenderer.grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 20,
+ });
+
+ yRenderer.grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ maxDeviation: 0,
+ categoryField: "category",
+ renderer: xRenderer,
+ tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ min: 0,
+ max: 10,
+ renderer: yRenderer,
+ })
+ );
+
+ xRenderer.labels.template.setAll({
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-800")),
+ });
+
+ yRenderer.labels.template.setAll({
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-800")),
+ });
+
+ //yAxis.get("renderer").labels.template.set("forceHidden", true);
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value",
+ categoryXField: "category",
+ })
+ );
+
+ series.columns.template.setAll({
+ tooltipText: "{categoryX}: {valueY}",
+ templateField: "columnSettings",
+ strokeOpacity: 0,
+ width: am5.p100,
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Setting_data
+ var data = [
+ {
+ category: "Spain",
+ value: 5,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Spain",
+ value: 4,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "United States",
+ value: 9,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Italy",
+ value: 7,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "France",
+ value: 8,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Norway",
+ value: 4,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Brasil",
+ value: 7,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Canada",
+ value: 5,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ ];
+
+ series.data.setAll(data);
+ xAxis.data.setAll(data);
+
+ // Animate chart
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget39;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget39.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget4 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_4");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-primary");
+ var lightColor = KTUtil.getCssVariableValue("--bs-primary");
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [
+ 34.5, 34.5, 35, 35, 35.5, 35.5, 35, 35, 35.5, 35.5, 35,
+ 35, 34.5, 34.5, 35, 35, 35.5, 35.5, 35,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 19",
+ "Apr 21",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ max: 36.3,
+ min: 33,
+ tickAmount: 6,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return "$" + parseInt(10 * val);
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + parseInt(10 * val);
+ },
+ },
+ },
+ colors: [lightColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget4;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget4.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget40 = (function () {
+ // Private methods
+ var initChart = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.querySelector("#kt_charts_widget_40_chart");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ if (!root) {
+ return;
+ }
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create chart
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/
+ var chart = root.container.children.push(
+ am5radar.RadarChart.new(root, {
+ panX: false,
+ panY: false,
+ wheelX: "panX",
+ wheelY: "zoomX",
+ })
+ );
+
+ // Create axes and their renderers
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_axes
+ var xRenderer = am5radar.AxisRendererCircular.new(root, {});
+ xRenderer.labels.template.setAll({
+ radius: 10,
+ });
+
+ xRenderer.grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ var yRenderer = am5radar.AxisRendererRadial.new(root, {
+ minGridDistance: 20,
+ });
+
+ yRenderer.grid.template.setAll({
+ stroke: am5.color(KTUtil.getCssVariableValue("--bs-gray-700")),
+ });
+
+ var xAxis = chart.xAxes.push(
+ am5xy.CategoryAxis.new(root, {
+ maxDeviation: 0,
+ categoryField: "category",
+ renderer: xRenderer,
+ tooltip: am5.Tooltip.new(root, {}),
+ })
+ );
+
+ var yAxis = chart.yAxes.push(
+ am5xy.ValueAxis.new(root, {
+ min: 0,
+ max: 10,
+ renderer: yRenderer,
+ })
+ );
+
+ xRenderer.labels.template.setAll({
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-800")),
+ });
+
+ yRenderer.labels.template.setAll({
+ fontSize: 11,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-800")),
+ });
+
+ //yAxis.get("renderer").labels.template.set("forceHidden", true);
+
+ // Create series
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Adding_series
+ var series = chart.series.push(
+ am5radar.RadarColumnSeries.new(root, {
+ xAxis: xAxis,
+ yAxis: yAxis,
+ valueYField: "value",
+ categoryXField: "category",
+ })
+ );
+
+ series.columns.template.setAll({
+ tooltipText: "{categoryX}: {valueY}",
+ templateField: "columnSettings",
+ strokeOpacity: 0,
+ width: am5.p100,
+ });
+
+ // Set data
+ // https://www.amcharts.com/docs/v5/charts/radar-chart/#Setting_data
+ var data = [
+ {
+ category: "Spain",
+ value: 5,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Spain",
+ value: 4,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "United States",
+ value: 9,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Italy",
+ value: 7,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "France",
+ value: 8,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Norway",
+ value: 4,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Brasil",
+ value: 7,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ {
+ category: "Canada",
+ value: 5,
+ columnSettings: {
+ fill: chart.get("colors").next(),
+ },
+ },
+ ];
+
+ series.data.setAll(data);
+ xAxis.data.setAll(data);
+
+ // Animate chart
+ // https://www.amcharts.com/docs/v5/concepts/animations/#Initial_animation
+ series.appear(1000);
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget40;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget40.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget41 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (
+ chart,
+ toggle,
+ chartSelector,
+ data,
+ labels,
+ initByDefault
+ ) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Earnings",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: labels,
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ offsetX: 20,
+ tickAmount: 4,
+ labels: {
+ rotate: 0,
+ rotateAlways: false,
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 4000,
+ min: 1000,
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val + "$";
+ },
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 3,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 2100, 3100, 3100, 2400, 2400, 1800, 1800, 2400, 2400, 3200,
+ 3200, 2800, 2800, 3250, 3250,
+ ];
+ var chart1Labels = [
+ "10AM",
+ "10.30AM",
+ "11AM",
+ "11.15AM",
+ "11.30AM",
+ "12PM",
+ "1PM",
+ "2PM",
+ "3PM",
+ "4PM",
+ "5PM",
+ "6PM",
+ "7PM",
+ "8PM",
+ "9PM",
+ ];
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_41_tab_1",
+ "#kt_charts_widget_41_chart_1",
+ chart1Data,
+ chart1Labels,
+ true
+ );
+
+ var chart2Data = [
+ 2300, 2300, 2000, 3200, 3200, 2800, 2400, 2400, 3100, 2900,
+ 3200, 3200, 2600, 2600, 3200,
+ ];
+ var chart2Labels = [
+ "Apr 01",
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 10",
+ "Apr 11",
+ "Apr 12",
+ "Apr 13",
+ "Apr 14",
+ "Apr 15",
+ ];
+
+ initChart(
+ chart2,
+ "#kt_charts_widget_41_tab_2",
+ "#kt_charts_widget_41_chart_2",
+ chart2Data,
+ chart2Labels,
+ false
+ );
+
+ var chart3Data = [
+ 2600, 3200, 2300, 2300, 2000, 3200, 3100, 2900, 3400, 3400,
+ 2600, 3200, 2800, 2400, 2400,
+ ];
+ var chart3Labels = [
+ "Apr 02",
+ "Apr 03",
+ "Apr 04",
+ "Apr 05",
+ "Apr 06",
+ "Apr 09",
+ "Apr 10",
+ "Apr 12",
+ "Apr 14",
+ "Apr 17",
+ "Apr 18",
+ "Apr 18",
+ "Apr 20",
+ "Apr 22",
+ "Apr 24",
+ ];
+
+ initChart(
+ chart3,
+ "#kt_charts_widget_41_tab_3",
+ "#kt_charts_widget_41_chart_3",
+ chart3Data,
+ chart3Labels,
+ false
+ );
+
+ var chart4Data = [
+ 1800, 1800, 2400, 2400, 3200, 3200, 3000, 2100, 3200, 3200,
+ 2400, 2400, 3000, 3200, 3100,
+ ];
+ var chart4Labels = [
+ "Jun 2021",
+ "Jul 2021",
+ "Aug 2021",
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ ];
+
+ initChart(
+ chart4,
+ "#kt_charts_widget_41_tab_4",
+ "#kt_charts_widget_41_chart_4",
+ chart4Data,
+ chart4Labels,
+ false
+ );
+
+ var chart5Data = [
+ 3200, 2100, 3200, 3200, 3200, 3500, 3000, 2400, 3250, 2400,
+ 2400, 3250, 3000, 2400, 2800,
+ ];
+ var chart5Labels = [
+ "Sep 2021",
+ "Oct 2021",
+ "Nov 2021",
+ "Dec 2021",
+ "Jan 2022",
+ "Feb 2022",
+ "Mar 2022",
+ "Apr 2022",
+ "May 2022",
+ "Jun 2022",
+ "Jul 2022",
+ "Aug 2022",
+ "Sep 2022",
+ "Oct 2022",
+ "Nov 2022",
+ ];
+
+ initChart(
+ chart5,
+ "#kt_charts_widget_41_tab_5",
+ "#kt_charts_widget_41_chart_5",
+ chart5Data,
+ chart5Labels,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_charts_widget_41_tab_1",
+ "#kt_charts_widget_41_chart_1",
+ chart1Data,
+ chart1Labels,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_charts_widget_41_tab_2",
+ "#kt_charts_widget_41_chart_2",
+ chart2Data,
+ chart2Labels,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_charts_widget_41_tab_3",
+ "#kt_charts_widget_41_chart_3",
+ chart3Data,
+ chart3Labels,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_charts_widget_41_tab_4",
+ "#kt_charts_widget_41_chart_4",
+ chart4Data,
+ chart4Labels,
+ chart4.rendered
+ );
+ initChart(
+ chart5,
+ "#kt_charts_widget_41_tab_5",
+ "#kt_charts_widget_41_chart_5",
+ chart5Data,
+ chart5Labels,
+ chart5.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget41;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget41.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget42 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_42");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseprimaryColor = KTUtil.getCssVariableValue("--bs-primary");
+ var basesuccessColor = KTUtil.getCssVariableValue("--bs-success");
+
+ var options = {
+ series: [
+ {
+ name: "Inbound Calls",
+ data: [45, 80, 53, 80, 75, 100, 76, 117, 76, 110, 70, 112],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseprimaryColor, basesuccessColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "29 Sep",
+ "1 Aug",
+ "2 Aug",
+ "3 Aug",
+ "4 Aug",
+ "5 Aug",
+ "6 Aug",
+ "7 Aug",
+ "8 Aug",
+ "9 Aug",
+ "10 Aug",
+ "11 Aug",
+ "12 Aug",
+ "13 Aug",
+ "14 Aug",
+ "15 Aug",
+ "16 Aug",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: [baseprimaryColor, basesuccessColor],
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ max: 120,
+ min: 30,
+ tickAmount: 6,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ },
+ colors: [baseprimaryColor, basesuccessColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: [baseprimaryColor, basesuccessColor],
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget42;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget42.init();
+});
+("use strict");
+
+// Class definition
+var KTChartsWidget43 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_43");
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute("data-kt-chart-color");
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var strokeColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-" + color + "-light");
+
+ var options = {
+ series: [
+ {
+ name: "Overview",
+ data: [30, 30, 45, 45, 35, 35, 25, 25, 50, 50],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "Feb",
+ "Mar",
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ colors: [lightColor],
+ markers: {
+ colors: lightColor,
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget43;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget43.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget44 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_44");
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute("data-kt-chart-color");
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var strokeColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-" + color + "-light");
+
+ var options = {
+ series: [
+ {
+ name: "Overview",
+ data: [20, 37, 22, 45, 20, 50, 25, 57, 40],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ colors: [lightColor],
+ markers: {
+ colors: lightColor,
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget44;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget44.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget45 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_45");
+
+ if (!element) {
+ return;
+ }
+
+ var color = element.getAttribute("data-kt-chart-color");
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var strokeColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Overview",
+ data: [15, 15, 42, 42, 13, 13, 35],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.3,
+ opacityTo: 0.2,
+ stops: [15, 120, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: ["Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug"],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val;
+ },
+ },
+ },
+ colors: [lightColor],
+ markers: {
+ colors: lightColor,
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart();
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget45;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget45.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget46 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_46");
+
+ if (!element) {
+ return;
+ }
+
+ var negativeColor = element.hasAttribute("data-kt-negative-color")
+ ? element.getAttribute("data-kt-negative-color")
+ : KTUtil.getCssVariableValue("--bs-gary-500");
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var baseColor = KTUtil.getCssVariableValue("--bs-gray-800");
+
+ var options = {
+ series: [
+ {
+ name: "Subscribed",
+ data: [
+ 20, 30, 20, 40, 60, 75, 65, 18, 10, 5, 15, 40, 60, 18,
+ 35, 55, 20,
+ ],
+ },
+ {
+ name: "Unsubscribed",
+ data: [
+ -20, -15, -5, -20, -30, -15, -10, -8, -5, -5, -10, -25,
+ -15, -5, -10, -5, -15,
+ ],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ stacked: true,
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ //horizontal: false,
+ columnWidth: "35%",
+ barHeight: "70%",
+ borderRadius: [4, 4],
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ xaxis: {
+ categories: [
+ "Jan 5",
+ "Jan 7",
+ "Jan 9",
+ "Jan 11",
+ "Jan 13",
+ "Jan 15",
+ "Jan 17",
+ "Jan 19",
+ "Jan 20",
+ "Jan 21",
+ "Jan 23",
+ "Jan 24",
+ "Jan 25",
+ "Jan 26",
+ "Jan 24",
+ "Jan 28",
+ "Jan 29",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 10,
+ labels: {
+ //rotate: -45,
+ //rotateAlways: true,
+ style: {
+ colors: [labelColor],
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ show: false,
+ },
+ },
+ yaxis: {
+ min: -100,
+ max: 150,
+ tickAmount: 5,
+ labels: {
+ style: {
+ colors: [labelColor],
+ fontSize: "12px",
+ },
+ formatter: function (val) {
+ return parseInt(val);
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ borderRadius: 4,
+ },
+ y: {
+ formatter: function (val) {
+ if (val > 0) {
+ return val + "K";
+ } else {
+ return Math.abs(val) + "K";
+ }
+ },
+ },
+ },
+ colors: [baseColor, negativeColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget46;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget46.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget5 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_5");
+
+ if (!element) {
+ return;
+ }
+
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ data: [15, 12, 10, 8, 7, 4, 3],
+ show: false,
+ },
+ ],
+ chart: {
+ type: "bar",
+ height: 350,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ borderRadius: 4,
+ horizontal: true,
+ distributed: true,
+ barHeight: 23,
+ },
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ legend: {
+ show: false,
+ },
+ colors: [
+ "#3E97FF",
+ "#F1416C",
+ "#50CD89",
+ "#FFC700",
+ "#7239EA",
+ "#50CDCD",
+ "#3F4254",
+ ],
+ xaxis: {
+ categories: [
+ "Phones",
+ "Laptops",
+ "Headsets",
+ "Games",
+ "Keyboardsy",
+ "Monitors",
+ "Speakers",
+ ],
+ labels: {
+ formatter: function (val) {
+ return val + "K";
+ },
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-400"),
+ fontSize: "14px",
+ fontWeight: "600",
+ align: "left",
+ },
+ },
+ axisBorder: {
+ show: false,
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-800"),
+ fontSize: "14px",
+ fontWeight: "600",
+ },
+ offsetY: 2,
+ align: "left",
+ },
+ },
+ grid: {
+ borderColor: borderColor,
+ xaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ yaxis: {
+ lines: {
+ show: false,
+ },
+ },
+ strokeDashArray: 4,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget5;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget5.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget6 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart) {
+ var element = document.getElementById("kt_charts_widget_6");
+
+ if (!element) {
+ return;
+ }
+
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var maxValue = 18;
+
+ var options = {
+ series: [
+ {
+ name: "Sales",
+ data: [15, 12, 10, 8, 7],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: 350,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ borderRadius: 8,
+ horizontal: true,
+ distributed: true,
+ barHeight: 50,
+ dataLabels: {
+ position: "bottom", // use 'bottom' for left and 'top' for right align(textAnchor)
+ },
+ },
+ },
+ dataLabels: {
+ // Docs: https://apexcharts.com/docs/options/datalabels/
+ enabled: true,
+ textAnchor: "start",
+ offsetX: 0,
+ formatter: function (val, opts) {
+ var val = val * 1000;
+ var Format = wNumb({
+ //prefix: '$',
+ //suffix: ',-',
+ thousand: ",",
+ });
+
+ return Format.to(val);
+ },
+ style: {
+ fontSize: "14px",
+ fontWeight: "600",
+ align: "left",
+ },
+ },
+ legend: {
+ show: false,
+ },
+ colors: ["#3E97FF", "#F1416C", "#50CD89", "#FFC700", "#7239EA"],
+ xaxis: {
+ categories: [
+ "ECR - 90%",
+ "FGI - 82%",
+ "EOQ - 75%",
+ "FMG - 60%",
+ "PLG - 50%",
+ ],
+ labels: {
+ formatter: function (val) {
+ return val + "K";
+ },
+ style: {
+ colors: [labelColor],
+ fontSize: "14px",
+ fontWeight: "600",
+ align: "left",
+ },
+ },
+ axisBorder: {
+ show: false,
+ },
+ },
+ yaxis: {
+ labels: {
+ formatter: function (val, opt) {
+ if (Number.isInteger(val)) {
+ var percentage = parseInt(
+ (val * 100) / maxValue
+ ).toString();
+ return val + " - " + percentage + "%";
+ } else {
+ return val;
+ }
+ },
+ style: {
+ colors: labelColor,
+ fontSize: "14px",
+ fontWeight: "600",
+ },
+ offsetY: 2,
+ align: "left",
+ },
+ },
+ grid: {
+ borderColor: borderColor,
+ xaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ yaxis: {
+ lines: {
+ show: false,
+ },
+ },
+ strokeDashArray: 4,
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return val + "K";
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(chart);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget6;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget6.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget7 = (function () {
+ // Private methods
+ var initChart = function (chartSelector) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "Net Profit",
+ data: data1,
+ },
+ {
+ name: "Revenue",
+ data: data2,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bar",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: ["40%"],
+ borderRadius: [6],
+ },
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ stroke: {
+ show: true,
+ width: 2,
+ colors: ["transparent"],
+ },
+ xaxis: {
+ categories: ["Feb", "Mar", "Apr", "May", "Jun", "Jul"],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-700"),
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-700"),
+ fontSize: "12px",
+ },
+ },
+ },
+ fill: {
+ opacity: 1,
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands";
+ },
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-primary-light"),
+ ],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ var chart = new ApexCharts(element, options);
+
+ var init = false;
+ var tab = document.querySelector(tabSelector);
+
+ if (initByDefault === true) {
+ chart.render();
+ init = true;
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (init == false) {
+ chart.render();
+ init = true;
+ }
+ });
+
+ var chart = new ApexCharts(element, options);
+ chart.render();
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart(
+ "#kt_chart_widget_7_tab_1",
+ "#kt_chart_widget_7_chart_1",
+ [44, 55, 57, 56, 61, 58],
+ [76, 85, 101, 98, 87, 105],
+ true
+ );
+ initChart(
+ "#kt_chart_widget_7_tab_2",
+ "#kt_chart_widget_7_chart_2",
+ [35, 60, 35, 50, 45, 30],
+ [65, 80, 50, 80, 75, 105],
+ false
+ );
+ initChart(
+ "#kt_chart_widget_7_tab_3",
+ "#kt_chart_widget_7_chart_3",
+ [25, 40, 45, 50, 40, 60],
+ [76, 85, 101, 98, 87, 105],
+ false
+ );
+ initChart(
+ "#kt_chart_widget_7_tab_4",
+ "#kt_chart_widget_7_chart_4",
+ [50, 35, 45, 55, 30, 40],
+ [76, 85, 101, 98, 87, 105],
+ false
+ );
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget7;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ //KTChartsWidget7.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget8 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, toggle, selector, data, initByDefault) {
+ var element = document.querySelector(selector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var options = {
+ series: [
+ {
+ name: "Social Campaigns",
+ data: data[0], // array value is of the format [x, y, z] where x (timestamp) and y are the two axes coordinates,
+ },
+ {
+ name: "Email Newsletter",
+ data: data[1],
+ },
+ {
+ name: "TV Campaign",
+ data: data[2],
+ },
+ {
+ name: "Google Ads",
+ data: data[3],
+ },
+ {
+ name: "Courses",
+ data: data[4],
+ },
+ {
+ name: "Radio",
+ data: data[5],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "bubble",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {
+ bubble: {},
+ },
+ stroke: {
+ show: false,
+ width: 0,
+ },
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ xaxis: {
+ type: "numeric",
+ tickAmount: 7,
+ min: 0,
+ max: 700,
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: true,
+ height: 0,
+ },
+ labels: {
+ show: true,
+ trim: true,
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 7,
+ min: 0,
+ max: 700,
+ labels: {
+ style: {
+ colors: KTUtil.getCssVariableValue("--bs-gray-500"),
+ fontSize: "13px",
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ x: {
+ formatter: function (val) {
+ return "Clicks: " + val;
+ },
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + "K";
+ },
+ },
+ z: {
+ title: "Impression: ",
+ },
+ },
+ crosshairs: {
+ show: true,
+ position: "front",
+ stroke: {
+ color: KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ ),
+ width: 1,
+ dashArray: 0,
+ },
+ },
+ colors: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-success"),
+ KTUtil.getCssVariableValue("--bs-warning"),
+ KTUtil.getCssVariableValue("--bs-danger"),
+ KTUtil.getCssVariableValue("--bs-info"),
+ "#43CED7",
+ ],
+ fill: {
+ opacity: 1,
+ },
+ markers: {
+ strokeWidth: 0,
+ },
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ padding: {
+ right: 20,
+ },
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var data1 = [
+ [[100, 250, 30]],
+ [[225, 300, 35]],
+ [[300, 350, 25]],
+ [[350, 350, 20]],
+ [[450, 400, 25]],
+ [[550, 350, 35]],
+ ];
+
+ var data2 = [
+ [[125, 300, 40]],
+ [[250, 350, 35]],
+ [[350, 450, 30]],
+ [[450, 250, 25]],
+ [[500, 500, 30]],
+ [[600, 250, 28]],
+ ];
+
+ initChart(
+ chart1,
+ "#kt_chart_widget_8_week_toggle",
+ "#kt_chart_widget_8_week_chart",
+ data1,
+ false
+ );
+ initChart(
+ chart2,
+ "#kt_chart_widget_8_month_toggle",
+ "#kt_chart_widget_8_month_chart",
+ data2,
+ true
+ );
+
+ // Update chart on theme mode change
+ var handlerId = KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_chart_widget_8_week_toggle",
+ "#kt_chart_widget_8_week_chart",
+ data1,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_chart_widget_8_month_toggle",
+ "#kt_chart_widget_8_month_chart",
+ data2,
+ chart2.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget8;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget8.init();
+});
+
+("use strict");
+
+// Class definition
+var KTChartsWidget9 = (function () {
+ var chart = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function () {
+ var element = document.getElementById("kt_charts_widget_9");
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-400");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+
+ var baseColor = KTUtil.getCssVariableValue("--bs-gray-200");
+ var secondaryColor = KTUtil.getCssVariableValue("--bs-primary");
+
+ var options = {
+ series: [
+ {
+ name: "Order",
+ data: [21, 21, 26, 26, 31, 31, 27],
+ },
+ {
+ name: "Revenue",
+ data: [12, 16, 16, 21, 21, 18, 18],
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "06 Sep",
+ "13 Sep",
+ "20 Sep",
+ "27 Sep",
+ "30 Sep",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: labelColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ y: {
+ formatter: function (val) {
+ return "$" + val + " thousands";
+ },
+ },
+ },
+ crosshairs: {
+ show: true,
+ position: "front",
+ stroke: {
+ color: KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ ),
+ width: 1,
+ dashArray: 0,
+ },
+ },
+ colors: [baseColor, secondaryColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ colors: [baseColor, secondaryColor],
+ strokeColor: [
+ KTUtil.getCssVariableValue("--bs-primary"),
+ KTUtil.getCssVariableValue("--bs-gray-300"),
+ ],
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initChart();
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart.rendered) {
+ chart.self.destroy();
+ }
+
+ initChart(chart);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTChartsWidget9;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTChartsWidget9.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTimelineWidget24 = (function () {
+ // Private methods
+ var handleActions = function () {
+ var card = document.querySelector("#kt_list_widget_24");
+
+ if (!card) {
+ return;
+ }
+
+ // Checkbox Handler
+ KTUtil.on(card, '[data-kt-element="follow"]', "click", function (e) {
+ if (this.innerText === "Following") {
+ this.innerText = "Follow";
+ this.classList.add("btn-light-primary");
+ this.classList.remove("btn-primary");
+ this.blur();
+ } else {
+ this.innerText = "Following";
+ this.classList.add("btn-primary");
+ this.classList.remove("btn-light-primary");
+ this.blur();
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ handleActions();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTimelineWidget24;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTimelineWidget24.init();
+});
+
+("use strict");
+
+// Class definition
+var KTMapsWidget1 = (function () {
+ // Private methods
+ var initMap = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_maps_widget_1_map");
+
+ if (!element) {
+ return;
+ }
+
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create the map chart
+ // https://www.amcharts.com/docs/v5/charts/map-chart/
+ var chart = root.container.children.push(
+ am5map.MapChart.new(root, {
+ panX: "translateX",
+ panY: "translateY",
+ projection: am5map.geoMercator(),
+ paddingLeft: 0,
+ paddingrIGHT: 0,
+ paddingBottom: 0,
+ })
+ );
+
+ // Create main polygon series for countries
+ // https://www.amcharts.com/docs/v5/charts/map-chart/map-polygon-series/
+ var polygonSeries = chart.series.push(
+ am5map.MapPolygonSeries.new(root, {
+ geoJSON: am5geodata_worldLow,
+ exclude: ["AQ"],
+ })
+ );
+
+ polygonSeries.mapPolygons.template.setAll({
+ tooltipText: "{name}",
+ toggleKey: "active",
+ interactive: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ });
+
+ polygonSeries.mapPolygons.template.states.create("hover", {
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ polygonSeries.mapPolygons.template.states.create("active", {
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ // Highlighted Series
+ // Create main polygon series for countries
+ // https://www.amcharts.com/docs/v5/charts/map-chart/map-polygon-series/
+ var polygonSeriesHighlighted = chart.series.push(
+ am5map.MapPolygonSeries.new(root, {
+ //geoJSON: am5geodata_usaLow,
+ geoJSON: am5geodata_worldLow,
+ include: ["US", "BR", "DE", "AU", "JP"],
+ })
+ );
+
+ polygonSeriesHighlighted.mapPolygons.template.setAll({
+ tooltipText: "{name}",
+ toggleKey: "active",
+ interactive: true,
+ });
+
+ var colors = am5.ColorSet.new(root, {});
+
+ polygonSeriesHighlighted.mapPolygons.template.set(
+ "fill",
+ am5.color(KTUtil.getCssVariableValue("--bs-primary"))
+ );
+
+ polygonSeriesHighlighted.mapPolygons.template.states.create(
+ "hover",
+ {
+ fill: root.interfaceColors.get("primaryButtonHover"),
+ }
+ );
+
+ polygonSeriesHighlighted.mapPolygons.template.states.create(
+ "active",
+ {
+ fill: root.interfaceColors.get("primaryButtonHover"),
+ }
+ );
+
+ // Add zoom control
+ // https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Zoom_control
+ //chart.set("zoomControl", am5map.ZoomControl.new(root, {}));
+
+ // Set clicking on "water" to zoom out
+ chart.chartContainer
+ .get("background")
+ .events.on("click", function () {
+ chart.goHome();
+ });
+
+ // Make stuff animate on load
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initMap();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTMapsWidget1;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTMapsWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTMapsWidget2 = (function () {
+ // Private methods
+ var initMap = function () {
+ // Check if amchart library is included
+ if (typeof am5 === "undefined") {
+ return;
+ }
+
+ var element = document.getElementById("kt_maps_widget_2_map");
+
+ if (!element) {
+ return;
+ }
+
+ // Root
+ var root;
+
+ var init = function () {
+ // Create root element
+ // https://www.amcharts.com/docs/v5/getting-started/#Root_element
+ root = am5.Root.new(element);
+
+ // Set themes
+ // https://www.amcharts.com/docs/v5/concepts/themes/
+ root.setThemes([am5themes_Animated.new(root)]);
+
+ // Create the map chart
+ // https://www.amcharts.com/docs/v5/charts/map-chart/
+ var chart = root.container.children.push(
+ am5map.MapChart.new(root, {
+ panX: "translateX",
+ panY: "translateY",
+ projection: am5map.geoMercator(),
+ paddingLeft: 0,
+ paddingrIGHT: 0,
+ paddingBottom: 0,
+ })
+ );
+
+ // Create main polygon series for countries
+ // https://www.amcharts.com/docs/v5/charts/map-chart/map-polygon-series/
+ var polygonSeries = chart.series.push(
+ am5map.MapPolygonSeries.new(root, {
+ geoJSON: am5geodata_worldLow,
+ exclude: ["AQ"],
+ })
+ );
+
+ polygonSeries.mapPolygons.template.setAll({
+ tooltipText: "{name}",
+ toggleKey: "active",
+ interactive: true,
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-gray-300")),
+ });
+
+ polygonSeries.mapPolygons.template.states.create("hover", {
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ polygonSeries.mapPolygons.template.states.create("active", {
+ fill: am5.color(KTUtil.getCssVariableValue("--bs-success")),
+ });
+
+ // Highlighted Series
+ // Create main polygon series for countries
+ // https://www.amcharts.com/docs/v5/charts/map-chart/map-polygon-series/
+ var polygonSeriesHighlighted = chart.series.push(
+ am5map.MapPolygonSeries.new(root, {
+ //geoJSON: am5geodata_usaLow,
+ geoJSON: am5geodata_worldLow,
+ include: ["US", "BR", "DE", "AU", "JP"],
+ })
+ );
+
+ polygonSeriesHighlighted.mapPolygons.template.setAll({
+ tooltipText: "{name}",
+ toggleKey: "active",
+ interactive: true,
+ });
+
+ var colors = am5.ColorSet.new(root, {});
+
+ polygonSeriesHighlighted.mapPolygons.template.set(
+ "fill",
+ am5.color(KTUtil.getCssVariableValue("--bs-primary"))
+ );
+
+ polygonSeriesHighlighted.mapPolygons.template.states.create(
+ "hover",
+ {
+ fill: root.interfaceColors.get("primaryButtonHover"),
+ }
+ );
+
+ polygonSeriesHighlighted.mapPolygons.template.states.create(
+ "active",
+ {
+ fill: root.interfaceColors.get("primaryButtonHover"),
+ }
+ );
+
+ // Add zoom control
+ // https://www.amcharts.com/docs/v5/charts/map-chart/map-pan-zoom/#Zoom_control
+ //chart.set("zoomControl", am5map.ZoomControl.new(root, {}));
+
+ // Set clicking on "water" to zoom out
+ chart.chartContainer
+ .get("background")
+ .events.on("click", function () {
+ chart.goHome();
+ });
+
+ // Make stuff animate on load
+ chart.appear(1000, 100);
+ };
+
+ // On amchart ready
+ am5.ready(function () {
+ init();
+ }); // end am5.ready()
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ // Destroy chart
+ root.dispose();
+
+ // Reinit chart
+ init();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initMap();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTMapsWidget2;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTMapsWidget2.init();
+});
+
+("use strict");
+
+// Class definition
+var KTSlidersWidget1 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, query, data) {
+ var element = document.querySelector(query);
+
+ if (!element) {
+ return;
+ }
+
+ if (
+ chart.rendered === true &&
+ element.classList.contains("initialized")
+ ) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + "primary");
+ var lightColor = KTUtil.getCssVariableValue("--bs-" + "primary-light");
+
+ var options = {
+ series: [data],
+ chart: {
+ fontFamily: "inherit",
+ height: height,
+ type: "radialBar",
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {
+ radialBar: {
+ hollow: {
+ margin: 0,
+ size: "45%",
+ },
+ dataLabels: {
+ showOn: "always",
+ name: {
+ show: false,
+ },
+ value: {
+ show: false,
+ },
+ },
+ track: {
+ background: lightColor,
+ strokeWidth: "100%",
+ },
+ },
+ },
+ colors: [baseColor],
+ stroke: {
+ lineCap: "round",
+ },
+ labels: ["Progress"],
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+
+ element.classList.add("initialized");
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ // Init default chart
+ initChart(chart1, "#kt_slider_widget_1_chart_1", 76);
+
+ var carousel = document.querySelector(
+ "#kt_sliders_widget_1_slider"
+ );
+
+ if (!carousel) {
+ return;
+ }
+
+ // Init slide charts
+ carousel.addEventListener("slid.bs.carousel", function (e) {
+ if (e.to === 1) {
+ // Init second chart
+ initChart(chart2, "#kt_slider_widget_1_chart_2", 55);
+ }
+
+ if (e.to === 2) {
+ // Init third chart
+ initChart(chart3, "#kt_slider_widget_1_chart_3", 25);
+ }
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ chart1.rendered = false;
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ chart2.rendered = false;
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ chart3.rendered = false;
+ }
+
+ initChart(chart1, "#kt_slider_widget_1_chart_1", 76);
+ initChart(chart2, "#kt_slider_widget_1_chart_2", 55);
+ initChart(chart3, "#kt_slider_widget_1_chart_3", 25);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTSlidersWidget1;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSlidersWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTSlidersWidget3 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, query, color, data) {
+ var element = document.querySelector(query);
+
+ if (!element) {
+ return;
+ }
+
+ if (
+ chart.rendered === true &&
+ element.classList.contains("initialized")
+ ) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-500");
+ var borderColor = KTUtil.getCssVariableValue(
+ "--bs-border-dashed-color"
+ );
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+
+ var options = {
+ series: [
+ {
+ name: "Lessons",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "gradient",
+ gradient: {
+ shadeIntensity: 1,
+ opacityFrom: 0.4,
+ opacityTo: 0,
+ stops: [0, 80, 100],
+ },
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 3,
+ colors: [baseColor],
+ },
+ xaxis: {
+ categories: [
+ "",
+ "Apr 05",
+ "Apr 06",
+ "Apr 07",
+ "Apr 08",
+ "Apr 09",
+ "Apr 11",
+ "Apr 12",
+ "Apr 14",
+ "Apr 15",
+ "Apr 16",
+ "Apr 17",
+ "Apr 18",
+ "",
+ ],
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ tickAmount: 6,
+ labels: {
+ rotate: 0,
+ rotateAlways: true,
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ crosshairs: {
+ position: "front",
+ stroke: {
+ color: baseColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: true,
+ formatter: undefined,
+ offsetY: 0,
+ style: {
+ fontSize: "12px",
+ },
+ },
+ },
+ yaxis: {
+ tickAmount: 4,
+ max: 24,
+ min: 10,
+ labels: {
+ style: {
+ colors: labelColor,
+ fontSize: "12px",
+ },
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ style: {
+ fontSize: "12px",
+ },
+ },
+ colors: [baseColor],
+ grid: {
+ borderColor: borderColor,
+ strokeDashArray: 4,
+ yaxis: {
+ lines: {
+ show: true,
+ },
+ },
+ },
+ markers: {
+ strokeColor: baseColor,
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+
+ element.classList.add("initialized");
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var data1 = [
+ 19, 21, 21, 20, 20, 18, 18, 20, 20, 22, 22, 21, 21, 22,
+ ];
+ var data2 = [
+ 18, 22, 22, 20, 20, 18, 18, 20, 20, 18, 18, 20, 20, 22,
+ ];
+
+ // Init default chart
+ initChart(chart1, "#kt_sliders_widget_3_chart_1", "danger", data1);
+
+ var carousel = document.querySelector(
+ "#kt_sliders_widget_3_slider"
+ );
+
+ if (!carousel) {
+ return;
+ }
+
+ carousel.addEventListener("slid.bs.carousel", function (e) {
+ if (e.to === 1) {
+ // Init second chart
+ initChart(
+ chart2,
+ "#kt_sliders_widget_3_chart_2",
+ "primary",
+ data2
+ );
+ }
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ chart1.rendered = false;
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ chart2.rendered = false;
+ }
+
+ initChart(
+ chart1,
+ "#kt_sliders_widget_3_chart_1",
+ "danger",
+ data1
+ );
+ initChart(
+ chart2,
+ "#kt_sliders_widget_3_chart_2",
+ "primary",
+ data2
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTSlidersWidget3;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSlidersWidget3.init();
+});
+
+("use strict");
+
+// Class definition
+var KTSlidersWidget7 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, query, data) {
+ var element = document.querySelector(query);
+
+ if (!element) {
+ return;
+ }
+
+ if (
+ chart.rendered === true &&
+ element.classList.contains("initialized")
+ ) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + "danger");
+ var lightColor = KTUtil.getCssVariableValue("--bs-" + "white");
+
+ var options = {
+ series: [data],
+ chart: {
+ fontFamily: "inherit",
+ height: height,
+ type: "radialBar",
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {
+ radialBar: {
+ hollow: {
+ margin: 0,
+ size: "45%",
+ },
+ dataLabels: {
+ showOn: "always",
+ name: {
+ show: false,
+ },
+ value: {
+ show: false,
+ },
+ },
+ track: {
+ background: lightColor,
+ strokeWidth: "100%",
+ },
+ },
+ },
+ colors: [baseColor],
+ stroke: {
+ lineCap: "round",
+ },
+ labels: ["Progress"],
+ };
+
+ chart.self = new ApexCharts(element, options);
+ chart.self.render();
+ chart.rendered = true;
+
+ element.classList.add("initialized");
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ // Init default chart
+ initChart(chart1, "#kt_slider_widget_7_chart_1", 76);
+
+ var carousel = document.querySelector(
+ "#kt_sliders_widget_7_slider"
+ );
+
+ if (!carousel) {
+ return;
+ }
+
+ // Init slide charts
+ carousel.addEventListener("slid.bs.carousel", function (e) {
+ if (e.to === 1) {
+ // Init second chart
+ initChart(chart2, "#kt_slider_widget_7_chart_2", 55);
+ }
+
+ if (e.to === 2) {
+ // Init third chart
+ initChart(chart3, "#kt_slider_widget_7_chart_3", 25);
+ }
+ });
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ chart1.rendered = false;
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ chart2.rendered = false;
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ chart3.rendered = false;
+ }
+
+ initChart(chart1, "#kt_slider_widget_7_chart_1", 76);
+ initChart(chart2, "#kt_slider_widget_7_chart_2", 55);
+ initChart(chart3, "#kt_slider_widget_7_chart_3", 25);
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTSlidersWidget7;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTSlidersWidget7.init();
+});
+
+("use strict");
+
+// Class definition
+var KTPlayersWidget1 = (function () {
+ // Private methods
+ var initPlayers = function () {
+ // https://www.w3schools.com/jsref/dom_obj_audio.asp
+ // Toggle Handler
+ KTUtil.on(
+ document.body,
+ '[data-kt-element="list-play-button"]',
+ "click",
+ function (e) {
+ var currentButton = this;
+
+ var audio = document.querySelector(
+ '[data-kt-element="audio-track-1"]'
+ );
+ var playIcon = this.querySelector(
+ '[data-kt-element="list-play-icon"]'
+ );
+ var pauseIcon = this.querySelector(
+ '[data-kt-element="list-pause-icon"]'
+ );
+
+ if (pauseIcon.classList.contains("d-none")) {
+ audio.play();
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ } else {
+ audio.pause();
+
+ playIcon.classList.remove("d-none");
+ pauseIcon.classList.add("d-none");
+ }
+
+ var buttons = [].slice.call(
+ document.querySelectorAll(
+ '[data-kt-element="list-play-button"]'
+ )
+ );
+ buttons.map(function (button) {
+ if (button !== currentButton) {
+ var playIcon = button.querySelector(
+ '[data-kt-element="list-play-icon"]'
+ );
+ var pauseIcon = button.querySelector(
+ '[data-kt-element="list-pause-icon"]'
+ );
+
+ playIcon.classList.remove("d-none");
+ pauseIcon.classList.add("d-none");
+ }
+ });
+ }
+ );
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initPlayers();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTPlayersWidget1;
+}
+
+// Window load
+window.addEventListener("load", function () {
+ KTPlayersWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTPlayersWidget2 = (function () {
+ // Private methods
+ var initPlayer = function () {
+ // https://www.w3schools.com/jsref/dom_obj_audio.asp
+ var element = document.getElementById("kt_player_widget_2");
+
+ if (!element) {
+ return;
+ }
+
+ var audio = element.querySelector('[data-kt-element="audio-track-1"]');
+ var progress = element.querySelector('[data-kt-element="progress"]');
+ var currentTime = element.querySelector(
+ '[data-kt-element="current-time"]'
+ );
+ var duration = element.querySelector('[data-kt-element="duration"]');
+ var playButton = element.querySelector(
+ '[data-kt-element="play-button"]'
+ );
+ var playIcon = element.querySelector('[data-kt-element="play-icon"]');
+ var pauseIcon = element.querySelector('[data-kt-element="pause-icon"]');
+
+ var replayButton = element.querySelector(
+ '[data-kt-element="replay-button"]'
+ );
+ var shuffleButton = element.querySelector(
+ '[data-kt-element="shuffle-button"]'
+ );
+ var playNextButton = element.querySelector(
+ '[data-kt-element="play-next-button"]'
+ );
+ var playPrevButton = element.querySelector(
+ '[data-kt-element="play-prev-button"]'
+ );
+
+ var formatTime = function (time) {
+ var s = parseInt(time % 60);
+ var m = parseInt((time / 60) % 60);
+
+ return m + ":" + (s < 10 ? "0" : "") + s;
+ };
+
+ // Duration
+ duration.innerHTML = formatTime(audio.duration);
+
+ // Update progress
+ var setBarProgress = function () {
+ progress.value = (audio.currentTime / audio.duration) * 100;
+ };
+
+ // Handle audio update
+ var handleAudioUpdate = function () {
+ currentTime.innerHTML = formatTime(audio.currentTime);
+
+ setBarProgress();
+
+ if (this.ended) {
+ playIcon.classList.remove("d-none");
+ pauseIcon.classList.add("d-none");
+ }
+ };
+
+ audio.addEventListener("timeupdate", handleAudioUpdate);
+
+ // Handle play
+ playButton.addEventListener("click", function () {
+ if (audio.duration > 0 && !audio.paused) {
+ audio.pause();
+
+ playIcon.classList.remove("d-none");
+ pauseIcon.classList.add("d-none");
+ } else if (audio.readyState >= 2) {
+ audio.play();
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ }
+ });
+
+ // Handle replay
+ replayButton.addEventListener("click", function () {
+ if (audio.readyState >= 2) {
+ audio.currentTime = 0;
+ audio.play();
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ }
+ });
+
+ // Handle prev play
+ playPrevButton.addEventListener("click", function () {
+ if (audio.readyState >= 2) {
+ audio.currentTime = 0;
+ audio.play();
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ }
+ });
+
+ // Handle next play
+ playNextButton.addEventListener("click", function () {
+ if (audio.readyState >= 2) {
+ audio.currentTime = 0;
+ audio.play();
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ }
+ });
+
+ // Shuffle replay
+ shuffleButton.addEventListener("click", function () {
+ if (audio.readyState >= 2) {
+ audio.currentTime = 0;
+ audio.play();
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ }
+ });
+
+ // Handle track change
+ progress.addEventListener("change", function () {
+ audio.currentTime = progress.value;
+
+ playIcon.classList.add("d-none");
+ pauseIcon.classList.remove("d-none");
+ audio.play();
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initPlayer();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTPlayersWidget2;
+}
+
+// Window load
+window.addEventListener("load", function () {
+ KTPlayersWidget2.init();
+});
+("use strict");
+
+// Class definition
+var KTTimelineWidget1 = (function () {
+ // Private methods
+ // Day timeline
+ const initTimelineDay = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_1_1");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-1-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: "research",
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: "qa",
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: "ui",
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: "dev",
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: "research",
+ start: now,
+ end: moment(now).add(1.5, "hours"),
+ content: "Meeting",
+ progress: "60%",
+ color: "primary",
+ users: ["avatars/300-6.jpg", "avatars/300-1.jpg"],
+ },
+ {
+ id: 2,
+ group: "qa",
+ start: moment(now).add(1, "hours"),
+ end: moment(now).add(2, "hours"),
+ content: "Testing",
+ progress: "47%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: "ui",
+ start: moment(now).add(30, "minutes"),
+ end: moment(now).add(2.5, "hours"),
+ content: "Landing page",
+ progress: "55%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-20.jpg"],
+ },
+ {
+ id: 4,
+ group: "dev",
+ start: moment(now).add(1.5, "hours"),
+ end: moment(now).add(3, "hours"),
+ content: "Products module",
+ progress: "75%",
+ color: "info",
+ users: [
+ "avatars/300-23.jpg",
+ "avatars/300-12.jpg",
+ "avatars/300-9.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-1-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+
+ // Week timeline
+ const initTimelineWeek = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_1_2");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-1-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: 1,
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: 2,
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: 3,
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: 4,
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: 1,
+ start: now,
+ end: moment(now).add(7, "days"),
+ content: "Framework",
+ progress: "71%",
+ color: "primary",
+ users: ["avatars/300-6.jpg", "avatars/300-1.jpg"],
+ },
+ {
+ id: 2,
+ group: 2,
+ start: moment(now).add(7, "days"),
+ end: moment(now).add(14, "days"),
+ content: "Accessibility",
+ progress: "84%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: 3,
+ start: moment(now).add(3, "days"),
+ end: moment(now).add(20, "days"),
+ content: "Microsites",
+ progress: "69%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-20.jpg"],
+ },
+ {
+ id: 4,
+ group: 4,
+ start: moment(now).add(10, "days"),
+ end: moment(now).add(21, "days"),
+ content: "Deployment",
+ progress: "74%",
+ color: "info",
+ users: [
+ "avatars/300-23.jpg",
+ "avatars/300-12.jpg",
+ "avatars/300-9.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-1-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+
+ // Month timeline
+ const initTimelineMonth = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_1_3");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-1-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: "research",
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: "qa",
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: "ui",
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: "dev",
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: "research",
+ start: now,
+ end: moment(now).add(2, "months"),
+ content: "Tags",
+ progress: "79%",
+ color: "primary",
+ users: ["avatars/300-6.jpg", "avatars/300-1.jpg"],
+ },
+ {
+ id: 2,
+ group: "qa",
+ start: moment(now).add(0.5, "months"),
+ end: moment(now).add(5, "months"),
+ content: "Testing",
+ progress: "64%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: "ui",
+ start: moment(now).add(2, "months"),
+ end: moment(now).add(6.5, "months"),
+ content: "Media",
+ progress: "82%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-20.jpg"],
+ },
+ {
+ id: 4,
+ group: "dev",
+ start: moment(now).add(4, "months"),
+ end: moment(now).add(7, "months"),
+ content: "Plugins",
+ progress: "58%",
+ color: "info",
+ users: [
+ "avatars/300-23.jpg",
+ "avatars/300-12.jpg",
+ "avatars/300-9.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-1-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+
+ // Handle BlockUI
+ const handleBlockUI = () => {
+ // Select block ui elements
+ const elements = document.querySelectorAll(
+ '[data-kt-timeline-widget-1-blockui="true"]'
+ );
+
+ // Init block ui
+ elements.forEach((element) => {
+ const blockUI = new KTBlockUI(element, {
+ overlayClass: "bg-body",
+ });
+
+ blockUI.block();
+ });
+ };
+
+ // Handle tabs visibility
+ const tabsVisibility = () => {
+ const tabs = document.querySelectorAll(
+ '[data-kt-timeline-widget-1="tab"]'
+ );
+
+ tabs.forEach((tab) => {
+ tab.addEventListener("shown.bs.tab", (e) => {
+ // Week tab
+ if (
+ tab.getAttribute("href") ===
+ "#kt_timeline_widget_1_tab_week"
+ ) {
+ initTimelineWeek();
+ }
+
+ // Month tab
+ if (
+ tab.getAttribute("href") ===
+ "#kt_timeline_widget_1_tab_month"
+ ) {
+ initTimelineMonth();
+ }
+ });
+ });
+ };
+
+ // Handle avatar path conflict
+ const handleAvatarPath = () => {
+ const avatars = document.querySelectorAll(
+ "[data-kt-timeline-avatar-src]"
+ );
+
+ if (!avatars) {
+ return;
+ }
+
+ avatars.forEach((avatar) => {
+ avatar.setAttribute(
+ "src",
+ avatar.getAttribute("data-kt-timeline-avatar-src")
+ );
+ avatar.removeAttribute("data-kt-timeline-avatar-src");
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initTimelineDay();
+ handleBlockUI();
+ tabsVisibility();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTimelineWidget1;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTimelineWidget1.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTimelineWidget2 = (function () {
+ // Private methods
+ var handleCheckbox = function () {
+ var card = document.querySelector("#kt_timeline_widget_2_card");
+
+ if (!card) {
+ return;
+ }
+
+ // Checkbox Handler
+ KTUtil.on(card, '[data-kt-element="checkbox"]', "change", function (e) {
+ var check = this.closest(".form-check");
+ var tr = this.closest("tr");
+ var bullet = tr.querySelector('[data-kt-element="bullet"]');
+ var status = tr.querySelector('[data-kt-element="status"]');
+
+ if (this.checked === true) {
+ check.classList.add("form-check-success");
+
+ bullet.classList.remove("bg-primary");
+ bullet.classList.add("bg-success");
+
+ status.innerText = "Done";
+ status.classList.remove("badge-light-primary");
+ status.classList.add("badge-light-success");
+ } else {
+ check.classList.remove("form-check-success");
+
+ bullet.classList.remove("bg-success");
+ bullet.classList.add("bg-primary");
+
+ status.innerText = "In Process";
+ status.classList.remove("badge-light-success");
+ status.classList.add("badge-light-primary");
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ handleCheckbox();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTimelineWidget2;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTimelineWidget2.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTimelineWidget4 = (function () {
+ // Private methods
+ // Day timeline
+ const initTimelineDay = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_4_1");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-4-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: "research",
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: "qa",
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: "ui",
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: "dev",
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: "research",
+ start: now,
+ end: moment(now).add(1.5, "hours"),
+ content: "Meeting",
+ progress: "60%",
+ color: "primary",
+ users: ["avatars/300-6.jpg", "avatars/300-1.jpg"],
+ },
+ {
+ id: 2,
+ group: "qa",
+ start: moment(now).add(1, "hours"),
+ end: moment(now).add(2, "hours"),
+ content: "Testing",
+ progress: "47%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: "ui",
+ start: moment(now).add(30, "minutes"),
+ end: moment(now).add(2.5, "hours"),
+ content: "Landing page",
+ progress: "55%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-20.jpg"],
+ },
+ {
+ id: 4,
+ group: "dev",
+ start: moment(now).add(1.5, "hours"),
+ end: moment(now).add(3, "hours"),
+ content: "Products module",
+ progress: "75%",
+ color: "info",
+ users: [
+ "avatars/300-23.jpg",
+ "avatars/300-12.jpg",
+ "avatars/300-9.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-4-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+
+ // Week timeline
+ const initTimelineWeek = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_4_2");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-4-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: 1,
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: 2,
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: 3,
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: 4,
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: 1,
+ start: now,
+ end: moment(now).add(7, "days"),
+ content: "Framework",
+ progress: "71%",
+ color: "primary",
+ users: ["avatars/300-6.jpg", "avatars/300-1.jpg"],
+ },
+ {
+ id: 2,
+ group: 2,
+ start: moment(now).add(7, "days"),
+ end: moment(now).add(14, "days"),
+ content: "Accessibility",
+ progress: "84%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: 3,
+ start: moment(now).add(3, "days"),
+ end: moment(now).add(20, "days"),
+ content: "Microsites",
+ progress: "69%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-20.jpg"],
+ },
+ {
+ id: 4,
+ group: 4,
+ start: moment(now).add(10, "days"),
+ end: moment(now).add(21, "days"),
+ content: "Deployment",
+ progress: "74%",
+ color: "info",
+ users: [
+ "avatars/300-23.jpg",
+ "avatars/300-12.jpg",
+ "avatars/300-9.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-4-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+
+ // Month timeline
+ const initTimelineMonth = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_4_3");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-4-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: "research",
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: "qa",
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: "ui",
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: "dev",
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: "research",
+ start: now,
+ end: moment(now).add(2, "months"),
+ content: "Tags",
+ progress: "79%",
+ color: "primary",
+ users: ["avatars/300-6.jpg", "avatars/300-1.jpg"],
+ },
+ {
+ id: 2,
+ group: "qa",
+ start: moment(now).add(0.5, "months"),
+ end: moment(now).add(5, "months"),
+ content: "Testing",
+ progress: "64%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: "ui",
+ start: moment(now).add(2, "months"),
+ end: moment(now).add(6.5, "months"),
+ content: "Media",
+ progress: "82%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-20.jpg"],
+ },
+ {
+ id: 4,
+ group: "dev",
+ start: moment(now).add(4, "months"),
+ end: moment(now).add(7, "months"),
+ content: "Plugins",
+ progress: "58%",
+ color: "info",
+ users: [
+ "avatars/300-23.jpg",
+ "avatars/300-12.jpg",
+ "avatars/300-9.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-4-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+
+ // 2022 timeline
+ const initTimeline2022 = () => {
+ // Detect element
+ const element = document.querySelector("#kt_timeline_widget_4_4");
+ if (!element) {
+ return;
+ }
+
+ if (element.innerHTML) {
+ return;
+ }
+
+ // Set variables
+ var now = Date.now();
+ var rootImagePath = element.getAttribute(
+ "data-kt-timeline-widget-4-image-root"
+ );
+
+ // Build vis-timeline datasets
+ var groups = new vis.DataSet([
+ {
+ id: "research",
+ content: "Research",
+ order: 1,
+ },
+ {
+ id: "qa",
+ content: "Phase 2.6 QA",
+ order: 2,
+ },
+ {
+ id: "ui",
+ content: "UI Design",
+ order: 3,
+ },
+ {
+ id: "dev",
+ content: "Development",
+ order: 4,
+ },
+ ]);
+
+ var items = new vis.DataSet([
+ {
+ id: 1,
+ group: "research",
+ start: now,
+ end: moment(now).add(2, "months"),
+ content: "Tags",
+ progress: "51%",
+ color: "primary",
+ users: ["avatars/300-7.jpg", "avatars/300-2.jpg"],
+ },
+ {
+ id: 2,
+ group: "qa",
+ start: moment(now).add(0.5, "months"),
+ end: moment(now).add(5, "months"),
+ content: "Testing",
+ progress: "64%",
+ color: "success",
+ users: ["avatars/300-2.jpg"],
+ },
+ {
+ id: 3,
+ group: "ui",
+ start: moment(now).add(2, "months"),
+ end: moment(now).add(6.5, "months"),
+ content: "Media",
+ progress: "54%",
+ color: "danger",
+ users: ["avatars/300-5.jpg", "avatars/300-21.jpg"],
+ },
+ {
+ id: 4,
+ group: "dev",
+ start: moment(now).add(4, "months"),
+ end: moment(now).add(7, "months"),
+ content: "Plugins",
+ progress: "348%",
+ color: "info",
+ users: [
+ "avatars/300-3.jpg",
+ "avatars/300-11.jpg",
+ "avatars/300-13.jpg",
+ ],
+ },
+ ]);
+
+ // Set vis-timeline options
+ var options = {
+ zoomable: false,
+ moveable: false,
+ selectable: false,
+
+ // More options https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ margin: {
+ item: {
+ horizontal: 10,
+ vertical: 35,
+ },
+ },
+
+ // Remove current time line --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ showCurrentTime: false,
+
+ // Whitelist specified tags and attributes from template --- more info: https://visjs.github.io/vis-timeline/docs/timeline/#Configuration_Options
+ xss: {
+ disabled: false,
+ filterOptions: {
+ whiteList: {
+ div: ["class", "style"],
+ img: ["data-kt-timeline-avatar-src", "alt"],
+ a: ["href", "class"],
+ },
+ },
+ },
+ // specify a template for the items
+ template: function (item) {
+ // Build users group
+ const users = item.users;
+ let userTemplate = "";
+ users.forEach((user) => {
+ userTemplate += ``;
+ });
+
+ return `
+
+
+
+
+
+ ${item.progress}
+
+
+ `;
+ },
+
+ // Remove block ui on initial draw
+ onInitialDrawComplete: function () {
+ handleAvatarPath();
+
+ const target = element.closest(
+ '[data-kt-timeline-widget-4-blockui="true"]'
+ );
+ const blockUI = KTBlockUI.getInstance(target);
+
+ if (blockUI.isBlocked()) {
+ setTimeout(() => {
+ blockUI.release();
+ }, 1000);
+ }
+ },
+ };
+
+ // Init vis-timeline
+ const timeline = new vis.Timeline(element, items, groups, options);
+
+ // Prevent infinite loop draws
+ timeline.on("currentTimeTick", () => {
+ // After fired the first time we un-subscribed
+ timeline.off("currentTimeTick");
+ });
+ };
+ // Handle BlockUI
+ const handleBlockUI = () => {
+ // Select block ui elements
+ const elements = document.querySelectorAll(
+ '[data-kt-timeline-widget-4-blockui="true"]'
+ );
+
+ // Init block ui
+ elements.forEach((element) => {
+ const blockUI = new KTBlockUI(element, {
+ overlayClass: "bg-body",
+ });
+
+ blockUI.block();
+ });
+ };
+
+ // Handle tabs visibility
+ const tabsVisibility = () => {
+ const tabs = document.querySelectorAll(
+ '[data-kt-timeline-widget-4="tab"]'
+ );
+
+ tabs.forEach((tab) => {
+ tab.addEventListener("shown.bs.tab", (e) => {
+ // Week tab
+ if (
+ tab.getAttribute("href") ===
+ "#kt_timeline_widget_4_tab_week"
+ ) {
+ initTimelineWeek();
+ }
+
+ // Month tab
+ if (
+ tab.getAttribute("href") ===
+ "#kt_timeline_widget_4_tab_month"
+ ) {
+ initTimelineMonth();
+ }
+
+ // 2022 tab
+ if (
+ tab.getAttribute("href") ===
+ "#kt_timeline_widget_4_tab_2022"
+ ) {
+ initTimeline2022();
+ }
+ });
+ });
+ };
+
+ // Handle avatar path conflict
+ const handleAvatarPath = () => {
+ const avatars = document.querySelectorAll(
+ "[data-kt-timeline-avatar-src]"
+ );
+
+ if (!avatars) {
+ return;
+ }
+
+ avatars.forEach((avatar) => {
+ avatar.setAttribute(
+ "src",
+ avatar.getAttribute("data-kt-timeline-avatar-src")
+ );
+ avatar.removeAttribute("data-kt-timeline-avatar-src");
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ initTimelineDay();
+ handleBlockUI();
+ tabsVisibility();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTimelineWidget4;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTimelineWidget4.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTablesWidget14 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, chartSelector, data, initByDefault) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var strokeColor = KTUtil.getCssVariableValue("--bs-" + "gray-300");
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-body-bg");
+
+ var options = {
+ series: [
+ {
+ name: "Net Profit",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: false,
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ enabled: false,
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [7, 10, 5, 21, 6, 11, 5, 23, 5, 11, 18, 7, 21, 13];
+ initChart(chart1, "#kt_table_widget_14_chart_1", chart1Data, true);
+
+ var chart2Data = [17, 5, 23, 2, 21, 9, 17, 23, 4, 24, 9, 17, 21, 7];
+ initChart(chart2, "#kt_table_widget_14_chart_2", chart2Data, true);
+
+ var chart3Data = [2, 24, 5, 17, 7, 2, 12, 24, 5, 24, 2, 8, 12, 7];
+ initChart(chart3, "#kt_table_widget_14_chart_3", chart3Data, true);
+
+ var chart4Data = [24, 3, 5, 19, 3, 7, 25, 14, 5, 14, 2, 8, 5, 17];
+ initChart(chart4, "#kt_table_widget_14_chart_4", chart4Data, true);
+
+ var chart5Data = [3, 23, 1, 19, 3, 17, 3, 9, 25, 4, 2, 18, 25, 3];
+ initChart(chart5, "#kt_table_widget_14_chart_5", chart5Data, true);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_table_widget_14_chart_1",
+ chart1Data,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_table_widget_14_chart_2",
+ chart2Data,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_table_widget_14_chart_3",
+ chart3Data,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_table_widget_14_chart_4",
+ chart4Data,
+ chart4.rendered
+ );
+ initChart(
+ chart5,
+ "#kt_table_widget_14_chart_5",
+ chart5Data,
+ chart5.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTablesWidget14;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTablesWidget14.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTablesWidget15 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, chartSelector, data, initByDefault) {
+ var element = document.querySelector(chartSelector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+
+ var strokeColor = KTUtil.getCssVariableValue("--bs-" + "gray-300");
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-body-bg");
+
+ var options = {
+ series: [
+ {
+ name: "Net Profit",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: false,
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ ontSize: "12px",
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ enabled: false,
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [7, 10, 5, 21, 6, 11, 5, 23, 5, 11, 18, 7, 21, 13];
+ initChart(chart1, "#kt_table_widget_15_chart_1", chart1Data, true);
+
+ var chart2Data = [17, 5, 23, 2, 21, 9, 17, 23, 4, 24, 9, 17, 21, 7];
+ initChart(chart2, "#kt_table_widget_15_chart_2", chart2Data, true);
+
+ var chart3Data = [2, 24, 5, 17, 7, 2, 12, 24, 5, 24, 2, 8, 12, 7];
+ initChart(chart3, "#kt_table_widget_15_chart_3", chart3Data, true);
+
+ var chart4Data = [24, 3, 5, 19, 3, 7, 25, 14, 5, 14, 2, 8, 5, 17];
+ initChart(chart4, "#kt_table_widget_15_chart_4", chart4Data, true);
+
+ var chart5Data = [3, 23, 1, 19, 3, 17, 3, 9, 25, 4, 2, 18, 25, 3];
+ initChart(chart5, "#kt_table_widget_15_chart_5", chart5Data, true);
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_table_widget_15_chart_1",
+ chart1Data,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_table_widget_15_chart_2",
+ chart2Data,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_table_widget_15_chart_3",
+ chart3Data,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_table_widget_15_chart_4",
+ chart4Data,
+ chart4.rendered
+ );
+ initChart(
+ chart5,
+ "#kt_table_widget_15_chart_5",
+ chart5Data,
+ chart5.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTablesWidget15;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTablesWidget15.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTablesWidget16 = (function () {
+ var chart1 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart2 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart3 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart4 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart5 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart6 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart7 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart8 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart9 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart10 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart11 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart12 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart13 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart14 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart15 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart16 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart17 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart18 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart19 = {
+ self: null,
+ rendered: false,
+ };
+
+ var chart20 = {
+ self: null,
+ rendered: false,
+ };
+
+ // Private methods
+ var initChart = function (chart, toggle, selector, data, initByDefault) {
+ var element = document.querySelector(selector);
+
+ if (!element) {
+ return;
+ }
+
+ var height = parseInt(KTUtil.css(element, "height"));
+ var color = element.getAttribute("data-kt-chart-color");
+ var labelColor = KTUtil.getCssVariableValue("--bs-gray-800");
+ var strokeColor = KTUtil.getCssVariableValue("--bs-gray-300");
+ var baseColor = KTUtil.getCssVariableValue("--bs-" + color);
+ var lightColor = KTUtil.getCssVariableValue("--bs-body-bg");
+
+ var options = {
+ series: [
+ {
+ name: "Net Profit",
+ data: data,
+ },
+ ],
+ chart: {
+ fontFamily: "inherit",
+ type: "area",
+ height: height,
+ toolbar: {
+ show: false,
+ },
+ zoom: {
+ enabled: false,
+ },
+ sparkline: {
+ enabled: true,
+ },
+ },
+ plotOptions: {},
+ legend: {
+ show: false,
+ },
+ dataLabels: {
+ enabled: false,
+ },
+ fill: {
+ type: "solid",
+ opacity: 1,
+ },
+ stroke: {
+ curve: "smooth",
+ show: true,
+ width: 2,
+ colors: [baseColor],
+ },
+ xaxis: {
+ axisBorder: {
+ show: false,
+ },
+ axisTicks: {
+ show: false,
+ },
+ labels: {
+ show: false,
+ },
+ crosshairs: {
+ show: false,
+ position: "front",
+ stroke: {
+ color: strokeColor,
+ width: 1,
+ dashArray: 3,
+ },
+ },
+ tooltip: {
+ enabled: false,
+ },
+ },
+ yaxis: {
+ min: 0,
+ max: 60,
+ labels: {
+ show: false,
+ ontSize: "12px",
+ },
+ },
+ states: {
+ normal: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ hover: {
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ active: {
+ allowMultipleDataPointsSelection: false,
+ filter: {
+ type: "none",
+ value: 0,
+ },
+ },
+ },
+ tooltip: {
+ enabled: false,
+ },
+ colors: [lightColor],
+ markers: {
+ colors: [lightColor],
+ strokeColor: [baseColor],
+ strokeWidth: 3,
+ },
+ };
+
+ chart.self = new ApexCharts(element, options);
+ var tab = document.querySelector(toggle);
+
+ if (initByDefault === true) {
+ // Set timeout to properly get the parent elements width
+ setTimeout(function () {
+ chart.self.render();
+ chart.rendered = true;
+ }, 200);
+ }
+
+ tab.addEventListener("shown.bs.tab", function (event) {
+ if (chart.rendered === false) {
+ chart.self.render();
+ chart.rendered = true;
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ var chart1Data = [
+ 16, 10, 15, 21, 6, 11, 5, 23, 5, 11, 18, 7, 21, 13,
+ ];
+ initChart(
+ chart1,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_1",
+ chart1Data,
+ true
+ );
+
+ var chart2Data = [8, 5, 16, 3, 23, 16, 11, 15, 3, 11, 15, 7, 17, 9];
+ initChart(
+ chart2,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_2",
+ chart2Data,
+ true
+ );
+
+ var chart3Data = [8, 6, 16, 3, 23, 16, 11, 14, 3, 11, 15, 8, 17, 9];
+ initChart(
+ chart3,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_3",
+ chart3Data,
+ true
+ );
+
+ var chart4Data = [
+ 12, 5, 23, 12, 21, 9, 17, 20, 4, 24, 9, 13, 18, 9,
+ ];
+ initChart(
+ chart4,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_4",
+ chart4Data,
+ true
+ );
+
+ var chart5Data = [
+ 13, 10, 15, 21, 6, 11, 5, 21, 5, 12, 18, 7, 21, 13,
+ ];
+ initChart(
+ chart5,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_1",
+ chart5Data,
+ false
+ );
+
+ var chart6Data = [
+ 13, 5, 21, 12, 21, 9, 17, 20, 4, 23, 9, 17, 21, 7,
+ ];
+ initChart(
+ chart6,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_2",
+ chart6Data,
+ false
+ );
+
+ var chart7Data = [
+ 8, 10, 14, 21, 6, 31, 5, 21, 5, 11, 15, 7, 23, 13,
+ ];
+ initChart(
+ chart7,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_3",
+ chart7Data,
+ false
+ );
+
+ var chart8Data = [
+ 6, 10, 12, 21, 6, 11, 7, 23, 5, 12, 18, 7, 21, 15,
+ ];
+ initChart(
+ chart8,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_4",
+ chart8Data,
+ false
+ );
+
+ var chart9Data = [7, 10, 5, 21, 6, 11, 5, 23, 5, 11, 18, 7, 21, 13];
+ initChart(
+ chart9,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_1",
+ chart9Data,
+ false
+ );
+
+ var chart10Data = [8, 5, 16, 2, 19, 9, 17, 21, 4, 24, 4, 13, 21, 5];
+ initChart(
+ chart10,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_2",
+ chart10Data,
+ false
+ );
+
+ var chart11Data = [
+ 15, 10, 12, 21, 6, 11, 23, 11, 5, 12, 18, 7, 21, 15,
+ ];
+ initChart(
+ chart11,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_3",
+ chart11Data,
+ false
+ );
+
+ var chart12Data = [3, 9, 12, 23, 6, 11, 7, 23, 5, 12, 14, 7, 21, 8];
+ initChart(
+ chart12,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_4",
+ chart12Data,
+ false
+ );
+
+ var chart13Data = [
+ 9, 14, 15, 21, 8, 11, 5, 23, 5, 11, 18, 5, 23, 8,
+ ];
+ initChart(
+ chart13,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_1",
+ chart13Data,
+ false
+ );
+
+ var chart14Data = [
+ 7, 5, 23, 12, 21, 9, 17, 15, 4, 24, 9, 17, 21, 7,
+ ];
+ initChart(
+ chart14,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_2",
+ chart14Data,
+ false
+ );
+
+ var chart15Data = [
+ 8, 10, 14, 21, 6, 31, 8, 23, 5, 3, 14, 7, 21, 12,
+ ];
+ initChart(
+ chart15,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_3",
+ chart15Data,
+ false
+ );
+
+ var chart16Data = [
+ 6, 12, 12, 19, 6, 11, 7, 23, 5, 12, 18, 7, 21, 15,
+ ];
+ initChart(
+ chart16,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_4",
+ chart16Data,
+ false
+ );
+
+ var chart17Data = [
+ 5, 10, 15, 21, 6, 11, 5, 23, 5, 11, 17, 7, 21, 13,
+ ];
+ initChart(
+ chart17,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_1",
+ chart17Data,
+ false
+ );
+
+ var chart18Data = [
+ 4, 5, 23, 12, 21, 9, 17, 15, 4, 24, 9, 17, 21, 7,
+ ];
+ initChart(
+ chart18,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_2",
+ chart18Data,
+ false
+ );
+
+ var chart19Data = [
+ 7, 10, 14, 21, 6, 31, 5, 23, 5, 11, 15, 7, 21, 17,
+ ];
+ initChart(
+ chart19,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_3",
+ chart19Data,
+ false
+ );
+
+ var chart20Data = [
+ 3, 10, 12, 23, 6, 11, 7, 22, 5, 12, 18, 7, 21, 14,
+ ];
+ initChart(
+ chart20,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_4",
+ chart20Data,
+ false
+ );
+
+ // Update chart on theme mode change
+ KTThemeMode.on("kt.thememode.change", function () {
+ if (chart1.rendered) {
+ chart1.self.destroy();
+ }
+
+ if (chart2.rendered) {
+ chart2.self.destroy();
+ }
+
+ if (chart3.rendered) {
+ chart3.self.destroy();
+ }
+
+ if (chart4.rendered) {
+ chart4.self.destroy();
+ }
+
+ if (chart5.rendered) {
+ chart5.self.destroy();
+ }
+
+ if (chart6.rendered) {
+ chart6.self.destroy();
+ }
+
+ if (chart7.rendered) {
+ chart7.self.destroy();
+ }
+
+ if (chart8.rendered) {
+ chart8.self.destroy();
+ }
+
+ if (chart9.rendered) {
+ chart9.self.destroy();
+ }
+
+ if (chart10.rendered) {
+ chart10.self.destroy();
+ }
+
+ if (chart11.rendered) {
+ chart11.self.destroy();
+ }
+
+ if (chart12.rendered) {
+ chart12.self.destroy();
+ }
+
+ if (chart13.rendered) {
+ chart13.self.destroy();
+ }
+
+ if (chart14.rendered) {
+ chart14.self.destroy();
+ }
+
+ if (chart15.rendered) {
+ chart15.self.destroy();
+ }
+
+ if (chart16.rendered) {
+ chart16.self.destroy();
+ }
+
+ if (chart17.rendered) {
+ chart17.self.destroy();
+ }
+
+ if (chart18.rendered) {
+ chart18.self.destroy();
+ }
+
+ if (chart19.rendered) {
+ chart19.self.destroy();
+ }
+
+ if (chart20.rendered) {
+ chart20.self.destroy();
+ }
+
+ initChart(
+ chart1,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_1",
+ chart1Data,
+ chart1.rendered
+ );
+ initChart(
+ chart2,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_2",
+ chart2Data,
+ chart2.rendered
+ );
+ initChart(
+ chart3,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_3",
+ chart3Data,
+ chart3.rendered
+ );
+ initChart(
+ chart4,
+ "#kt_stats_widget_16_tab_link_1",
+ "#kt_table_widget_16_chart_1_4",
+ chart4Data,
+ chart4.rendered
+ );
+
+ initChart(
+ chart5,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_1",
+ chart5Data,
+ chart5.rendered
+ );
+ initChart(
+ chart6,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_2",
+ chart6Data,
+ chart6.rendered
+ );
+ initChart(
+ chart7,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_3",
+ chart7Data,
+ chart7.rendered
+ );
+ initChart(
+ chart8,
+ "#kt_stats_widget_16_tab_link_2",
+ "#kt_table_widget_16_chart_2_4",
+ chart8Data,
+ chart8.rendered
+ );
+
+ initChart(
+ chart9,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_1",
+ chart9Data,
+ chart9.rendered
+ );
+ initChart(
+ chart10,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_2",
+ chart10Data,
+ chart10.rendered
+ );
+ initChart(
+ chart11,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_3",
+ chart11Data,
+ chart11.rendered
+ );
+ initChart(
+ chart12,
+ "#kt_stats_widget_16_tab_link_3",
+ "#kt_table_widget_16_chart_3_4",
+ chart12Data,
+ chart12.rendered
+ );
+
+ initChart(
+ chart13,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_1",
+ chart13Data,
+ chart13.rendered
+ );
+ initChart(
+ chart14,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_2",
+ chart14Data,
+ chart14.rendered
+ );
+ initChart(
+ chart15,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_3",
+ chart15Data,
+ chart15.rendered
+ );
+ initChart(
+ chart16,
+ "#kt_stats_widget_16_tab_link_4",
+ "#kt_table_widget_16_chart_4_4",
+ chart16Data,
+ chart16.rendered
+ );
+
+ initChart(
+ chart17,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_1",
+ chart17Data,
+ chart17.rendered
+ );
+ initChart(
+ chart18,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_2",
+ chart18Data,
+ chart18.rendered
+ );
+ initChart(
+ chart19,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_3",
+ chart19Data,
+ chart19.rendered
+ );
+ initChart(
+ chart20,
+ "#kt_stats_widget_16_tab_link_5",
+ "#kt_table_widget_16_chart_5_4",
+ chart20Data,
+ chart20.rendered
+ );
+ });
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTablesWidget16;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTablesWidget16.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTablesWidget3 = (function () {
+ var table;
+ var datatable;
+
+ // Private methods
+ const initDatatable = () => {
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ info: false,
+ order: [],
+ paging: false,
+ pageLength: false,
+ });
+ };
+
+ const handleTabStates = () => {
+ const tabs = document.querySelector(
+ '[data-kt-table-widget-3="tabs_nav"]'
+ );
+ const tabButtons = tabs.querySelectorAll(
+ '[data-kt-table-widget-3="tab"]'
+ );
+ const tabClasses = ["border-bottom", "border-3", "border-primary"];
+
+ tabButtons.forEach((tab) => {
+ tab.addEventListener("click", (e) => {
+ // Get datatable filter value
+ const value = tab.getAttribute("data-kt-table-widget-3-value");
+ tabButtons.forEach((t) => {
+ t.classList.remove(...tabClasses);
+ t.classList.add("text-muted");
+ });
+
+ tab.classList.remove("text-muted");
+ tab.classList.add(...tabClasses);
+
+ // Filter datatable
+ if (value === "Show All") {
+ datatable.search("").draw();
+ } else {
+ datatable.search(value).draw();
+ }
+ });
+ });
+ };
+
+ // Handle status filter dropdown
+ const handleStatusFilter = () => {
+ const select = document.querySelector(
+ '[data-kt-table-widget-3="filter_status"]'
+ );
+
+ $(select).on("select2:select", function (e) {
+ const value = $(this).val();
+ if (value === "Show All") {
+ datatable.search("").draw();
+ } else {
+ datatable.search(value).draw();
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector("#kt_widget_table_3");
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ handleTabStates();
+ handleStatusFilter();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTablesWidget3;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTablesWidget3.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTablesWidget4 = (function () {
+ var table;
+ var datatable;
+ var template;
+
+ // Private methods
+ const initDatatable = () => {
+ // Get subtable template
+ const subtable = document.querySelector(
+ '[data-kt-table-widget-4="subtable_template"]'
+ );
+ template = subtable.cloneNode(true);
+ template.classList.remove("d-none");
+
+ // Remove subtable template
+ subtable.parentNode.removeChild(subtable);
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ info: false,
+ order: [],
+ lengthChange: false,
+ pageLength: 6,
+ ordering: false,
+ paging: false,
+ columnDefs: [
+ { orderable: false, targets: 0 }, // Disable ordering on column 0 (checkbox)
+ { orderable: false, targets: 6 }, // Disable ordering on column 6 (actions)
+ ],
+ });
+
+ // Re-init functions on every table re-draw -- more info: https://datatables.net/reference/event/draw
+ datatable.on("draw", function () {
+ resetSubtable();
+ handleActionButton();
+ });
+ };
+
+ // Search Datatable --- official docs reference: https://datatables.net/reference/api/search()
+ var handleSearchDatatable = () => {
+ const filterSearch = document.querySelector(
+ '[data-kt-table-widget-4="search"]'
+ );
+ filterSearch.addEventListener("keyup", function (e) {
+ datatable.search(e.target.value).draw();
+ });
+ };
+
+ // Handle status filter
+ const handleStatusFilter = () => {
+ const select = document.querySelector(
+ '[data-kt-table-widget-4="filter_status"]'
+ );
+
+ $(select).on("select2:select", function (e) {
+ const value = $(this).val();
+ if (value === "Show All") {
+ datatable.search("").draw();
+ } else {
+ datatable.search(value).draw();
+ }
+ });
+ };
+
+ // Subtable data sample
+ const data = [
+ {
+ image: "76",
+ name: "Go Pro 8",
+ description: "Latest version of Go Pro.",
+ cost: "500.00",
+ qty: "1",
+ total: "500.00",
+ stock: "12",
+ },
+ {
+ image: "60",
+ name: "Bose Earbuds",
+ description: "Top quality earbuds from Bose.",
+ cost: "300.00",
+ qty: "1",
+ total: "300.00",
+ stock: "8",
+ },
+ {
+ image: "211",
+ name: "Dry-fit Sports T-shirt",
+ description: "Comfortable sportswear.",
+ cost: "89.00",
+ qty: "1",
+ total: "89.00",
+ stock: "18",
+ },
+ {
+ image: "21",
+ name: "Apple Airpod 3",
+ description: "Apple's latest earbuds.",
+ cost: "200.00",
+ qty: "2",
+ total: "400.00",
+ stock: "32",
+ },
+ {
+ image: "83",
+ name: "Nike Pumps",
+ description: "Apple's latest headphones.",
+ cost: "200.00",
+ qty: "1",
+ total: "200.00",
+ stock: "8",
+ },
+ ];
+
+ // Handle action button
+ const handleActionButton = () => {
+ const buttons = document.querySelectorAll(
+ '[data-kt-table-widget-4="expand_row"]'
+ );
+
+ // Sample row items counter --- for demo purpose only, remove this variable in your project
+ const rowItems = [3, 1, 3, 1, 2, 1];
+
+ buttons.forEach((button, index) => {
+ button.addEventListener("click", (e) => {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+
+ const row = button.closest("tr");
+ const rowClasses = ["isOpen", "border-bottom-0"];
+
+ // Get total number of items to generate --- for demo purpose only, remove this code snippet in your project
+ const demoData = [];
+ for (var j = 0; j < rowItems[index]; j++) {
+ demoData.push(data[j]);
+ }
+ // End of generating demo data
+
+ // Handle subtable expanded state
+ if (row.classList.contains("isOpen")) {
+ // Remove all subtables from current order row
+ while (
+ row.nextSibling &&
+ row.nextSibling.getAttribute(
+ "data-kt-table-widget-4"
+ ) === "subtable_template"
+ ) {
+ row.nextSibling.parentNode.removeChild(row.nextSibling);
+ }
+ row.classList.remove(...rowClasses);
+ button.classList.remove("active");
+ } else {
+ populateTemplate(demoData, row);
+ row.classList.add(...rowClasses);
+ button.classList.add("active");
+ }
+ });
+ });
+ };
+
+ // Populate template with content/data -- content/data can be replaced with relevant data from database or API
+ const populateTemplate = (data, target) => {
+ data.forEach((d, index) => {
+ // Clone template node
+ const newTemplate = template.cloneNode(true);
+
+ // Stock badges
+ const lowStock = `Low Stock
`;
+ const inStock = `In Stock
`;
+
+ // Select data elements
+ const image = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_image"]'
+ );
+ const name = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_name"]'
+ );
+ const description = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_description"]'
+ );
+ const cost = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_cost"]'
+ );
+ const qty = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_qty"]'
+ );
+ const total = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_total"]'
+ );
+ const stock = newTemplate.querySelector(
+ '[data-kt-table-widget-4="template_stock"]'
+ );
+
+ // Populate elements with data
+ const imageSrc = image.getAttribute("data-kt-src-path");
+ image.setAttribute("src", imageSrc + d.image + ".gif");
+ name.innerText = d.name;
+ description.innerText = d.description;
+ cost.innerText = d.cost;
+ qty.innerText = d.qty;
+ total.innerText = d.total;
+ if (d.stock > 10) {
+ stock.innerHTML = inStock;
+ } else {
+ stock.innerHTML = lowStock;
+ }
+
+ // New template border controller
+ // When only 1 row is available
+ if (data.length === 1) {
+ //let borderClasses = ['rounded', 'rounded-end-0'];
+ //newTemplate.querySelectorAll('td')[0].classList.add(...borderClasses);
+ //borderClasses = ['rounded', 'rounded-start-0'];
+ //newTemplate.querySelectorAll('td')[4].classList.add(...borderClasses);
+ // Remove bottom border
+ //newTemplate.classList.add('border-bottom-0');
+ } else {
+ // When multiple rows detected
+ if (index === data.length - 1) {
+ // first row
+ //let borderClasses = ['rounded-start', 'rounded-bottom-0'];
+ // newTemplate.querySelectorAll('td')[0].classList.add(...borderClasses);
+ //borderClasses = ['rounded-end', 'rounded-bottom-0'];
+ //newTemplate.querySelectorAll('td')[4].classList.add(...borderClasses);
+ }
+ if (index === 0) {
+ // last row
+ //let borderClasses = ['rounded-start', 'rounded-top-0'];
+ //newTemplate.querySelectorAll('td')[0].classList.add(...borderClasses);
+ //borderClasses = ['rounded-end', 'rounded-top-0'];
+ //newTemplate.querySelectorAll('td')[4].classList.add(...borderClasses);
+ // Remove bottom border on last row
+ //newTemplate.classList.add('border-bottom-0');
+ }
+ }
+
+ // Insert new template into table
+ const tbody = table.querySelector("tbody");
+ tbody.insertBefore(newTemplate, target.nextSibling);
+ });
+ };
+
+ // Reset subtable
+ const resetSubtable = () => {
+ const subtables = document.querySelectorAll(
+ '[data-kt-table-widget-4="subtable_template"]'
+ );
+ subtables.forEach((st) => {
+ st.parentNode.removeChild(st);
+ });
+
+ const rows = table.querySelectorAll("tbody tr");
+ rows.forEach((r) => {
+ r.classList.remove("isOpen");
+ if (r.querySelector('[data-kt-table-widget-4="expand_row"]')) {
+ r.querySelector(
+ '[data-kt-table-widget-4="expand_row"]'
+ ).classList.remove("active");
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector("#kt_table_widget_4_table");
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ handleSearchDatatable();
+ handleStatusFilter();
+ handleActionButton();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTablesWidget4;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTablesWidget4.init();
+});
+
+("use strict");
+
+// Class definition
+var KTTablesWidget5 = (function () {
+ var table;
+ var datatable;
+
+ // Private methods
+ const initDatatable = () => {
+ // Set date data order
+ const tableRows = table.querySelectorAll("tbody tr");
+
+ tableRows.forEach((row) => {
+ const dateRow = row.querySelectorAll("td");
+ const realDate = moment(
+ dateRow[2].innerHTML,
+ "MMM DD, YYYY"
+ ).format(); // select date from 3rd column in table
+ dateRow[2].setAttribute("data-order", realDate);
+ });
+
+ // Init datatable --- more info on datatables: https://datatables.net/manual/
+ datatable = $(table).DataTable({
+ info: false,
+ order: [],
+ lengthChange: false,
+ pageLength: 6,
+ paging: false,
+ columnDefs: [
+ { orderable: false, targets: 1 }, // Disable ordering on column 1 (product id)
+ ],
+ });
+ };
+
+ // Handle status filter
+ const handleStatusFilter = () => {
+ const select = document.querySelector(
+ '[data-kt-table-widget-5="filter_status"]'
+ );
+
+ $(select).on("select2:select", function (e) {
+ const value = $(this).val();
+ if (value === "Show All") {
+ datatable.search("").draw();
+ } else {
+ datatable.search(value).draw();
+ }
+ });
+ };
+
+ // Public methods
+ return {
+ init: function () {
+ table = document.querySelector("#kt_table_widget_5_table");
+
+ if (!table) {
+ return;
+ }
+
+ initDatatable();
+ handleStatusFilter();
+ },
+ };
+})();
+
+// Webpack support
+if (typeof module !== "undefined") {
+ module.exports = KTTablesWidget5;
+}
+
+// On document ready
+KTUtil.onDOMContentLoaded(function () {
+ KTTablesWidget5.init();
+});
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/media/.DS_Store
new file mode 100644
index 0000000..10b0b1b
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/media/auth/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/404-error-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/404-error-dark.png
new file mode 100644
index 0000000..43af447
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/404-error-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/404-error.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/404-error.png
new file mode 100644
index 0000000..5e8542f
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/404-error.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/500-error-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/500-error-dark.png
new file mode 100644
index 0000000..00c1da1
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/500-error-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/500-error.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/500-error.png
new file mode 100644
index 0000000..923294e
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/500-error.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/505-error-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/505-error-dark.png
new file mode 100644
index 0000000..4b202a9
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/505-error-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/505-error.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/505-error.png
new file mode 100644
index 0000000..c839fd2
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/505-error.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/agency-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/agency-dark.png
new file mode 100644
index 0000000..2e32b40
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/agency-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/agency.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/agency.png
new file mode 100644
index 0000000..fefddd5
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/agency.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg1-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg1-dark.jpg
new file mode 100644
index 0000000..7d6fa9d
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg1-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg1.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg1.jpg
new file mode 100644
index 0000000..a305a07
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg1.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg10-dark.jpeg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg10-dark.jpeg
new file mode 100644
index 0000000..5c73472
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg10-dark.jpeg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg10.jpeg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg10.jpeg
new file mode 100644
index 0000000..5e5040f
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg10.jpeg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg11.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg11.png
new file mode 100644
index 0000000..579ba12
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg11.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg2-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg2-dark.jpg
new file mode 100644
index 0000000..8f215d0
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg2-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg2.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg2.jpg
new file mode 100644
index 0000000..801c893
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg2.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg3-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg3-dark.jpg
new file mode 100644
index 0000000..af52b55
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg3-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg3.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg3.jpg
new file mode 100644
index 0000000..582b667
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg3.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg4-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg4-dark.jpg
new file mode 100644
index 0000000..13d1d2d
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg4-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg4.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg4.png
new file mode 100644
index 0000000..175b5b1
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg4.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg5-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg5-dark.jpg
new file mode 100644
index 0000000..4c62196
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg5-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg5.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg5.jpg
new file mode 100644
index 0000000..c8bd5b3
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg5.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg6-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg6-dark.jpg
new file mode 100644
index 0000000..04bcc3e
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg6-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg6.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg6.jpg
new file mode 100644
index 0000000..fe2b508
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg6.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg7-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg7-dark.jpg
new file mode 100644
index 0000000..2a3c51c
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg7-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg7.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg7.jpg
new file mode 100644
index 0000000..de6d180
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg7.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg8-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg8-dark.jpg
new file mode 100644
index 0000000..e6bf942
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg8-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg8.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg8.jpg
new file mode 100644
index 0000000..2cc808e
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg8.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg9-dark.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg9-dark.jpg
new file mode 100644
index 0000000..befbba9
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg9-dark.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/bg9.jpg b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg9.jpg
new file mode 100644
index 0000000..c6a390f
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/bg9.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/chart-graph-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/chart-graph-dark.png
new file mode 100644
index 0000000..f3dd735
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/chart-graph-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/chart-graph.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/chart-graph.png
new file mode 100644
index 0000000..7770796
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/chart-graph.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/membership-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/membership-dark.png
new file mode 100644
index 0000000..d5ef702
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/membership-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/membership.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/membership.png
new file mode 100644
index 0000000..e5be8d3
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/membership.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/ok-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/ok-dark.png
new file mode 100644
index 0000000..d423365
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/ok-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/ok.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/ok.png
new file mode 100644
index 0000000..c02b046
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/ok.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/please-verify-your-email-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/please-verify-your-email-dark.png
new file mode 100644
index 0000000..e25dd76
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/please-verify-your-email-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/please-verify-your-email.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/please-verify-your-email.png
new file mode 100644
index 0000000..85e333c
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/please-verify-your-email.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/welcome-dark.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/welcome-dark.png
new file mode 100644
index 0000000..ef8cc86
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/welcome-dark.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/auth/welcome.png b/think-backend.greaterchiangmai.com/public/assets/media/auth/welcome.png
new file mode 100644
index 0000000..70fe04b
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/auth/welcome.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/avatars/blank.png b/think-backend.greaterchiangmai.com/public/assets/media/avatars/blank.png
new file mode 100644
index 0000000..a8598bc
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/avatars/blank.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/bg.jpg b/think-backend.greaterchiangmai.com/public/assets/media/bg.jpg
new file mode 100644
index 0000000..9f95637
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/bg.jpg differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/logos/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/media/logos/.DS_Store
new file mode 100644
index 0000000..17dd35f
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/logos/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/logos/favicon.ico b/think-backend.greaterchiangmai.com/public/assets/media/logos/favicon.ico
new file mode 100644
index 0000000..5f7593c
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/logos/favicon.ico differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/logos/footer-logo.png b/think-backend.greaterchiangmai.com/public/assets/media/logos/footer-logo.png
new file mode 100644
index 0000000..124217c
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/logos/footer-logo.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/logos/logo.png b/think-backend.greaterchiangmai.com/public/assets/media/logos/logo.png
new file mode 100644
index 0000000..d01c814
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/logos/logo.png differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/media/svg/.DS_Store
new file mode 100644
index 0000000..8d39fc5
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/svg/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/ai.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/ai.svg
new file mode 100644
index 0000000..a8d2dbf
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/ai.svg
@@ -0,0 +1,9 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/blank-image-dark.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/blank-image-dark.svg
new file mode 100644
index 0000000..7b8f7c0
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/blank-image-dark.svg
@@ -0,0 +1,13 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/blank-image.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/blank-image.svg
new file mode 100644
index 0000000..1c19b8e
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/blank-image.svg
@@ -0,0 +1,13 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/css.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/css.svg
new file mode 100644
index 0000000..b9af7b9
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/css.svg
@@ -0,0 +1,10 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/doc.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/doc.svg
new file mode 100644
index 0000000..82100f2
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/doc.svg
@@ -0,0 +1,10 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/folder-document.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/folder-document.svg
new file mode 100644
index 0000000..c8d488b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/folder-document.svg
@@ -0,0 +1,3 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/pdf.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/pdf.svg
new file mode 100644
index 0000000..4003c09
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/pdf.svg
@@ -0,0 +1,10 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/sql.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/sql.svg
new file mode 100644
index 0000000..4b78b60
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/sql.svg
@@ -0,0 +1,10 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/tif.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/tif.svg
new file mode 100644
index 0000000..cdb1eb5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/tif.svg
@@ -0,0 +1,10 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/upload.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/upload.svg
new file mode 100644
index 0000000..330331d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/upload.svg
@@ -0,0 +1,5 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/files/xml.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/xml.svg
new file mode 100644
index 0000000..dba88da
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/files/xml.svg
@@ -0,0 +1,10 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/.DS_Store
new file mode 100644
index 0000000..700f942
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/1-dark.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/1-dark.svg
new file mode 100644
index 0000000..cb08bea
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/1-dark.svg
@@ -0,0 +1,9 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/1.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/1.svg
new file mode 100644
index 0000000..e9c2c19
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/1.svg
@@ -0,0 +1,9 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/2-dark.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/2-dark.svg
new file mode 100644
index 0000000..8d4fceb
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/2-dark.svg
@@ -0,0 +1,9 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/2.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/2.svg
new file mode 100644
index 0000000..e44398c
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/2.svg
@@ -0,0 +1,9 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/3-dark.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/3-dark.svg
new file mode 100644
index 0000000..535f33a
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/3-dark.svg
@@ -0,0 +1,11 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/3.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/3.svg
new file mode 100644
index 0000000..413b79d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/3.svg
@@ -0,0 +1,11 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/4.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/4.svg
new file mode 100644
index 0000000..bf60722
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/4.svg
@@ -0,0 +1,8 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/5.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/5.svg
new file mode 100644
index 0000000..8ed35f3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/5.svg
@@ -0,0 +1,8 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/6.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/6.svg
new file mode 100644
index 0000000..2f87b2f
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/6.svg
@@ -0,0 +1,9 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/7.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/7.svg
new file mode 100644
index 0000000..3603f77
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/7.svg
@@ -0,0 +1,8 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/8.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/8.svg
new file mode 100644
index 0000000..21e02dc
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/easy/8.svg
@@ -0,0 +1,161 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/landing.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/landing.svg
new file mode 100644
index 0000000..1baba8d
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/landing.svg
@@ -0,0 +1,50 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/illustration-realestate.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/illustration-realestate.svg
new file mode 100644
index 0000000..1451727
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/illustration-realestate.svg
@@ -0,0 +1,100 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/question.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/question.svg
new file mode 100644
index 0000000..ee653aa
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/question.svg
@@ -0,0 +1,87 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/volume-1-dark.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/volume-1-dark.svg
new file mode 100644
index 0000000..834c3a3
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/volume-1-dark.svg
@@ -0,0 +1,140 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/volume-1.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/volume-1.svg
new file mode 100644
index 0000000..e72aff5
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/illustrations/sigma/volume-1.svg
@@ -0,0 +1,146 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/gaming.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/gaming.svg
new file mode 100644
index 0000000..cf84d17
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/gaming.svg
@@ -0,0 +1,39 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/gloves.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/gloves.svg
new file mode 100644
index 0000000..d24976b
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/gloves.svg
@@ -0,0 +1,17 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/shoes.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/shoes.svg
new file mode 100644
index 0000000..337a776
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/shoes.svg
@@ -0,0 +1,14 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/t-shirt.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/t-shirt.svg
new file mode 100644
index 0000000..bbb4ac7
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/t-shirt.svg
@@ -0,0 +1,15 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/watch.svg b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/watch.svg
new file mode 100644
index 0000000..dca4585
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/media/svg/products-categories/watch.svg
@@ -0,0 +1,16 @@
+
diff --git a/think-backend.greaterchiangmai.com/public/assets/plugins/.DS_Store b/think-backend.greaterchiangmai.com/public/assets/plugins/.DS_Store
new file mode 100644
index 0000000..9671470
Binary files /dev/null and b/think-backend.greaterchiangmai.com/public/assets/plugins/.DS_Store differ
diff --git a/think-backend.greaterchiangmai.com/public/assets/plugins/custom/ckeditor/ckeditor-balloon-block.bundle.js b/think-backend.greaterchiangmai.com/public/assets/plugins/custom/ckeditor/ckeditor-balloon-block.bundle.js
new file mode 100644
index 0000000..6eb5790
--- /dev/null
+++ b/think-backend.greaterchiangmai.com/public/assets/plugins/custom/ckeditor/ckeditor-balloon-block.bundle.js
@@ -0,0 +1,7 @@
+!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 of %1",Aquamarine:"Aquamarine",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold","Break text":"Break text","Bulleted List":"Bulleted List",Cancel:"Cancel","Cannot determine a category for the uploaded file.":"Cannot determine a category for the uploaded file.","Cannot upload file:":"Cannot upload file:","Caption for image: %0":"Caption for image: %0","Caption for the image":"Caption for the image","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Choose heading":"Choose heading",Column:"Column","Could not insert image at the current position.":"Could not insert image at the current position.","Could not obtain resized image URL.":"Could not obtain resized image URL.","Decrease indent":"Decrease indent","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Downloadable:"Downloadable","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Edit link":"Edit link","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar","Editor editing area: %0":"Editor editing area: %0","Editor toolbar":"Editor toolbar","Enter image caption":"Enter image caption","Full size image":"Full size image",Green:"Green",Grey:"Grey","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6","Image toolbar":"Image toolbar","image widget":"image widget","In line":"In line","Increase indent":"Increase indent","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image or file":"Insert image or file","Insert media":"Insert media","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table","Inserting image failed":"Inserting image failed",Italic:"Italic","Left aligned image":"Left aligned image","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey",Link:"Link","Link URL":"Link URL","Media URL":"Media URL","media widget":"media widget","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells",Next:"Next","Numbered List":"Numbered List","Open file manager":"Open file manager","Open in a new tab":"Open in a new tab","Open link in new tab":"Open link in new tab","Open media in new tab":"Open media in new tab",Orange:"Orange",Paragraph:"Paragraph","Paste the media URL in the input.":"Paste the media URL in the input.",Previous:"Previous",Purple:"Purple",Red:"Red",Redo:"Redo","Rich Text Editor":"Rich Text Editor","Rich Text Editor. Editing area: %0":"Rich Text Editor. Editing area: %0","Right aligned image":"Right aligned image",Row:"Row",Save:"Save","Select all":"Select all","Select column":"Select column","Select row":"Select row","Selecting resized image failed":"Selecting resized image failed","Show more items":"Show more items","Side image":"Side image","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically","Table toolbar":"Table toolbar","Text alternative":"Text alternative","The URL must not be empty.":"The URL must not be empty.","This link has no URL":"This link has no URL","This media URL is not supported.":"This media URL is not supported.","Tip: Paste the URL into the content to embed faster.":"Tip: Paste the URL into the content to embed faster.","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on",Turquoise:"Turquoise",Undo:"Undo",Unlink:"Unlink","Upload failed":"Upload failed","Upload in progress":"Upload in progress",White:"White","Widget toolbar":"Widget toolbar","Wrap text":"Wrap text",Yellow:"Yellow"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})),
+/*!
+ * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
+ * For licensing, see LICENSE.md.
+ */
+function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.BalloonEditor=e():t.BalloonEditor=e()}(self,(()=>(()=>{"use strict";var t={3062:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./../ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const a=s},7657:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-block-toolbar-button{transform:translateX(calc(var(--ck-spacing-large)*-1))}","",{version:3,sources:["webpack://./theme/theme.css"],names:[],mappings:"AAMA,4BACC,sDACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Give the block toolbar button some space, moving it a few pixels away from the editable area. */\n.ck.ck-block-toolbar-button {\n\ttransform: translateX( calc(-1 * var(--ck-spacing-large)) );\n}\n"],sourceRoot:""}]);const a=s},903:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}',"",{version:3,sources:["webpack://./../ckeditor5-clipboard/theme/clipboard.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CCzBF,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CA2DF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border)\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(var(--ck-clipboard-drop-target-dot-height) * -.5);\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t// Horizontal drop target (between blocks).\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\theight: 0;\n\t\tmargin: 0;\n\t\ttext-align: initial;\n\n\t\t& .ck-clipboard-drop-target__line {\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t\theight: 0;\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-top: -1px;\n\n\t\t\t&::before {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) 0 var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: calc(-1 * var(--ck-clipboard-drop-target-dot-size));\n\t\t\t\ttop: 0;\n\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t\t\tborder-width: var(--ck-clipboard-drop-target-dot-size) calc(2 * var(--ck-clipboard-drop-target-dot-size)) var(--ck-clipboard-drop-target-dot-size) 0;\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\t*/\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n'],sourceRoot:""}]);const a=s},4717:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/placeholder.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t&::before {\n\t\tcursor: text;\n\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t}\n}\n"],sourceRoot:""}]);const a=s},9315:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const a=s},8733:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./../ckeditor5-heading/theme/heading.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3508:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image-inline.ck-widget_selected,.ck.ck-editor__editable .image.ck-widget_selected{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBAuBD,CAbC,uBAEC,aAAc,CAGd,aAAc,CAGd,cAAe,CAGf,cACD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAWA,2GACC,SAUD,CAHC,qEACC,YACD,CAOA,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of .\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\n\t/*\n\t * Make sure the selected inline image always stays on top of its siblings.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t */\n\t& .image.ck-widget_selected {\n\t\tz-index: 1;\n\t}\n\n\t& .image-inline.ck-widget_selected {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the native browser selection style is not displayed.\n\t\t * Inline image widgets have their own styles for the selected state and\n\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t */\n\t\t& ::selection {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},2640:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highligted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highligted-background)}to{background-color:var(--ck-color-image-caption-background)}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagecaption.css"],names:[],mappings:"AAKA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,mDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAMD,CAGA,qEACC,iDACD,CAEA,sCACC,GACC,oEACD,CAEA,GACC,yDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-image-caption-highligted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .image > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: bottom;\n\tword-break: break-word;\n\tcolor: var(--ck-color-image-caption-text);\n\tbackground-color: var(--ck-color-image-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\n\tanimation: ck-image-caption-highlight .6s ease-out;\n}\n\n@keyframes ck-image-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-image-caption-highligted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-image-caption-background);\n\t}\n}\n"],sourceRoot:""}]);const a=s},5083:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagestyle.css"],names:[],mappings:"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\tconfirming successful application of the style if image width exceeds the editor's size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t& .image-style-block-align-left,\n\t& .image-style-block-align-right {\n\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t}\n\n\t/* Allows displaying multiple floating images in the same line.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t& .image-style-align-left,\n\t& .image-style-align-right {\n\t\tclear: none;\n\t}\n\n\t& .image-style-side {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t\tmax-width: 50%;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-block-align-right {\n\t\tmargin-right: 0;\n\t\tmargin-left: auto;\n\t}\n\n\t& .image-style-block-align-left {\n\t\tmargin-left: 0;\n\t\tmargin-right: auto;\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image-style-align-left,\n\t& p + .image-style-align-right,\n\t& p + .image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4036:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',"",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadicon.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],names:[],mappings:"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFA0BD,CAtBC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},3773:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',"",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadloader.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],names:[],mappings:"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n"],sourceRoot:""}]);const a=s},3689:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadprogress.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],names:[],mappings:"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBACD,CAID,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n"],sourceRoot:""}]);const a=s},1905:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/textalternativeform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9773:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck .ck-link_selected{background:var(--ck-color-link-selected-background)}.ck .ck-link_selected span.image-inline{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background)}.ck .ck-fake-link-selection{background:var(--ck-color-link-fake-selection)}.ck .ck-fake-link-selection_collapsed{border-right:1px solid var(--ck-color-base-text);height:100%;margin-right:-1px;outline:1px solid hsla(0,0%,100%,.5)}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-link/link.css"],names:[],mappings:"AAMA,sBACC,mDAMD,CAHC,wCACC,yFACD,CAOD,4BACC,8CACD,CAGA,sCAEC,gDAAiD,CADjD,WAAY,CAEZ,iBAAkB,CAClB,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Class added to span element surrounding currently selected link. */\n.ck .ck-link_selected {\n\tbackground: var(--ck-color-link-selected-background);\n\n\t/* Give linked inline images some outline to let the user know they are also part of the link. */\n\t& span.image-inline {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-link-selected-background);\n\t}\n}\n\n/*\n * Classes used by the "fake visual selection" displayed in the content when an input\n * in the link UI has focus (the browser does not render the native selection in this state).\n */\n.ck .ck-fake-link-selection {\n\tbackground: var(--ck-color-link-fake-selection);\n}\n\n/* A collapsed fake visual selection. */\n.ck .ck-fake-link-selection_collapsed {\n\theight: 100%;\n\tborder-right: 1px solid var(--ck-color-base-text);\n\tmargin-right: -1px;\n\toutline: solid 1px hsla(0, 0%, 100%, .5);\n}\n'],sourceRoot:""}]);const a=s},2347:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-link-actions{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-link-actions .ck-link-actions__preview{display:inline-block}.ck.ck-link-actions .ck-link-actions__preview .ck-button__label{overflow:hidden}@media screen and (max-width:600px){.ck.ck-link-actions{flex-wrap:wrap}.ck.ck-link-actions .ck-link-actions__preview{flex-basis:100%}.ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){flex-basis:50%}}.ck.ck-link-actions .ck-button.ck-link-actions__preview{padding-left:0;padding-right:0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{color:var(--ck-color-link-default);cursor:pointer;max-width:var(--ck-input-width);min-width:3em;padding:0 var(--ck-spacing-medium);text-align:center;text-overflow:ellipsis}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label:hover{text-decoration:underline}.ck.ck-link-actions .ck-button.ck-link-actions__preview,.ck.ck-link-actions .ck-button.ck-link-actions__preview:active,.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus,.ck.ck-link-actions .ck-button.ck-link-actions__preview:hover{background:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:active{box-shadow:none}.ck.ck-link-actions .ck-button.ck-link-actions__preview:focus .ck-button__label{text-decoration:underline}[dir=ltr] .ck.ck-link-actions .ck-button:not(:first-child),[dir=rtl] .ck.ck-link-actions .ck-button:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-link-actions .ck-button.ck-link-actions__preview{margin:var(--ck-spacing-standard) var(--ck-spacing-standard) 0}.ck.ck-link-actions .ck-button.ck-link-actions__preview .ck-button__label{max-width:100%;min-width:0}[dir=ltr] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview),[dir=rtl] .ck.ck-link-actions .ck-button:not(.ck-link-actions__preview){margin-left:0}}","",{version:3,sources:["webpack://./../ckeditor5-link/theme/linkactions.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-link/linkactions.css"],names:[],mappings:"AAOA,oBACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,8CACC,oBAKD,CAHC,gEACC,eACD,CCXD,oCDCD,oBAcE,cAUF,CARE,8CACC,eACD,CAEA,8DACC,cACD,CCrBD,CCIA,wDACC,cAAe,CACf,eAmCD,CAjCC,0EAEC,kCAAmC,CAEnC,cAAe,CAIf,+BAAgC,CAChC,aAAc,CARd,kCAAmC,CASnC,iBAAkB,CAPlB,sBAYD,CAHC,gFACC,yBACD,CAGD,mPAIC,eACD,CAEA,+DACC,eACD,CAGC,gFACC,yBACD,CAWD,qHACC,sCACD,CDtDD,oCC0DC,wDACC,8DAMD,CAJC,0EAEC,cAAe,CADf,WAED,CAGD,gJAME,aAEF,CDzED",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-link-actions__preview {\n\t\tdisplay: inline-block;\n\n\t\t& .ck-button__label {\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-link-actions__preview {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_unselectable.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-actions {\n\t& .ck-button.ck-link-actions__preview {\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\n\t\t& .ck-button__label {\n\t\t\tpadding: 0 var(--ck-spacing-medium);\n\t\t\tcolor: var(--ck-color-link-default);\n\t\t\ttext-overflow: ellipsis;\n\t\t\tcursor: pointer;\n\n\t\t\t/* Match the box model of the link editor form\'s input so the balloon\n\t\t\tdoes not change width when moving between actions and the form. */\n\t\t\tmax-width: var(--ck-input-width);\n\t\t\tmin-width: 3em;\n\t\t\ttext-align: center;\n\n\t\t\t&:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\n\t\t&,\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\tbackground: none;\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t& .ck-button__label {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-button:not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-button:not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\t& .ck-button.ck-link-actions__preview {\n\t\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-standard) 0;\n\n\t\t\t& .ck-button__label {\n\t\t\t\tmin-width: 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-button:not(.ck-link-actions__preview) {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},7754:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-link-form{display:flex}.ck.ck-link-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-link-form{flex-wrap:wrap}.ck.ck-link-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-link-form .ck-button{flex-basis:50%}}.ck.ck-link-form_layout-vertical{display:block}.ck.ck-link-form_layout-vertical .ck-button.ck-button-cancel,.ck.ck-link-form_layout-vertical .ck-button.ck-button-save{margin-top:var(--ck-spacing-medium)}.ck.ck-link-form_layout-vertical{min-width:var(--ck-input-width);padding:0}.ck.ck-link-form_layout-vertical .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small)}.ck.ck-link-form_layout-vertical .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-link-form_layout-vertical>.ck-button{border-radius:0;margin:0;padding:var(--ck-spacing-standard);width:50%}.ck.ck-link-form_layout-vertical>.ck-button:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-link-form_layout-vertical>.ck-button,[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button{margin-left:0}[dir=rtl] .ck.ck-link-form_layout-vertical>.ck-button:last-of-type{border-right:1px solid var(--ck-color-base-border)}.ck.ck-link-form_layout-vertical .ck.ck-list{margin:var(--ck-spacing-standard) var(--ck-spacing-large)}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton{padding:0;width:100%}.ck.ck-link-form_layout-vertical .ck.ck-list .ck-button.ck-switchbutton:hover{background:none}","",{version:3,sources:["webpack://./../ckeditor5-link/theme/linkform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-link/linkform.css"],names:[],mappings:"AAOA,iBACC,YAiBD,CAfC,2BACC,YACD,CCNA,oCDCD,iBAQE,cAUF,CARE,wCACC,eACD,CAEA,4BACC,cACD,CCfD,CDuBD,iCACC,aAYD,CALE,wHAEC,mCACD,CE/BF,iCAEC,+BAAgC,CADhC,SAgDD,CA7CC,wDACC,8EAMD,CAJC,uEACC,WAAY,CACZ,UACD,CAGD,4CAIC,eAAgB,CAFhB,QAAS,CADT,kCAAmC,CAEnC,SAkBD,CAfC,wDACC,gDACD,CARD,4GAeE,aAMF,CAJE,mEACC,kDACD,CAKF,6CACC,yDAUD,CARC,wEACC,SAAU,CACV,UAKD,CAHC,8EACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-link-form {\n\tdisplay: flex;\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tdisplay: block;\n\n\t/*\n\t * Whether the form is in the responsive mode or not, if there are decorator buttons\n\t * keep the top margin of action buttons medium.\n\t */\n\t& .ck-button {\n\t\t&.ck-button-save,\n\t\t&.ck-button-cancel {\n\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/*\n * Style link form differently when manual decorators are available.\n * See: https://github.com/ckeditor/ckeditor5-link/issues/186.\n */\n.ck.ck-link-form_layout-vertical {\n\tpadding: 0;\n\tmin-width: var(--ck-input-width);\n\n\t& .ck-labeled-field-view {\n\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) var(--ck-spacing-small);\n\n\t\t& .ck-input-text {\n\t\t\tmin-width: 0;\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t& > .ck-button {\n\t\tpadding: var(--ck-spacing-standard);\n\t\tmargin: 0;\n\t\twidth: 50%;\n\t\tborder-radius: 0;\n\n\t\t&:not(:focus) {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: 0;\n\n\t\t\t&:last-of-type {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Using additional `.ck` class for stronger CSS specificity than `.ck.ck-link-form > :not(:first-child)`. */\n\t& .ck.ck-list {\n\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\n\t\t& .ck-button.ck-switchbutton {\n\t\t\tpadding: 0;\n\t\t\twidth: 100%;\n\n\t\t\t&:hover {\n\t\t\t\tbackground: none;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},4652:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck-content .media{clear:both;display:block;margin:.9em 0;min-width:15em}","",{version:3,sources:["webpack://./../ckeditor5-media-embed/theme/mediaembed.css"],names:[],mappings:"AAKA,mBAGC,UAAW,CASX,aAAc,CAJd,aAAe,CAQf,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .media {\n\t/* Don\'t allow floated content overlap the media.\n\thttps://github.com/ckeditor/ckeditor5-media-embed/issues/53 */\n\tclear: both;\n\n\t/* Make sure there is some space between the content and the media. */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em 0;\n\n\t/* Make sure media is not overriden with Bootstrap default `flex` value.\n\tSee: https://github.com/ckeditor/ckeditor5/issues/1373. */\n\tdisplay: block;\n\n\t/* Give the media some minimal width in the content to prevent them\n\tfrom being "squashed" in tight spaces, e.g. in table cells (#44) */\n\tmin-width: 15em;\n}\n'],sourceRoot:""}]);const a=s},7442:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck-media__wrapper .ck-media__placeholder{align-items:center;display:flex;flex-direction:column}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url{max-width:100%;position:relative}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url .ck-media__placeholder__url__text{display:block;overflow:hidden}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon *,.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck-media__placeholder__icon *{display:none}.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper>:not(.ck-media__placeholder),.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder{pointer-events:none}:root{--ck-media-embed-placeholder-icon-size:3em;--ck-color-media-embed-placeholder-url-text:#757575;--ck-color-media-embed-placeholder-url-text-hover:var(--ck-color-base-text)}.ck-media__wrapper{margin:0 auto}.ck-media__wrapper .ck-media__placeholder{background:var(--ck-color-base-foreground);padding:calc(var(--ck-spacing-standard)*3)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon{background-position:50%;background-size:cover;height:var(--ck-media-embed-placeholder-icon-size);margin-bottom:var(--ck-spacing-large);min-width:var(--ck-media-embed-placeholder-icon-size)}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__icon .ck-icon{height:100%;width:100%}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text{color:var(--ck-color-media-embed-placeholder-url-text);font-style:italic;text-align:center;text-overflow:ellipsis;white-space:nowrap}.ck-media__wrapper .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:var(--ck-color-media-embed-placeholder-url-text-hover);cursor:pointer;text-decoration:underline}.ck-media__wrapper[data-oembed-url*="open.spotify.com"]{max-height:380px;max-width:300px}.ck-media__wrapper[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon,.ck-media__wrapper[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Im0yMDYuNDc3IDI2MC45LTI4Ljk4NyAyOC45ODdhNS4yMTggNS4yMTggMCAwIDAgMy43OCAxLjYxaDQ5LjYyMWMxLjY5NCAwIDMuMTktLjc5OCA0LjE0Ni0yLjAzN3oiIGZpbGw9IiM1Yzg4YzUiLz48cGF0aCBkPSJNMjI2Ljc0MiAyMjIuOTg4Yy05LjI2NiAwLTE2Ljc3NyA3LjE3LTE2Ljc3NyAxNi4wMTQuMDA3IDIuNzYyLjY2MyA1LjQ3NCAyLjA5MyA3Ljg3NS40My43MDMuODMgMS40MDggMS4xOSAyLjEwNy4zMzMuNTAyLjY1IDEuMDA1Ljk1IDEuNTA4LjM0My40NzcuNjczLjk1Ny45ODggMS40NCAxLjMxIDEuNzY5IDIuNSAzLjUwMiAzLjYzNyA1LjE2OC43OTMgMS4yNzUgMS42ODMgMi42NCAyLjQ2NiAzLjk5IDIuMzYzIDQuMDk0IDQuMDA3IDguMDkyIDQuNiAxMy45MTR2LjAxMmMuMTgyLjQxMi41MTYuNjY2Ljg3OS42NjcuNDAzLS4wMDEuNzY4LS4zMTQuOTMtLjc5OS42MDMtNS43NTYgMi4yMzgtOS43MjkgNC41ODUtMTMuNzk0Ljc4Mi0xLjM1IDEuNjczLTIuNzE1IDIuNDY1LTMuOTkgMS4xMzctMS42NjYgMi4zMjgtMy40IDMuNjM4LTUuMTY5LjMxNS0uNDgyLjY0NS0uOTYyLjk4OC0xLjQzOS4zLS41MDMuNjE3LTEuMDA2Ljk1LTEuNTA4LjM1OS0uNy43Ni0xLjQwNCAxLjE5LTIuMTA3IDEuNDI2LTIuNDAyIDItNS4xMTQgMi4wMDQtNy44NzUgMC04Ljg0NC03LjUxMS0xNi4wMTQtMTYuNzc2LTE2LjAxNHoiIGZpbGw9IiNkZDRiM2UiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PGVsbGlwc2Ugcnk9IjUuNTY0IiByeD0iNS44MjgiIGN5PSIyMzkuMDAyIiBjeD0iMjI2Ljc0MiIgZmlsbD0iIzgwMmQyNyIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMTkwLjMwMSAyMzcuMjgzYy00LjY3IDAtOC40NTcgMy44NTMtOC40NTcgOC42MDZzMy43ODYgOC42MDcgOC40NTcgOC42MDdjMy4wNDMgMCA0LjgwNi0uOTU4IDYuMzM3LTIuNTE2IDEuNTMtMS41NTcgMi4wODctMy45MTMgMi4wODctNi4yOSAwLS4zNjItLjAyMy0uNzIyLS4wNjQtMS4wNzloLTguMjU3djMuMDQzaDQuODVjLS4xOTcuNzU5LS41MzEgMS40NS0xLjA1OCAxLjk4Ni0uOTQyLjk1OC0yLjAyOCAxLjU0OC0zLjkwMSAxLjU0OC0yLjg3NiAwLTUuMjA4LTIuMzcyLTUuMjA4LTUuMjk5IDAtMi45MjYgMi4zMzItNS4yOTkgNS4yMDgtNS4yOTkgMS4zOTkgMCAyLjYxOC40MDcgMy41ODQgMS4yOTNsMi4zODEtMi4zOGMwLS4wMDItLjAwMy0uMDA0LS4wMDQtLjAwNS0xLjU4OC0xLjUyNC0zLjYyLTIuMjE1LTUuOTU1LTIuMjE1em00LjQzIDUuNjYuMDAzLjAwNnYtLjAwM3oiIGZpbGw9IiNmZmYiIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0ibTIxNS4xODQgMjUxLjkyOS03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVhNS4yMzMgNS4yMzMgMCAwIDAgLjQ0OS0yLjEyM3YtMzEuMTY1Yy0uNDY5LjY3NS0uOTM0IDEuMzQ5LTEuMzgyIDIuMDA1LS43OTIgMS4yNzUtMS42ODIgMi42NC0yLjQ2NSAzLjk5LTIuMzQ3IDQuMDY1LTMuOTgyIDguMDM4LTQuNTg1IDEzLjc5NC0uMTYyLjQ4NS0uNTI3Ljc5OC0uOTMuNzk5LS4zNjMtLjAwMS0uNjk3LS4yNTUtLjg3OS0uNjY3di0uMDEyYy0uNTkzLTUuODIyLTIuMjM3LTkuODItNC42LTEzLjkxNC0uNzgzLTEuMzUtMS42NzMtMi43MTUtMi40NjYtMy45OS0xLjEzNy0xLjY2Ni0yLjMyNy0zLjQtMy42MzctNS4xNjlsLS4wMDItLjAwM3oiIGZpbGw9IiNjM2MzYzMiLz48cGF0aCBkPSJtMjEyLjk4MyAyNDguNDk1LTM2Ljk1MiAzNi45NTN2LjgxMmE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOCA1LjIzOGgxLjAxNWwzNS42NjYtMzUuNjY2YTEzNi4yNzUgMTM2LjI3NSAwIDAgMC0yLjc2NC0zLjkgMzcuNTc1IDM3LjU3NSAwIDAgMC0uOTg5LTEuNDQgMzUuMTI3IDM1LjEyNyAwIDAgMC0uOTUtMS41MDhjLS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJtMjExLjk5OCAyNjEuMDgzLTYuMTUyIDYuMTUxIDI0LjI2NCAyNC4yNjRoLjc4MWE1LjIyNyA1LjIyNyAwIDAgMCA1LjIzOS01LjIzOHYtMS4wNDV6IiBmaWxsPSIjZmZmIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjwvZz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder{background:#4268b3}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAyNCIgaGVpZ2h0PSIxMDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05NjcuNDg0IDBINTYuNTE3QzI1LjMwNCAwIDAgMjUuMzA0IDAgNTYuNTE3djkxMC45NjZDMCA5OTguNjk0IDI1LjI5NyAxMDI0IDU2LjUyMiAxMDI0SDU0N1Y2MjhINDE0VjQ3M2gxMzNWMzU5LjAyOWMwLTEzMi4yNjIgODAuNzczLTIwNC4yODIgMTk4Ljc1Ni0yMDQuMjgyIDU2LjUxMyAwIDEwNS4wODYgNC4yMDggMTE5LjI0NCA2LjA4OVYyOTlsLTgxLjYxNi4wMzdjLTYzLjk5MyAwLTc2LjM4NCAzMC40OTItNzYuMzg0IDc1LjIzNlY0NzNoMTUzLjQ4N2wtMTkuOTg2IDE1NUg3MDd2Mzk2aDI2MC40ODRjMzEuMjEzIDAgNTYuNTE2LTI1LjMwMyA1Ni41MTYtNTYuNTE2VjU2LjUxNUMxMDI0IDI1LjMwMyA5OTguNjk3IDAgOTY3LjQ4NCAwIiBmaWxsPSIjRkZGRkZFIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#cdf}.ck-media__wrapper[data-oembed-url*="facebook.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder{background:linear-gradient(-135deg,#1400c7,#b800b1,#f50000)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTA0IiBoZWlnaHQ9IjUwNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+PGRlZnM+PHBhdGggaWQ9ImEiIGQ9Ik0wIC4xNTloNTAzLjg0MVY1MDMuOTRIMHoiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjYSIvPjwvbWFzaz48cGF0aCBkPSJNMjUxLjkyMS4xNTljLTY4LjQxOCAwLTc2Ljk5Ny4yOS0xMDMuODY3IDEuNTE2LTI2LjgxNCAxLjIyMy00NS4xMjcgNS40ODItNjEuMTUxIDExLjcxLTE2LjU2NiA2LjQzNy0zMC42MTUgMTUuMDUxLTQ0LjYyMSAyOS4wNTYtMTQuMDA1IDE0LjAwNi0yMi42MTkgMjguMDU1LTI5LjA1NiA0NC42MjEtNi4yMjggMTYuMDI0LTEwLjQ4NyAzNC4zMzctMTEuNzEgNjEuMTUxQy4yOSAxNzUuMDgzIDAgMTgzLjY2MiAwIDI1Mi4wOGMwIDY4LjQxNy4yOSA3Ni45OTYgMS41MTYgMTAzLjg2NiAxLjIyMyAyNi44MTQgNS40ODIgNDUuMTI3IDExLjcxIDYxLjE1MSA2LjQzNyAxNi41NjYgMTUuMDUxIDMwLjYxNSAyOS4wNTYgNDQuNjIxIDE0LjAwNiAxNC4wMDUgMjguMDU1IDIyLjYxOSA0NC42MjEgMjkuMDU3IDE2LjAyNCA2LjIyNyAzNC4zMzcgMTAuNDg2IDYxLjE1MSAxMS43MDkgMjYuODcgMS4yMjYgMzUuNDQ5IDEuNTE2IDEwMy44NjcgMS41MTYgNjguNDE3IDAgNzYuOTk2LS4yOSAxMDMuODY2LTEuNTE2IDI2LjgxNC0xLjIyMyA0NS4xMjctNS40ODIgNjEuMTUxLTExLjcwOSAxNi41NjYtNi40MzggMzAuNjE1LTE1LjA1MiA0NC42MjEtMjkuMDU3IDE0LjAwNS0xNC4wMDYgMjIuNjE5LTI4LjA1NSAyOS4wNTctNDQuNjIxIDYuMjI3LTE2LjAyNCAxMC40ODYtMzQuMzM3IDExLjcwOS02MS4xNTEgMS4yMjYtMjYuODcgMS41MTYtMzUuNDQ5IDEuNTE2LTEwMy44NjYgMC02OC40MTgtLjI5LTc2Ljk5Ny0xLjUxNi0xMDMuODY3LTEuMjIzLTI2LjgxNC01LjQ4Mi00NS4xMjctMTEuNzA5LTYxLjE1MS02LjQzOC0xNi41NjYtMTUuMDUyLTMwLjYxNS0yOS4wNTctNDQuNjIxLTE0LjAwNi0xNC4wMDUtMjguMDU1LTIyLjYxOS00NC42MjEtMjkuMDU2LTE2LjAyNC02LjIyOC0zNC4zMzctMTAuNDg3LTYxLjE1MS0xMS43MUMzMjguOTE3LjQ0OSAzMjAuMzM4LjE1OSAyNTEuOTIxLjE1OVptMCA0NS4zOTFjNjcuMjY1IDAgNzUuMjMzLjI1NyAxMDEuNzk3IDEuNDY5IDI0LjU2MiAxLjEyIDM3LjkwMSA1LjIyNCA0Ni43NzggOC42NzQgMTEuNzU5IDQuNTcgMjAuMTUxIDEwLjAyOSAyOC45NjYgMTguODQ1IDguODE2IDguODE1IDE0LjI3NSAxNy4yMDcgMTguODQ1IDI4Ljk2NiAzLjQ1IDguODc3IDcuNTU0IDIyLjIxNiA4LjY3NCA0Ni43NzggMS4yMTIgMjYuNTY0IDEuNDY5IDM0LjUzMiAxLjQ2OSAxMDEuNzk4IDAgNjcuMjY1LS4yNTcgNzUuMjMzLTEuNDY5IDEwMS43OTctMS4xMiAyNC41NjItNS4yMjQgMzcuOTAxLTguNjc0IDQ2Ljc3OC00LjU3IDExLjc1OS0xMC4wMjkgMjAuMTUxLTE4Ljg0NSAyOC45NjYtOC44MTUgOC44MTYtMTcuMjA3IDE0LjI3NS0yOC45NjYgMTguODQ1LTguODc3IDMuNDUtMjIuMjE2IDcuNTU0LTQ2Ljc3OCA4LjY3NC0yNi41NiAxLjIxMi0zNC41MjcgMS40NjktMTAxLjc5NyAxLjQ2OS02Ny4yNzEgMC03NS4yMzctLjI1Ny0xMDEuNzk4LTEuNDY5LTI0LjU2Mi0xLjEyLTM3LjkwMS01LjIyNC00Ni43NzgtOC42NzQtMTEuNzU5LTQuNTctMjAuMTUxLTEwLjAyOS0yOC45NjYtMTguODQ1LTguODE1LTguODE1LTE0LjI3NS0xNy4yMDctMTguODQ1LTI4Ljk2Ni0zLjQ1LTguODc3LTcuNTU0LTIyLjIxNi04LjY3NC00Ni43NzgtMS4yMTItMjYuNTY0LTEuNDY5LTM0LjUzMi0xLjQ2OS0xMDEuNzk3IDAtNjcuMjY2LjI1Ny03NS4yMzQgMS40NjktMTAxLjc5OCAxLjEyLTI0LjU2MiA1LjIyNC0zNy45MDEgOC42NzQtNDYuNzc4IDQuNTctMTEuNzU5IDEwLjAyOS0yMC4xNTEgMTguODQ1LTI4Ljk2NiA4LjgxNS04LjgxNiAxNy4yMDctMTQuMjc1IDI4Ljk2Ni0xOC44NDUgOC44NzctMy40NSAyMi4yMTYtNy41NTQgNDYuNzc4LTguNjc0IDI2LjU2NC0xLjIxMiAzNC41MzItMS40NjkgMTAxLjc5OC0xLjQ2OVoiIGZpbGw9IiNGRkYiIG1hc2s9InVybCgjYikiLz48cGF0aCBkPSJNMjUxLjkyMSAzMzYuMDUzYy00Ni4zNzggMC04My45NzQtMzcuNTk2LTgzLjk3NC04My45NzMgMC00Ni4zNzggMzcuNTk2LTgzLjk3NCA4My45NzQtODMuOTc0IDQ2LjM3NyAwIDgzLjk3MyAzNy41OTYgODMuOTczIDgzLjk3NCAwIDQ2LjM3Ny0zNy41OTYgODMuOTczLTgzLjk3MyA4My45NzNabTAtMjEzLjMzOGMtNzEuNDQ3IDAtMTI5LjM2NSA1Ny45MTgtMTI5LjM2NSAxMjkuMzY1IDAgNzEuNDQ2IDU3LjkxOCAxMjkuMzY0IDEyOS4zNjUgMTI5LjM2NCA3MS40NDYgMCAxMjkuMzY0LTU3LjkxOCAxMjkuMzY0LTEyOS4zNjQgMC03MS40NDctNTcuOTE4LTEyOS4zNjUtMTI5LjM2NC0xMjkuMzY1Wk00MTYuNjI3IDExNy42MDRjMCAxNi42OTYtMTMuNTM1IDMwLjIzLTMwLjIzMSAzMC4yMy0xNi42OTUgMC0zMC4yMy0xMy41MzQtMzAuMjMtMzAuMjMgMC0xNi42OTYgMTMuNTM1LTMwLjIzMSAzMC4yMy0zMC4yMzEgMTYuNjk2IDAgMzAuMjMxIDEzLjUzNSAzMC4yMzEgMzAuMjMxIiBmaWxsPSIjRkZGIi8+PC9nPjwvc3ZnPg==)}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text{color:#ffe0fe}.ck-media__wrapper[data-oembed-url*="instagram.com"] .ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder{background:linear-gradient(90deg,#71c6f4,#0d70a5)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MDAgNDAwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA0MDAgNDAwIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBkPSJNNDAwIDIwMGMwIDExMC41LTg5LjUgMjAwLTIwMCAyMDBTMCAzMTAuNSAwIDIwMCA4OS41IDAgMjAwIDBzMjAwIDg5LjUgMjAwIDIwMHpNMTYzLjQgMzA1LjVjODguNyAwIDEzNy4yLTczLjUgMTM3LjItMTM3LjIgMC0yLjEgMC00LjItLjEtNi4yIDkuNC02LjggMTcuNi0xNS4zIDI0LjEtMjUtOC42IDMuOC0xNy45IDYuNC0yNy43IDcuNiAxMC02IDE3LjYtMTUuNCAyMS4yLTI2LjctOS4zIDUuNS0xOS42IDkuNS0zMC42IDExLjctOC44LTkuNC0yMS4zLTE1LjItMzUuMi0xNS4yLTI2LjYgMC00OC4yIDIxLjYtNDguMiA0OC4yIDAgMy44LjQgNy41IDEuMyAxMS00MC4xLTItNzUuNi0yMS4yLTk5LjQtNTAuNC00LjEgNy4xLTYuNSAxNS40LTYuNSAyNC4yIDAgMTYuNyA4LjUgMzEuNSAyMS41IDQwLjEtNy45LS4yLTE1LjMtMi40LTIxLjgtNnYuNmMwIDIzLjQgMTYuNiA0Mi44IDM4LjcgNDcuMy00IDEuMS04LjMgMS43LTEyLjcgMS43LTMuMSAwLTYuMS0uMy05LjEtLjkgNi4xIDE5LjIgMjMuOSAzMy4xIDQ1IDMzLjUtMTYuNSAxMi45LTM3LjMgMjAuNi01OS45IDIwLjYtMy45IDAtNy43LS4yLTExLjUtLjcgMjEuMSAxMy44IDQ2LjUgMjEuOCA3My43IDIxLjgiIHN0eWxlPSJmaWxsOiNmZmYiLz48L3N2Zz4=)}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text{color:#b8e6ff}.ck-media__wrapper[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder .ck-media__placeholder__url__text:hover{color:#fff}',"",{version:3,sources:["webpack://./../ckeditor5-media-embed/theme/mediaembedediting.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-media-embed/mediaembedediting.css"],names:[],mappings:"AAMC,0CAGC,kBAAmB,CAFnB,YAAa,CACb,qBAcD,CAXC,sEAEC,cAAe,CAEf,iBAMD,CAJC,wGAEC,aAAc,CADd,eAED,CAWD,6kBACC,YACD,CAYF,2LACC,mBACD,CC1CA,MACC,0CAA2C,CAE3C,mDAA4D,CAC5D,2EACD,CAEA,mBACC,aA+FD,CA7FC,0CAEC,0CAA2C,CAD3C,0CA6BD,CA1BC,uEAIC,uBAA2B,CAC3B,qBAAsB,CAHtB,kDAAmD,CACnD,qCAAsC,CAFtC,qDAUD,CAJC,gFAEC,WAAY,CADZ,UAED,CAGD,4EACC,sDAAuD,CAGvD,iBAAkB,CADlB,iBAAkB,CAElB,sBAAuB,CAHvB,kBAUD,CALC,kFACC,4DAA6D,CAC7D,cAAe,CACf,yBACD,CAIF,wDAEC,gBAAiB,CADjB,eAED,CAEA,4UAIC,wvGACD,CAEA,2EACC,kBAaD,CAXC,wGACC,orBACD,CAEA,6GACC,UAKD,CAHC,mHACC,UACD,CAIF,4EACC,2DAcD,CAZC,yGACC,4jHACD,CAGA,8GACC,aAKD,CAHC,oHACC,UACD,CAIF,6EAEC,iDAaD,CAXC,0GACC,wiCACD,CAEA,+GACC,aAKD,CAHC,qHACC,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-media__wrapper {\n\t& .ck-media__placeholder {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\n\t\t& .ck-media__placeholder__url {\n\t\t\t/* Otherwise the URL will overflow when the content is very narrow. */\n\t\t\tmax-width: 100%;\n\n\t\t\tposition: relative;\n\n\t\t\t& .ck-media__placeholder__url__text {\n\t\t\t\toverflow: hidden;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"],\n\t&[data-oembed-url*="google.com/maps"],\n\t&[data-oembed-url*="goo.gl/maps"],\n\t&[data-oembed-url*="maps.google.com"],\n\t&[data-oembed-url*="maps.app.goo.gl"],\n\t&[data-oembed-url*="facebook.com"],\n\t&[data-oembed-url*="instagram.com"] {\n\t\t& .ck-media__placeholder__icon * {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/* Disable all mouse interaction as long as the editor is not read–only.\n https://github.com/ckeditor/ckeditor5-media-embed/issues/58 */\n.ck-editor__editable:not(.ck-read-only) .ck-media__wrapper > *:not(.ck-media__placeholder) {\n\tpointer-events: none;\n}\n\n/* Disable all mouse interaction when the widget is not selected (e.g. to avoid opening links by accident).\n https://github.com/ckeditor/ckeditor5-media-embed/issues/18 */\n.ck-editor__editable:not(.ck-read-only) .ck-widget:not(.ck-widget_selected) .ck-media__placeholder {\n\tpointer-events: none;\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-media-embed-placeholder-icon-size: 3em;\n\n\t--ck-color-media-embed-placeholder-url-text: hsl(0, 0%, 46%);\n\t--ck-color-media-embed-placeholder-url-text-hover: var(--ck-color-base-text);\n}\n\n.ck-media__wrapper {\n\tmargin: 0 auto;\n\n\t& .ck-media__placeholder {\n\t\tpadding: calc( 3 * var(--ck-spacing-standard) );\n\t\tbackground: var(--ck-color-base-foreground);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tmin-width: var(--ck-media-embed-placeholder-icon-size);\n\t\t\theight: var(--ck-media-embed-placeholder-icon-size);\n\t\t\tmargin-bottom: var(--ck-spacing-large);\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: cover;\n\n\t\t\t& .ck-icon {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text);\n\t\t\twhite-space: nowrap;\n\t\t\ttext-align: center;\n\t\t\tfont-style: italic;\n\t\t\ttext-overflow: ellipsis;\n\n\t\t\t&:hover {\n\t\t\t\tcolor: var(--ck-color-media-embed-placeholder-url-text-hover);\n\t\t\t\tcursor: pointer;\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="open.spotify.com"] {\n\t\tmax-width: 300px;\n\t\tmax-height: 380px;\n\t}\n\n\t&[data-oembed-url*="google.com/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="goo.gl/maps"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.google.com"] .ck-media__placeholder__icon,\n\t&[data-oembed-url*="maps.app.goo.gl"] .ck-media__placeholder__icon {\n\t\tbackground-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAuMzc4IiBoZWlnaHQ9IjI1NC4xNjciIHZpZXdCb3g9IjAgMCA2Ni4yNDYgNjcuMjQ4Ij48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTcyLjUzMSAtMjE4LjQ1NSkgc2NhbGUoLjk4MDEyKSI+PHJlY3Qgcnk9IjUuMjM4IiByeD0iNS4yMzgiIHk9IjIzMS4zOTkiIHg9IjE3Ni4wMzEiIGhlaWdodD0iNjAuMDk5IiB3aWR0aD0iNjAuMDk5IiBmaWxsPSIjMzRhNjY4IiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxwYXRoIGQ9Ik0yMDYuNDc3IDI2MC45bC0yOC45ODcgMjguOTg3YTUuMjE4IDUuMjE4IDAgMCAwIDMuNzggMS42MWg0OS42MjFjMS42OTQgMCAzLjE5LS43OTggNC4xNDYtMi4wMzd6IiBmaWxsPSIjNWM4OGM1Ii8+PHBhdGggZD0iTTIyNi43NDIgMjIyLjk4OGMtOS4yNjYgMC0xNi43NzcgNy4xNy0xNi43NzcgMTYuMDE0LjAwNyAyLjc2Mi42NjMgNS40NzQgMi4wOTMgNy44NzUuNDMuNzAzLjgzIDEuNDA4IDEuMTkgMi4xMDcuMzMzLjUwMi42NSAxLjAwNS45NSAxLjUwOC4zNDMuNDc3LjY3My45NTcuOTg4IDEuNDQgMS4zMSAxLjc2OSAyLjUgMy41MDIgMy42MzcgNS4xNjguNzkzIDEuMjc1IDEuNjgzIDIuNjQgMi40NjYgMy45OSAyLjM2MyA0LjA5NCA0LjAwNyA4LjA5MiA0LjYgMTMuOTE0di4wMTJjLjE4Mi40MTIuNTE2LjY2Ni44NzkuNjY3LjQwMy0uMDAxLjc2OC0uMzE0LjkzLS43OTkuNjAzLTUuNzU2IDIuMjM4LTkuNzI5IDQuNTg1LTEzLjc5NC43ODItMS4zNSAxLjY3My0yLjcxNSAyLjQ2NS0zLjk5IDEuMTM3LTEuNjY2IDIuMzI4LTMuNCAzLjYzOC01LjE2OS4zMTUtLjQ4Mi42NDUtLjk2Mi45ODgtMS40MzkuMy0uNTAzLjYxNy0xLjAwNi45NS0xLjUwOC4zNTktLjcuNzYtMS40MDQgMS4xOS0yLjEwNyAxLjQyNi0yLjQwMiAyLTUuMTE0IDIuMDA0LTcuODc1IDAtOC44NDQtNy41MTEtMTYuMDE0LTE2Ljc3Ni0xNi4wMTR6IiBmaWxsPSIjZGQ0YjNlIiBwYWludC1vcmRlcj0ibWFya2VycyBzdHJva2UgZmlsbCIvPjxlbGxpcHNlIHJ5PSI1LjU2NCIgcng9IjUuODI4IiBjeT0iMjM5LjAwMiIgY3g9IjIyNi43NDIiIGZpbGw9IiM4MDJkMjciIHBhaW50LW9yZGVyPSJtYXJrZXJzIHN0cm9rZSBmaWxsIi8+PHBhdGggZD0iTTE5MC4zMDEgMjM3LjI4M2MtNC42NyAwLTguNDU3IDMuODUzLTguNDU3IDguNjA2czMuNzg2IDguNjA3IDguNDU3IDguNjA3YzMuMDQzIDAgNC44MDYtLjk1OCA2LjMzNy0yLjUxNiAxLjUzLTEuNTU3IDIuMDg3LTMuOTEzIDIuMDg3LTYuMjkgMC0uMzYyLS4wMjMtLjcyMi0uMDY0LTEuMDc5aC04LjI1N3YzLjA0M2g0Ljg1Yy0uMTk3Ljc1OS0uNTMxIDEuNDUtMS4wNTggMS45ODYtLjk0Mi45NTgtMi4wMjggMS41NDgtMy45MDEgMS41NDgtMi44NzYgMC01LjIwOC0yLjM3Mi01LjIwOC01LjI5OSAwLTIuOTI2IDIuMzMyLTUuMjk5IDUuMjA4LTUuMjk5IDEuMzk5IDAgMi42MTguNDA3IDMuNTg0IDEuMjkzbDIuMzgxLTIuMzhjMC0uMDAyLS4wMDMtLjAwNC0uMDA0LS4wMDUtMS41ODgtMS41MjQtMy42Mi0yLjIxNS01Ljk1NS0yLjIxNXptNC40MyA1LjY2bC4wMDMuMDA2di0uMDAzeiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjE1LjE4NCAyNTEuOTI5bC03Ljk4IDcuOTc5IDI4LjQ3NyAyOC40NzVjLjI4Ny0uNjQ5LjQ0OS0xLjM2Ni40NDktMi4xMjN2LTMxLjE2NWMtLjQ2OS42NzUtLjkzNCAxLjM0OS0xLjM4MiAyLjAwNS0uNzkyIDEuMjc1LTEuNjgyIDIuNjQtMi40NjUgMy45OS0yLjM0NyA0LjA2NS0zLjk4MiA4LjAzOC00LjU4NSAxMy43OTQtLjE2Mi40ODUtLjUyNy43OTgtLjkzLjc5OS0uMzYzLS4wMDEtLjY5Ny0uMjU1LS44NzktLjY2N3YtLjAxMmMtLjU5My01LjgyMi0yLjIzNy05LjgyLTQuNi0xMy45MTQtLjc4My0xLjM1LTEuNjczLTIuNzE1LTIuNDY2LTMuOTktMS4xMzctMS42NjYtMi4zMjctMy40LTMuNjM3LTUuMTY5bC0uMDAyLS4wMDN6IiBmaWxsPSIjYzNjM2MzIi8+PHBhdGggZD0iTTIxMi45ODMgMjQ4LjQ5NWwtMzYuOTUyIDM2Ljk1M3YuODEyYTUuMjI3IDUuMjI3IDAgMCAwIDUuMjM4IDUuMjM4aDEuMDE1bDM1LjY2Ni0zNS42NjZhMTM2LjI3NSAxMzYuMjc1IDAgMCAwLTIuNzY0LTMuOSAzNy41NzUgMzcuNTc1IDAgMCAwLS45ODktMS40NGMtLjI5OS0uNTAzLS42MTYtMS4wMDYtLjk1LTEuNTA4LS4wODMtLjE2Mi0uMTc2LS4zMjYtLjI2NC0uNDg5eiIgZmlsbD0iI2ZkZGM0ZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48cGF0aCBkPSJNMjExLjk5OCAyNjEuMDgzbC02LjE1MiA2LjE1MSAyNC4yNjQgMjQuMjY0aC43ODFhNS4yMjcgNS4yMjcgMCAwIDAgNS4yMzktNS4yMzh2LTEuMDQ1eiIgZmlsbD0iI2ZmZiIgcGFpbnQtb3JkZXI9Im1hcmtlcnMgc3Ryb2tlIGZpbGwiLz48L2c+PC9zdmc+);\n\t}\n\n\t&[data-oembed-url*="facebook.com"] .ck-media__placeholder {\n\t\tbackground: hsl(220, 46%, 48%);\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMDI0cHgiIGhlaWdodD0iMTAyNHB4IiB2aWV3Qm94PSIwIDAgMTAyNCAxMDI0IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPiAgICAgICAgPHRpdGxlPkZpbGwgMTwvdGl0bGU+ICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiAgICA8ZGVmcz48L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImZMb2dvX1doaXRlIiBmaWxsPSIjRkZGRkZFIj4gICAgICAgICAgICA8cGF0aCBkPSJNOTY3LjQ4NCwwIEw1Ni41MTcsMCBDMjUuMzA0LDAgMCwyNS4zMDQgMCw1Ni41MTcgTDAsOTY3LjQ4MyBDMCw5OTguNjk0IDI1LjI5NywxMDI0IDU2LjUyMiwxMDI0IEw1NDcsMTAyNCBMNTQ3LDYyOCBMNDE0LDYyOCBMNDE0LDQ3MyBMNTQ3LDQ3MyBMNTQ3LDM1OS4wMjkgQzU0NywyMjYuNzY3IDYyNy43NzMsMTU0Ljc0NyA3NDUuNzU2LDE1NC43NDcgQzgwMi4yNjksMTU0Ljc0NyA4NTAuODQyLDE1OC45NTUgODY1LDE2MC44MzYgTDg2NSwyOTkgTDc4My4zODQsMjk5LjAzNyBDNzE5LjM5MSwyOTkuMDM3IDcwNywzMjkuNTI5IDcwNywzNzQuMjczIEw3MDcsNDczIEw4NjAuNDg3LDQ3MyBMODQwLjUwMSw2MjggTDcwNyw2MjggTDcwNywxMDI0IEw5NjcuNDg0LDEwMjQgQzk5OC42OTcsMTAyNCAxMDI0LDk5OC42OTcgMTAyNCw5NjcuNDg0IEwxMDI0LDU2LjUxNSBDMTAyNCwyNS4zMDMgOTk4LjY5NywwIDk2Ny40ODQsMCIgaWQ9IkZpbGwtMSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(220, 100%, 90%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="instagram.com"] .ck-media__placeholder {\n\t\tbackground: linear-gradient(-135deg,hsl(246, 100%, 39%),hsl(302, 100%, 36%),hsl(0, 100%, 48%));\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSI1MDRweCIgaGVpZ2h0PSI1MDRweCIgdmlld0JveD0iMCAwIDUwNCA1MDQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+ICAgICAgICA8dGl0bGU+Z2x5cGgtbG9nb19NYXkyMDE2PC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxkZWZzPiAgICAgICAgPHBvbHlnb24gaWQ9InBhdGgtMSIgcG9pbnRzPSIwIDAuMTU5IDUwMy44NDEgMC4xNTkgNTAzLjg0MSA1MDMuOTQgMCA1MDMuOTQiPjwvcG9seWdvbj4gICAgPC9kZWZzPiAgICA8ZyBpZD0iZ2x5cGgtbG9nb19NYXkyMDE2IiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4gICAgICAgIDxnIGlkPSJHcm91cC0zIj4gICAgICAgICAgICA8bWFzayBpZD0ibWFzay0yIiBmaWxsPSJ3aGl0ZSI+ICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+ICAgICAgICAgICAgPC9tYXNrPiAgICAgICAgICAgIDxnIGlkPSJDbGlwLTIiPjwvZz4gICAgICAgICAgICA8cGF0aCBkPSJNMjUxLjkyMSwwLjE1OSBDMTgzLjUwMywwLjE1OSAxNzQuOTI0LDAuNDQ5IDE0OC4wNTQsMS42NzUgQzEyMS4yNCwyLjg5OCAxMDIuOTI3LDcuMTU3IDg2LjkwMywxMy4zODUgQzcwLjMzNywxOS44MjIgNTYuMjg4LDI4LjQzNiA0Mi4yODIsNDIuNDQxIEMyOC4yNzcsNTYuNDQ3IDE5LjY2Myw3MC40OTYgMTMuMjI2LDg3LjA2MiBDNi45OTgsMTAzLjA4NiAyLjczOSwxMjEuMzk5IDEuNTE2LDE0OC4yMTMgQzAuMjksMTc1LjA4MyAwLDE4My42NjIgMCwyNTIuMDggQzAsMzIwLjQ5NyAwLjI5LDMyOS4wNzYgMS41MTYsMzU1Ljk0NiBDMi43MzksMzgyLjc2IDYuOTk4LDQwMS4wNzMgMTMuMjI2LDQxNy4wOTcgQzE5LjY2Myw0MzMuNjYzIDI4LjI3Nyw0NDcuNzEyIDQyLjI4Miw0NjEuNzE4IEM1Ni4yODgsNDc1LjcyMyA3MC4zMzcsNDg0LjMzNyA4Ni45MDMsNDkwLjc3NSBDMTAyLjkyNyw0OTcuMDAyIDEyMS4yNCw1MDEuMjYxIDE0OC4wNTQsNTAyLjQ4NCBDMTc0LjkyNCw1MDMuNzEgMTgzLjUwMyw1MDQgMjUxLjkyMSw1MDQgQzMyMC4zMzgsNTA0IDMyOC45MTcsNTAzLjcxIDM1NS43ODcsNTAyLjQ4NCBDMzgyLjYwMSw1MDEuMjYxIDQwMC45MTQsNDk3LjAwMiA0MTYuOTM4LDQ5MC43NzUgQzQzMy41MDQsNDg0LjMzNyA0NDcuNTUzLDQ3NS43MjMgNDYxLjU1OSw0NjEuNzE4IEM0NzUuNTY0LDQ0Ny43MTIgNDg0LjE3OCw0MzMuNjYzIDQ5MC42MTYsNDE3LjA5NyBDNDk2Ljg0Myw0MDEuMDczIDUwMS4xMDIsMzgyLjc2IDUwMi4zMjUsMzU1Ljk0NiBDNTAzLjU1MSwzMjkuMDc2IDUwMy44NDEsMzIwLjQ5NyA1MDMuODQxLDI1Mi4wOCBDNTAzLjg0MSwxODMuNjYyIDUwMy41NTEsMTc1LjA4MyA1MDIuMzI1LDE0OC4yMTMgQzUwMS4xMDIsMTIxLjM5OSA0OTYuODQzLDEwMy4wODYgNDkwLjYxNiw4Ny4wNjIgQzQ4NC4xNzgsNzAuNDk2IDQ3NS41NjQsNTYuNDQ3IDQ2MS41NTksNDIuNDQxIEM0NDcuNTUzLDI4LjQzNiA0MzMuNTA0LDE5LjgyMiA0MTYuOTM4LDEzLjM4NSBDNDAwLjkxNCw3LjE1NyAzODIuNjAxLDIuODk4IDM1NS43ODcsMS42NzUgQzMyOC45MTcsMC40NDkgMzIwLjMzOCwwLjE1OSAyNTEuOTIxLDAuMTU5IFogTTI1MS45MjEsNDUuNTUgQzMxOS4xODYsNDUuNTUgMzI3LjE1NCw0NS44MDcgMzUzLjcxOCw0Ny4wMTkgQzM3OC4yOCw0OC4xMzkgMzkxLjYxOSw1Mi4yNDMgNDAwLjQ5Niw1NS42OTMgQzQxMi4yNTUsNjAuMjYzIDQyMC42NDcsNjUuNzIyIDQyOS40NjIsNzQuNTM4IEM0MzguMjc4LDgzLjM1MyA0NDMuNzM3LDkxLjc0NSA0NDguMzA3LDEwMy41MDQgQzQ1MS43NTcsMTEyLjM4MSA0NTUuODYxLDEyNS43MiA0NTYuOTgxLDE1MC4yODIgQzQ1OC4xOTMsMTc2Ljg0NiA0NTguNDUsMTg0LjgxNCA0NTguNDUsMjUyLjA4IEM0NTguNDUsMzE5LjM0NSA0NTguMTkzLDMyNy4zMTMgNDU2Ljk4MSwzNTMuODc3IEM0NTUuODYxLDM3OC40MzkgNDUxLjc1NywzOTEuNzc4IDQ0OC4zMDcsNDAwLjY1NSBDNDQzLjczNyw0MTIuNDE0IDQzOC4yNzgsNDIwLjgwNiA0MjkuNDYyLDQyOS42MjEgQzQyMC42NDcsNDM4LjQzNyA0MTIuMjU1LDQ0My44OTYgNDAwLjQ5Niw0NDguNDY2IEMzOTEuNjE5LDQ1MS45MTYgMzc4LjI4LDQ1Ni4wMiAzNTMuNzE4LDQ1Ny4xNCBDMzI3LjE1OCw0NTguMzUyIDMxOS4xOTEsNDU4LjYwOSAyNTEuOTIxLDQ1OC42MDkgQzE4NC42NSw0NTguNjA5IDE3Ni42ODQsNDU4LjM1MiAxNTAuMTIzLDQ1Ny4xNCBDMTI1LjU2MSw0NTYuMDIgMTEyLjIyMiw0NTEuOTE2IDEwMy4zNDUsNDQ4LjQ2NiBDOTEuNTg2LDQ0My44OTYgODMuMTk0LDQzOC40MzcgNzQuMzc5LDQyOS42MjEgQzY1LjU2NCw0MjAuODA2IDYwLjEwNCw0MTIuNDE0IDU1LjUzNCw0MDAuNjU1IEM1Mi4wODQsMzkxLjc3OCA0Ny45OCwzNzguNDM5IDQ2Ljg2LDM1My44NzcgQzQ1LjY0OCwzMjcuMzEzIDQ1LjM5MSwzMTkuMzQ1IDQ1LjM5MSwyNTIuMDggQzQ1LjM5MSwxODQuODE0IDQ1LjY0OCwxNzYuODQ2IDQ2Ljg2LDE1MC4yODIgQzQ3Ljk4LDEyNS43MiA1Mi4wODQsMTEyLjM4MSA1NS41MzQsMTAzLjUwNCBDNjAuMTA0LDkxLjc0NSA2NS41NjMsODMuMzUzIDc0LjM3OSw3NC41MzggQzgzLjE5NCw2NS43MjIgOTEuNTg2LDYwLjI2MyAxMDMuMzQ1LDU1LjY5MyBDMTEyLjIyMiw1Mi4yNDMgMTI1LjU2MSw0OC4xMzkgMTUwLjEyMyw0Ny4wMTkgQzE3Ni42ODcsNDUuODA3IDE4NC42NTUsNDUuNTUgMjUxLjkyMSw0NS41NSBaIiBpZD0iRmlsbC0xIiBmaWxsPSIjRkZGRkZGIiBtYXNrPSJ1cmwoI21hc2stMikiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgICAgIDxwYXRoIGQ9Ik0yNTEuOTIxLDMzNi4wNTMgQzIwNS41NDMsMzM2LjA1MyAxNjcuOTQ3LDI5OC40NTcgMTY3Ljk0NywyNTIuMDggQzE2Ny45NDcsMjA1LjcwMiAyMDUuNTQzLDE2OC4xMDYgMjUxLjkyMSwxNjguMTA2IEMyOTguMjk4LDE2OC4xMDYgMzM1Ljg5NCwyMDUuNzAyIDMzNS44OTQsMjUyLjA4IEMzMzUuODk0LDI5OC40NTcgMjk4LjI5OCwzMzYuMDUzIDI1MS45MjEsMzM2LjA1MyBaIE0yNTEuOTIxLDEyMi43MTUgQzE4MC40NzQsMTIyLjcxNSAxMjIuNTU2LDE4MC42MzMgMTIyLjU1NiwyNTIuMDggQzEyMi41NTYsMzIzLjUyNiAxODAuNDc0LDM4MS40NDQgMjUxLjkyMSwzODEuNDQ0IEMzMjMuMzY3LDM4MS40NDQgMzgxLjI4NSwzMjMuNTI2IDM4MS4yODUsMjUyLjA4IEMzODEuMjg1LDE4MC42MzMgMzIzLjM2NywxMjIuNzE1IDI1MS45MjEsMTIyLjcxNSBaIiBpZD0iRmlsbC00IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgICAgICA8cGF0aCBkPSJNNDE2LjYyNywxMTcuNjA0IEM0MTYuNjI3LDEzNC4zIDQwMy4wOTIsMTQ3LjgzNCAzODYuMzk2LDE0Ny44MzQgQzM2OS43MDEsMTQ3LjgzNCAzNTYuMTY2LDEzNC4zIDM1Ni4xNjYsMTE3LjYwNCBDMzU2LjE2NiwxMDAuOTA4IDM2OS43MDEsODcuMzczIDM4Ni4zOTYsODcuMzczIEM0MDMuMDkyLDg3LjM3MyA0MTYuNjI3LDEwMC45MDggNDE2LjYyNywxMTcuNjA0IiBpZD0iRmlsbC01IiBmaWxsPSIjRkZGRkZGIj48L3BhdGg+ICAgIDwvZz48L3N2Zz4=);\n\t\t}\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(302, 100%, 94%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-oembed-url*="twitter.com"] .ck.ck-media__placeholder {\n\t\t/* Use gradient to contrast with focused widget (ckeditor/ckeditor5-media-embed#22). */\n\t\tbackground: linear-gradient( to right, hsl(201, 85%, 70%), hsl(201, 85%, 35%) );\n\n\t\t& .ck-media__placeholder__icon {\n\t\t\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldoaXRlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQwMCA0MDAiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQwMCA0MDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGUgdHlwZT0idGV4dC9jc3MiPi5zdDB7ZmlsbDojRkZGRkZGO308L3N0eWxlPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00MDAsMjAwYzAsMTEwLjUtODkuNSwyMDAtMjAwLDIwMFMwLDMxMC41LDAsMjAwUzg5LjUsMCwyMDAsMFM0MDAsODkuNSw0MDAsMjAweiBNMTYzLjQsMzA1LjVjODguNywwLDEzNy4yLTczLjUsMTM3LjItMTM3LjJjMC0yLjEsMC00LjItMC4xLTYuMmM5LjQtNi44LDE3LjYtMTUuMywyNC4xLTI1Yy04LjYsMy44LTE3LjksNi40LTI3LjcsNy42YzEwLTYsMTcuNi0xNS40LDIxLjItMjYuN2MtOS4zLDUuNS0xOS42LDkuNS0zMC42LDExLjdjLTguOC05LjQtMjEuMy0xNS4yLTM1LjItMTUuMmMtMjYuNiwwLTQ4LjIsMjEuNi00OC4yLDQ4LjJjMCwzLjgsMC40LDcuNSwxLjMsMTFjLTQwLjEtMi03NS42LTIxLjItOTkuNC01MC40Yy00LjEsNy4xLTYuNSwxNS40LTYuNSwyNC4yYzAsMTYuNyw4LjUsMzEuNSwyMS41LDQwLjFjLTcuOS0wLjItMTUuMy0yLjQtMjEuOC02YzAsMC4yLDAsMC40LDAsMC42YzAsMjMuNCwxNi42LDQyLjgsMzguNyw0Ny4zYy00LDEuMS04LjMsMS43LTEyLjcsMS43Yy0zLjEsMC02LjEtMC4zLTkuMS0wLjljNi4xLDE5LjIsMjMuOSwzMy4xLDQ1LDMzLjVjLTE2LjUsMTIuOS0zNy4zLDIwLjYtNTkuOSwyMC42Yy0zLjksMC03LjctMC4yLTExLjUtMC43QzExMC44LDI5Ny41LDEzNi4yLDMwNS41LDE2My40LDMwNS41Ii8+PC9zdmc+);\n\t\t}\n\n\t\t& .ck-media__placeholder__url__text {\n\t\t\tcolor: hsl(201, 100%, 86%);\n\n\t\t\t&:hover {\n\t\t\t\tcolor: hsl(0, 0%, 100%);\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},9292:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-media-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-media-form .ck-labeled-field-view{display:inline-block}.ck.ck-media-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-media-form{flex-wrap:wrap}.ck.ck-media-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-media-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./../ckeditor5-media-embed/theme/mediaform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,kBAEC,sBAAuB,CADvB,YAAa,CAEb,kBAAmB,CACnB,gBAqBD,CAnBC,yCACC,oBACD,CAEA,4BACC,YACD,CCbA,oCDCD,kBAeE,cAUF,CARE,yCACC,eACD,CAEA,6BACC,cACD,CCtBD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-media-form {\n\tdisplay: flex;\n\talign-items: flex-start;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1613:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/inserttable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],names:[],mappings:"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,qCACC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAUD,CARC,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\tmin-width: var(--ck-insert-table-dropdown-box-width);\n\tmin-height: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\toutline: none;\n\ttransition: none;\n\n\t&:focus {\n\t\tbox-shadow: none;\n\t}\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n"],sourceRoot:""}]);const a=s},6306:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/table.css"],names:[],mappings:"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent . Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n'],sourceRoot:""}]);const a=s},3881:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-table-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-table-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],names:[],mappings:"AAKA,MACC,6DACD,CAKE,8QAGC,wDAAyD,CAKzD,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-table-focused-cell-background: hsla(212, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-table-focused-cell-background);\n\n\t\t\t/* Fixes the problem where surrounding cells cover the focused cell's border.\n\t\t\tIt does not fix the problem in all places but the UX is improved.\n\t\t\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\n\t\t\tborder-style: none;\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},6945:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',"",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],names:[],mappings:"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4906:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;justify-content:left;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{font-weight:700;opacity:.7}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/button/button.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAOA,6BAMC,kBAAmB,CADnB,mBAAoB,CAEpB,oBAAqB,CAHrB,iBAAkB,CCFlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDkBD,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEjBD,6BCAC,oDD4ID,CCzIE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eF6ID,CA5IA,wIEGE,qCFyIF,CA5IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBAuID,CA7GC,oFGhCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHqCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAYD,CAbA,6FAIE,mCASF,CAbA,6FAQE,oCAKF,CAbA,yEAWC,eAAiB,CACjB,UACD,CAIC,oIIrFD,oDJyFC,CAOA,gLKhGD,kCLkGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCC/HA,+CDmIA,CChIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDgHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CC/IC,mDDoJD,CCjJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDgID,2CAIC,wCACD,CAEA,uCAEC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: left;\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text) {\n\t\tjustify-content: center;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\tfont-weight: bold;\n\t\topacity: .7;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\n\t\tcolor: var(--ck-color-button-on-color);\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},5332:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/button/switchbutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eD4EA,CAxCA,yIChCC,qCDwED,CAxCA,2DAKE,gBAmCF,CAxCA,2DAUE,iBA8BF,CAxCA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CAuBD,CApBC,2ECxDD,eDmEC,CAXA,6LCpDA,qCAAsC,CDsDpC,8CASF,CAXA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAMD,CAEA,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEhFA,kCFkFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2px /* Border */\n\t);\n\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t/* Unlike a regular button, the switch button text color and background should never change.\n\t * Changing toggle switch (background, outline) is enough to carry the information about the\n\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\n\t */\n\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\n\t\tcolor: inherit;\n\t\tbackground: transparent;\n\t}\n\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Apply some smooth transition to the box-shadow and border. */\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\n\t\tborder: 1px solid transparent;\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\n\t&:focus {\n\t\tborder-color: transparent;\n\t\toutline: none;\n\t\tbox-shadow: none;\n\n\t\t& .ck-button__toggle {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\n\t\t\toutline-offset: 1px;\n\t\t\toutline: var(--ck-focus-ring);\n\t\t}\n\t}\n\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-on {\n\t\t& .ck-button__toggle {\n\t\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t\t}\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\t/*\n\t\t\t\t* Move the toggle switch to the right. It will be animated.\n\t\t\t\t*/\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},6781:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile.ck-color-table__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css"],names:[],mappings:"AAKA,kBACC,YACD,CCAA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBAOC,QAAS,CALT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CACV,8BAA+B,CAL/B,oCAyCD,CAjCC,oCACC,YAAa,CACb,gBACD,CAEA,4DACC,gDACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAEA,8BACC,8FAKD,CAHC,0CACC,aACD,CAGD,8HAIC,QACD,CAEA,gGAEC,iGACD,CAGD,yBACC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\twidth: var(--ck-color-grid-tile-size);\n\theight: var(--ck-color-grid-tile-size);\n\tmin-width: var(--ck-color-grid-tile-size);\n\tmin-height: var(--ck-color-grid-tile-size);\n\tpadding: 0;\n\ttransition: .2s ease box-shadow;\n\tborder: 0;\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t&.ck-color-table__color-tile_bordered {\n\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t&.ck-on,\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\t/* Disable the default .ck-button\'s border ring. */\n\t\tborder: 0;\n\t}\n\n\t&:focus:not( .ck-disabled ),\n\t&:hover:not( .ck-disabled ) {\n\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n'],sourceRoot:""}]);const a=s},5485:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-modal)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-modal) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eH8GD,CA5BA,qFG9EE,qCH0GF,CA5BA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAmBD,CAfC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\t}\n\n\t& .ck-dropdown__panel {\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-modal);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-modal) + 1 );\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\t\t\t\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3949:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-dropdown .ck-dropdown__panel .ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list,.ck.ck-dropdown .ck-dropdown__panel .ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:first-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button,.ck.ck-dropdown .ck-dropdown__panel .ck-list .ck-list__item:last-child .ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown .ck-dropdown__panel .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},7686:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CASA,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCC7EA,eDuFA,CAVA,qHCzEC,qCDmFD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},7339:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],names:[],mappings:"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},9688:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-base-foreground)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-base-foreground)}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,mDACD,CAIA,gEACC,gDACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-base-foreground);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-base-foreground);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},8847:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}:root{--ck-form-header-height:38px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-form__header .ck-form__header__label{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/formheader/formheader.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css"],names:[],mappings:"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BACD,CCNA,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAQD,CAHC,4CACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-form-header-height: 38px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& .ck-form__header__label {\n\t\tfont-weight: bold;\n\t}\n}\n"],sourceRoot:""}]);const a=s},6574:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/icon/icon.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],names:[],mappings:"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: .8333350694em;\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t/* This will prevent blurry icons on Firefox. See #340. */\n\twill-change: transform;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\t}\n\n\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\n\t&.ck-icon_inherit-color {\n\t\tcolor: inherit;\n\n\t\t& * {\n\t\t\tcolor: inherit;\n\n\t\t\t&:not([fill]) {\n\t\t\t\t/* Needed by FF. */\n\t\t\t\tfill: currentColor;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},4879:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eD2CD,CAtCA,iECDE,qCDuCF,CAtCA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DA0BD,CAxBC,mBEnBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YFuBA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BG/BD,oDHkCC,CAGD,sBAEC,sCAAuC,CADvC,+CAMD,CAHC,4BGzCD,iDH2CC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},3662:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/label/label.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],names:[],mappings:"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=s},2577:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eD8GD,CAzGA,2FCDE,qCD0GF,CAtGC,mEACC,UAmCD,CAjCC,gFACC,KA+BD,CAhCA,0FAIE,MA4BF,CAhCA,0FAQE,OAwBF,CAhCA,gFAiBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAP9C,mBAAoB,CAYpB,sBAAuB,CARvB,6DAA+D,CAH/D,oBAAqB,CAgBrB,+JAID,CAQA,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,oUAGE,+HAYF,CAfA,oUAOE,wIAQF,CAfA,gTAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\t\t\ttransform-origin: 0 0;\n\n\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1046:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item .ck-button{border-radius:0;min-height:unset;padding:calc(var(--ck-line-height-base)*.2*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*.4*var(--ck-font-size-base));text-align:left;width:100%}.ck.ck-list__item .ck-button .ck-button__label{line-height:calc(var(--ck-line-height-base)*1.2*var(--ck-font-size-base))}.ck.ck-list__item .ck-button:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item .ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item .ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item .ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item .ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item .ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item .ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/list/list.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEfD,YCEC,eDGD,CALA,+DCME,qCDDF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAIC,eAAgB,CAHhB,gBAAiB,CAQjB,iIAEiE,CARjE,eAAgB,CADhB,UAwCD,CA7BC,+CAEC,yEACD,CAEA,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\tmin-width: 12em;\n\n\t& .ck-button {\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\tborder-radius: 0;\n\n\t\t/* List items should have the same height. Use absolute units to make sure it is so\n\t\t because e.g. different heading styles may have different height\n\t\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\tpadding:\n\t\t\tcalc(.2 * var(--ck-line-height-base) * var(--ck-font-size-base))\n\t\t\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\n\t\t& .ck-button__label {\n\t\t\t/* https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\t\tline-height: calc(1.2 * var(--ck-line-height-base) * var(--ck-font-size-base));\n\t\t}\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& .ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},8793:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-modal)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-modal);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-border-width: 1px;\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_e"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\n\t\t\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\n\t\t\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_w"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\n\t\t\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\n\t\t\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_e {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_w {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},4650:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],names:[],mappings:"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n"],sourceRoot:""}]);const a=s},7676:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-modal) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-modal) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},5868:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-modal)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-modal); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},6764:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css"],names:[],mappings:"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAmED,CAjEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA8CF,CA5CE,8CACC,wDAWD,CATC,6DACC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDpEH",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button {\n\t&::after {\n\t\tcontent: "";\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: -1px;\n\t\ttop: -1px;\n\t\tbottom: -1px;\n\t\tz-index: 1;\n\t}\n\n\t&:focus::after {\n\t\tdisplay: none;\n\t}\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button {\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: -1px;\n\t\t\t\ttop: -1px;\n\t\t\t\tbottom: -1px;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t&:focus::after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\t\t\tborder-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},9695:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],names:[],mappings:"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n"],sourceRoot:""}]);const a=s},5542:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDoGD,CAvGA,qECOE,qCDgGF,CAvGA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAmGD,CAhGC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAjGF,qCAqGE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\talign-self: stretch;\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t/* A drop-down containing the nested toolbar with configured items. */\n\t& .ck-toolbar__nested-toolbar-dropdown {\n\t\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\n\t\t& > .ck-dropdown__panel {\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& > .ck-button > .ck-button__label {\n\t\t\tmax-width: 7em;\n\t\t\twidth: auto;\n\t\t}\n\t}\n\n\t@nest .ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3332:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck.ck-balloon-panel.ck-tooltip{--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium);pointer-events:none;z-index:calc(var(--ck-z-modal) + 100)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css"],names:[],mappings:"AAKA,gCCGC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,8DAA+D,CAE/D,kCAAmC,CDPnC,mBAAoB,CAEpB,qCACD,CCMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAbD,gCAgBC,eAMD,CAHC,uCACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t/* Keep tooltips transparent for any interactions. */\n\tpointer-events: none;\n\n\tz-index: calc( var(--ck-z-modal) + 100 );\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t--ck-balloon-border-width: 0px;\n\t--ck-balloon-arrow-offset: 0px;\n\t--ck-balloon-arrow-half-width: 4px;\n\t--ck-balloon-arrow-height: 4px;\n\t--ck-color-panel-background: var(--ck-color-tooltip-background);\n\n\tpadding: 0 var(--ck-spacing-medium);\n\n\t& .ck-tooltip__text {\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t}\n\n\t/* Reset balloon panel styles */\n\tbox-shadow: none;\n\n\t/* Hide the default shadow of the .ck-balloon-panel tip */\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const a=s},4793:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck-hidden{display:none!important}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{box-sizing:border-box;height:auto;position:static;width:auto}:root{--ck-z-default:1;--ck-z-modal:calc(var(--ck-z-default) + 999)}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{word-wrap:break-word;background:transparent;border:0;margin:0;padding:0;text-decoration:none;transition:none;vertical-align:middle}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/globals/_hidden.css","webpack://./../ckeditor5-ui/theme/globals/_reset.css","webpack://./../ckeditor5-ui/theme/globals/_zindex.css","webpack://./../ckeditor5-ui/theme/globals/_transition.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css"],names:[],mappings:"AAQA,WAGC,sBACD,CCPA,2EAGC,qBAAsB,CAEtB,WAAY,CACZ,eAAgB,CAFhB,UAGD,CCPA,MACC,gBAAiB,CACjB,4CACD,CCAA,oDAEC,yBACD,CCNA,MACC,kCAAmD,CACnD,+BAAoD,CACpD,8BAAkD,CAClD,8BAAuD,CACvD,6BAAmD,CACnD,yBAA+C,CAC/C,8BAAsD,CACtD,oCAA4D,CAC5D,6BAAkD,CAIlD,mDAA4D,CAC5D,qEAA+E,CAC/E,qCAA4D,CAC5D,qDAA8D,CAC9D,gDAAyD,CACzD,yCAAqD,CACrD,sCAAsD,CACtD,4CAA0D,CAC1D,sCAAsD,CAItD,gDAAuD,CACvD,kDAAiE,CACjE,mDAAkE,CAClE,yDAA8D,CAE9D,uCAA6D,CAC7D,6CAAoE,CACpE,8CAAoE,CACpE,gDAAiE,CACjE,kCAAyD,CAGzD,+DAAsE,CACtE,iDAAsE,CACtE,kDAAsE,CACtE,oDAAoE,CACpE,6DAAsE,CAEtE,8BAAoD,CACpD,gCAAqD,CAErD,+CAA8D,CAC9D,qDAAiE,CACjE,+EAAqF,CACrF,oDAAuE,CACvE,yEAA8E,CAC9E,oDAAgE,CAIhE,oEAA2E,CAC3E,4DAAoE,CAIpE,2DAAoE,CACpE,mDAA6D,CAC7D,wDAAgE,CAChE,+CAA0D,CAC1D,4CAA2D,CAC3D,4DAAoE,CACpE,sCAAsD,CAItD,0DAAmE,CACnE,uFAA6F,CAC7F,oEAA2E,CAC3E,0EAA+E,CAC/E,8DAAsE,CAItE,2DAAoE,CACpE,mDAA6D,CAI7D,6DAAsE,CACtE,qDAA+D,CAI/D,uDAAgE,CAChE,uDAAiE,CAIjE,0CAAyD,CAIzD,wCAA2D,CAI3D,+BAAoD,CACpD,uDAAmE,CACnE,kDAAgE,CAIhE,oCAAwD,CCvGxD,wBAAyB,CCAzB,0CAA2C,CAK3C,gGAAiG,CAKjG,4GAA6G,CAK7G,sGAAuG,CAKvG,sDAAuD,CCvBvD,wBAAyB,CACzB,6BAA8B,CAC9B,wDAA6D,CAE7D,yBAA0B,CAC1B,2BAA4B,CAC5B,yBAA0B,CAC1B,wBAAyB,CACzB,0BAA2B,CCJ3B,kCJuGD,CIjGA,2EAaC,oBAAqB,CANrB,sBAAuB,CADvB,QAAS,CAFT,QAAS,CACT,SAAU,CAGV,oBAAqB,CAErB,eAAgB,CADhB,qBAKD,CAKA,8DAGC,wBAAyB,CAEzB,0BAA2B,CAG3B,WAAY,CACZ,UAAW,CALX,iGAAkG,CAElG,eAAgB,CAChB,kBAGD,CAGC,qDACC,gBACD,CAEA,mDAEC,sBACD,CAEA,qDACC,oBACD,CAEA,mLAGC,WACD,CAEA,iNAGC,cACD,CAEA,qDAEC,yBAAoC,CADpC,YAED,CAEA,qEAGC,QAAQ,CADR,SAED,CAMD,8BAEC,gBACD,CCnFA,MACC,sBAAuB,CCAvB,gEAAiE,CAKjE,0DAA2D,CAK3D,wEAAyE,CCbzE,uBAA8B,CAC9B,mDAA2D,CAC3D,4CAAkD,CAClD,oDAA4D,CAC5D,mDAA2D,CAC3D,kDAA2D,CAC3D,yDFFD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-modal: calc( var(--ck-z-default) + 999 );\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(220, 6%, 81%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 50.2%, 42.5%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(218.2, 100%, 52.5%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t218, 81.8%, 56.9%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(212.4, 89.3%, 89%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(212, 100%, 97.1%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(211, 15%, 95%);\n\t--ck-color-button-on-color:\t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 57.6%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 49%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n\n\t/* -- Search result highlight ---------------------------------------------------------------- */\n\n\t--ck-color-highlight-background:\t\t\t\t\t\t\thsl(60, 100%, 50%)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n"],sourceRoot:""}]);const a=s},3488:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background);border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}","",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widget.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CCjFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAUD,CARC,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAWD,CAPC,yGAKC,iEAAkE,CCnCnE,2BAA2B,CCF3B,qCAA8B,CDC9B,YDqCA,CAIA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAgCD,CAnBC,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAWD,CANC,kHACC,SAAU,CAGV,+DACD,CAID,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\n\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t * background-color for the .ck-widget_selected state change,\n\t\t * visibility for hiding the handler,\n\t\t * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',"/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},8506:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}","",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widgetresize.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],names:[],mappings:"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",sourcesContent:["/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n","/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n"],sourceRoot:""}]);const a=s},4921:(t,e,n)=>{n.d(e,{Z:()=>a});var o=n(1799),i=n.n(o),r=n(2609),s=n.n(r)()(i());s.push([t.id,'.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widgettypearound.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],names:[],mappings:"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAkDD,CA1CC,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAoBD,CAdC,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DAcD,CARE,kEACC,oDACD,CAEA,8DACC,wDACD,CAUF,uKAvED,SAAU,CACV,mBAwEC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAlJD,SAAU,CACV,mBAmJC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAlMF,SAAU,CACV,mBAmME,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n','/*\n * Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n'],sourceRoot:""}]);const a=s},2609:t=>{t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,o){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(o)for(var r=0;r{function e(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null==n)return;var o,i,r=[],s=!0,a=!1;try{for(n=n.call(t);!(s=(o=n.next()).done)&&(r.push(o.value),!e||r.length!==e);s=!0);}catch(t){a=!0,i=t}finally{try{s||null==n.return||n.return()}finally{if(a)throw i}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return n(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n{var o,i=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},r=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nc=void 0;var o={};return(()=>{n.d(o,{default:()=>oC});const t=function(){return function t(){t.called=!0}};class e{constructor(e,n){this.source=e,this.name=n,this.path=[],this.stop=t(),this.off=t()}}const i=new Array(256).fill("").map(((t,e)=>("0"+e.toString(16)).slice(-2)));function r(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,o=4294967296*Math.random()>>>0;return"e"+i[t>>0&255]+i[t>>8&255]+i[t>>16&255]+i[t>>24&255]+i[e>>0&255]+i[e>>8&255]+i[e>>16&255]+i[e>>24&255]+i[n>>0&255]+i[n>>8&255]+i[n>>16&255]+i[n>>24&255]+i[o>>0&255]+i[o>>8&255]+i[o>>16&255]+i[o>>24&255]}const s={get(t="normal"){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function a(t,e){const n=s.get(e.priority);for(let o=0;o{if("object"==typeof e&&null!==e){if(n.has(e))return`[object ${e.constructor.name}]`;n.add(e)}return e},i=e?` ${JSON.stringify(e,o)}`:"",r=h(t);return t+i+r}(t,n)),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new c(t.message,e);throw n.stack=t.stack,n}}function l(t,e){console.warn(...u(t,e))}function d(t,e){console.error(...u(t,e))}function h(t){return`\nRead more: https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html#error-${t}`}function u(t,e){const n=h(t);return e?[t,e,n]:[t,n]}const g="35.3.1",m="object"==typeof window?window:n.g;if(m.CKEDITOR_VERSION)throw new c("ckeditor-duplicated-modules",null);m.CKEDITOR_VERSION=g;const p=Symbol("listeningTo"),f=Symbol("emitterId"),k=Symbol("delegations");function b(t){return class extends t{on(t,e,n){this.listenTo(this,t,e,n)}once(t,e,n){let o=!1;this.listenTo(this,t,((t,...n)=>{o||(o=!0,t.off(),e.call(this,t,...n))}),n)}off(t,e){this.stopListening(this,t,e)}listenTo(t,e,n,o={}){let i,r;this[p]||(this[p]={});const s=this[p];_(t)||A(t);const a=_(t);(i=s[a])||(i=s[a]={emitter:t,callbacks:{}}),(r=i.callbacks[e])||(r=i.callbacks[e]=[]),r.push(n),function(t,e,n,o,i){e._addEventListener?e._addEventListener(n,o,i):t._addEventListener.call(e,n,o,i)}(this,t,e,n,o)}stopListening(t,e,n){const o=this[p];let i=t&&_(t);const r=o&&i?o[i]:void 0,s=r&&e?r.callbacks[e]:void 0;if(!(!o||t&&!r||e&&!s))if(n){E(this,t,e,n);-1!==s.indexOf(n)&&(1===s.length?delete r.callbacks[e]:E(this,t,e,n))}else if(s){for(;n=s.pop();)E(this,t,e,n);delete r.callbacks[e]}else if(r){for(e in r.callbacks)this.stopListening(t,e);delete o[i]}else{for(i in o)this.stopListening(o[i].emitter);delete this[p]}}fire(t,...n){try{const o=t instanceof e?t:new e(this,t),i=o.name;let r=y(this,i);if(o.path.push(this),r){const t=[o,...n];r=Array.from(r);for(let e=0;e{this[k]||(this[k]=new Map),t.forEach((t=>{const o=this[k].get(t);o?o.set(e,n):this[k].set(t,new Map([[e,n]]))}))}}}stopDelegating(t,e){if(this[k])if(t)if(e){const n=this[k].get(t);n&&n.delete(e)}else this[k].delete(t);else this[k].clear()}_addEventListener(t,e,n){!function(t,e){const n=C(t);if(n[e])return;let o=e,i=null;const r=[];for(;""!==o&&!n[o];)n[o]={callbacks:[],childEvents:[]},r.push(n[o]),i&&n[o].childEvents.push(i),i=o,o=o.substr(0,o.lastIndexOf(":"));if(""!==o){for(const t of r)t.callbacks=n[o].callbacks.slice();n[o].childEvents.push(i)}}(this,t);const o=v(this,t),i={callback:e,priority:s.get(n.priority)};for(const t of o)a(t,i)}_removeEventListener(t,e){const n=v(this,t);for(const t of n)for(let n=0;n-1?y(t,e.substr(0,e.lastIndexOf(":"))):null}function x(t,n,o){for(let[i,r]of t){r?"function"==typeof r&&(r=r(n.name)):r=n.name;const t=new e(n.source,r);t.path=[...n.path],i.fire(t,...o)}}function E(t,e,n,o){e._removeEventListener?e._removeEventListener(n,o):t._removeEventListener.call(e,n,o)}["on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{b[t]=w.prototype[t]}));const D=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},I=Symbol("observableProperties"),T=Symbol("boundObservables"),M=Symbol("boundProperties"),S=Symbol("decoratedMethods"),N=Symbol("decoratedOriginal");function B(t){return class extends t{set(t,e){if(D(t))return void Object.keys(t).forEach((e=>{this.set(e,t[e])}),this);z(this);const n=this[I];if(t in this&&!n.has(t))throw new c("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const o=n.get(t);let i=this.fire(`set:${t}`,t,e,o);void 0===i&&(i=e),o===i&&n.has(t)||(n.set(t,i),this.fire(`change:${t}`,t,i,o))}}),this[t]=e}bind(...t){if(!t.length||!R(t))throw new c("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new c("observable-bind-duplicate-properties",this);z(this);const e=this[M];t.forEach((t=>{if(e.has(t))throw new c("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const o={property:t,to:[]};e.set(t,o),n.set(t,o)})),{to:L,toMany:O,_observable:this,_bindProperties:t,_to:[],_bindings:n}}unbind(...t){if(!this[I])return;const e=this[M],n=this[T];if(t.length){if(!R(t))throw new c("observable-unbind-wrong-properties",this);t.forEach((t=>{const o=e.get(t);o&&(o.to.forEach((([t,e])=>{const i=n.get(t),r=i[e];r.delete(o),r.size||delete i[e],Object.keys(i).length||(n.delete(t),this.stopListening(t,"change"))})),e.delete(t))}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()}decorate(t){z(this);const e=this[t];if(!e)throw new c("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][N]=e,this[S]||(this[S]=[]),this[S].push(t)}stopListening(t,e,n){if(!t&&this[S]){for(const t of this[S])this[t]=this[t][N];delete this[S]}w.prototype.stopListening.call(this,t,e,n)}}}const P=B(w);function z(t){t[I]||(Object.defineProperty(t,I,{value:new Map}),Object.defineProperty(t,T,{value:new Map}),Object.defineProperty(t,M,{value:new Map}))}function L(...t){const e=function(...t){if(!t.length)throw new c("observable-bind-to-parse-error",null);const e={to:[]};let n;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new c("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),o=n.length;if(!e.callback&&e.to.length>1)throw new c("observable-bind-to-no-callback",this);if(o>1&&e.callback)throw new c("observable-bind-to-extra-callback",this);var i;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==o)throw new c("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),i=this._observable,this._to.forEach((t=>{const e=i[T];let n;e.get(t.observable)||i.listenTo(t.observable,"change",((o,r)=>{n=e.get(t.observable)[r],n&&n.forEach((t=>{j(i,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,o)=>{t._to.forEach((i=>{e=i.properties[n.callback?0:t._bindProperties.indexOf(o)],n.to.push([i.observable,e]),function(t,e,n,o){const i=t[T],r=i.get(n),s=r||{};s[o]||(s[o]=new Set);s[o].add(e),r||i.set(n,s)}(t._observable,n,i.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{j(this._observable,t)}))}function O(t,e,n){if(this._bindings.size>1)throw new c("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function R(t){return t.every((t=>"string"==typeof t))}function j(t,e){const n=t[M].get(e);let o;n.callback?o=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(o=n.to[0],o=o[0][o[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=o:t.set(e,o)}["set","bind","unbind","decorate","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{B[t]=P.prototype[t]}));class F extends P{constructor(t){super(),this.editor=t,this.set("isEnabled",!0),this._disableStack=new Set}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",V,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",V),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function V(t){t.return=!1,t.stop()}class U extends P{constructor(t){super(),this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"}),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n&&this.affectsData?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")}))}get affectsData(){return this._affectsData}set affectsData(t){this._affectsData=t}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",H,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",H),this.refresh())}execute(...t){}destroy(){this.stopListening()}}function H(t){t.return=!1,t.stop()}class W extends U{constructor(t){super(t),this._childCommandsDefinitions=[]}refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return!!e&&e.execute(t)}registerChildCommand(t,e={}){a(this._childCommandsDefinitions,{command:t,priority:e.priority||"normal"}),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){const t=this._childCommandsDefinitions.find((({command:t})=>t.isEnabled));return t&&t.command}}const G="object"==typeof global&&global&&global.Object===Object&&global;var q="object"==typeof self&&self&&self.Object===Object&&self;const Y=G||q||Function("return this")();const $=Y.Symbol;var K=Object.prototype,Q=K.hasOwnProperty,Z=K.toString,J=$?$.toStringTag:void 0;const X=function(t){var e=Q.call(t,J),n=t[J];try{t[J]=void 0;var o=!0}catch(t){}var i=Z.call(t);return o&&(e?t[J]=n:delete t[J]),i};var tt=Object.prototype.toString;const et=function(t){return tt.call(t)};var nt=$?$.toStringTag:void 0;const ot=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":nt&&nt in Object(t)?X(t):et(t)};const it=function(t,e){return function(n){return t(e(n))}};const rt=it(Object.getPrototypeOf,Object);const st=function(t){return null!=t&&"object"==typeof t};var at=Function.prototype,ct=Object.prototype,lt=at.toString,dt=ct.hasOwnProperty,ht=lt.call(Object);const ut=function(t){if(!st(t)||"[object Object]"!=ot(t))return!1;var e=rt(t);if(null===e)return!0;var n=dt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&<.call(n)==ht};const gt=function(){this.__data__=[],this.size=0};const mt=function(t,e){return t===e||t!=t&&e!=e};const pt=function(t,e){for(var n=t.length;n--;)if(mt(t[n][0],e))return n;return-1};var ft=Array.prototype.splice;const kt=function(t){var e=this.__data__,n=pt(e,t);return!(n<0)&&(n==e.length-1?e.pop():ft.call(e,n,1),--this.size,!0)};const bt=function(t){var e=this.__data__,n=pt(e,t);return n<0?void 0:e[n][1]};const wt=function(t){return pt(this.__data__,t)>-1};const At=function(t,e){var n=this.__data__,o=pt(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this};function _t(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991};var Ne={};Ne["[object Float32Array]"]=Ne["[object Float64Array]"]=Ne["[object Int8Array]"]=Ne["[object Int16Array]"]=Ne["[object Int32Array]"]=Ne["[object Uint8Array]"]=Ne["[object Uint8ClampedArray]"]=Ne["[object Uint16Array]"]=Ne["[object Uint32Array]"]=!0,Ne["[object Arguments]"]=Ne["[object Array]"]=Ne["[object ArrayBuffer]"]=Ne["[object Boolean]"]=Ne["[object DataView]"]=Ne["[object Date]"]=Ne["[object Error]"]=Ne["[object Function]"]=Ne["[object Map]"]=Ne["[object Number]"]=Ne["[object Object]"]=Ne["[object RegExp]"]=Ne["[object Set]"]=Ne["[object String]"]=Ne["[object WeakMap]"]=!1;const Be=function(t){return st(t)&&Se(t.length)&&!!Ne[ot(t)]};const Pe=function(t){return function(e){return t(e)}};var ze="object"==typeof exports&&exports&&!exports.nodeType&&exports,Le=ze&&"object"==typeof module&&module&&!module.nodeType&&module,Oe=Le&&Le.exports===ze&&G.process;const Re=function(){try{var t=Le&&Le.require&&Le.require("util").types;return t||Oe&&Oe.binding&&Oe.binding("util")}catch(t){}}();var je=Re&&Re.isTypedArray;const Fe=je?Pe(je):Be;var Ve=Object.prototype.hasOwnProperty;const Ue=function(t,e){var n=ve(t),o=!n&&Ce(t),i=!n&&!o&&Ie(t),r=!n&&!o&&!i&&Fe(t),s=n||o||i||r,a=s?ke(t.length,String):[],c=a.length;for(var l in t)!e&&!Ve.call(t,l)||s&&("length"==l||i&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Me(l,c))||a.push(l);return a};var He=Object.prototype;const We=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||He)};const Ge=it(Object.keys,Object);var qe=Object.prototype.hasOwnProperty;const Ye=function(t){if(!We(t))return Ge(t);var e=[];for(var n in Object(t))qe.call(t,n)&&"constructor"!=n&&e.push(n);return e};const $e=function(t){return null!=t&&Se(t.length)&&!Dt(t)};const Ke=function(t){return $e(t)?Ue(t):Ye(t)};const Qe=function(t,e){return t&&fe(e,Ke(e),t)};const Ze=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e};var Je=Object.prototype.hasOwnProperty;const Xe=function(t){if(!D(t))return Ze(t);var e=We(t),n=[];for(var o in t)("constructor"!=o||!e&&Je.call(t,o))&&n.push(o);return n};const tn=function(t){return $e(t)?Ue(t,!0):Xe(t)};const en=function(t,e){return t&&fe(e,tn(e),t)};var nn="object"==typeof exports&&exports&&!exports.nodeType&&exports,on=nn&&"object"==typeof module&&module&&!module.nodeType&&module,rn=on&&on.exports===nn?Y.Buffer:void 0,sn=rn?rn.allocUnsafe:void 0;const an=function(t,e){if(e)return t.slice();var n=t.length,o=sn?sn(n):new t.constructor(n);return t.copy(o),o};const cn=function(t,e){var n=-1,o=t.length;for(e||(e=Array(o));++n{this._setToTarget(t,o,e[o],n)}))}}function go(t){return lo(t,mo)}function mo(t){return ho(t)?t:void 0}function po(t){return!(!t||!t[Symbol.iterator])}class fo extends w{constructor(t={},e={}){super();const n=po(t);if(n||(e=t),this._items=[],this._itemMap=new Map,this._idProperty=e.idProperty||"id",this._bindToExternalToInternalMap=new WeakMap,this._bindToInternalToExternalMap=new WeakMap,this._skippedIndexesFromExternal=[],n)for(const e of t)this._items.push(e),this._itemMap.set(this._getItemIdBeforeAdding(e),e)}get length(){return this._items.length}get first(){return this._items[0]||null}get last(){return this._items[this.length-1]||null}add(t,e){return this.addMany([t],e)}addMany(t,e){if(void 0===e)e=this._items.length;else if(e>this._items.length||e<0)throw new c("collection-add-item-invalid-index",this);let n=0;for(const o of t){const t=this._getItemIdBeforeAdding(o),i=e+n;this._items.splice(i,0,o),this._itemMap.set(t,o),this.fire("add",o,i),n++}return this.fire("change",{added:t,removed:[],index:e}),this}get(t){let e;if("string"==typeof t)e=this._itemMap.get(t);else{if("number"!=typeof t)throw new c("collection-get-invalid-arg",this);e=this._items[t]}return e||null}has(t){if("string"==typeof t)return this._itemMap.has(t);{const e=t[this._idProperty];return e&&this._itemMap.has(e)}}getIndex(t){let e;return e="string"==typeof t?this._itemMap.get(t):t,e?this._items.indexOf(e):-1}remove(t){const[e,n]=this._remove(t);return this.fire("change",{added:[],removed:[e],index:n}),e}map(t,e){return this._items.map(t,e)}find(t,e){return this._items.find(t,e)}filter(t,e){return this._items.filter(t,e)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const t=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:t,index:0})}bindTo(t){if(this._bindToCollection)throw new c("collection-bind-to-rebind",this);return this._bindToCollection=t,{as:t=>{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding(t):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,o,i)=>{const r=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(o);if(r&&s)this._bindToExternalToInternalMap.set(o,s),this._bindToInternalToExternalMap.set(s,o);else{const n=t(o);if(!n)return void this._skippedIndexesFromExternal.push(i);let r=i;for(const t of this._skippedIndexesFromExternal)i>t&&r--;for(const t of e._skippedIndexesFromExternal)r>=t&&r++;this._bindToExternalToInternalMap.set(o,n),this._bindToInternalToExternalMap.set(n,o),this.add(n,r);for(let t=0;t{const o=this._bindToExternalToInternalMap.get(e);o&&this.remove(o),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new c("collection-add-invalid-id",this);if(this.get(n))throw new c("collection-add-item-already-exists",this)}else t[e]=n=r();return n}_remove(t){let e,n,o,i=!1;const r=this._idProperty;if("string"==typeof t?(n=t,o=this._itemMap.get(n),i=!o,o&&(e=this._items.indexOf(o))):"number"==typeof t?(e=t,o=this._items[e],i=!o,o&&(n=o[r])):(o=t,n=o[r],e=this._items.indexOf(o),i=-1==e||!this._itemMap.get(n)),i)throw new c("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(o);return this._bindToInternalToExternalMap.delete(o),this._bindToExternalToInternalMap.delete(s),this.fire("remove",o,e),[o,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}class ko extends w{constructor(t,e=[],n=[]){super(),this._context=t,this._plugins=new Map,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new c("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const o=this,i=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!o._availablePlugins.has(e.pluginName)&&o._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),u(t);const r=[...function t(e,n=new Set){return e.map((t=>a(t)?t:o._availablePlugins.get(t))).reduce(((e,o)=>n.has(o)?e:(n.add(o),o.requires&&(u(o.requires,o),t(o.requires,n).forEach((t=>e.add(t)))),e.add(o))),new Set)}(t.filter((t=>!d(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new c("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new c("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new c("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const i=o._availablePlugins.get(e);if(!i)throw new c("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const r=t.indexOf(i);if(-1===r){if(o._contextPlugins.has(i))return;throw new c("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(i.requires&&i.requires.length)throw new c("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(r,1,n),o._availablePlugins.set(e,n)}}(r,n);const s=function(t){return t.map((t=>{let e=o._contextPlugins.get(t);return e=e||new t(i),o._add(t,e),e}))}(r);return g(s,"init").then((()=>g(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function l(t){return a(t)&&t.isContextPlugin}function d(t,e){return e.some((e=>e===t||(h(t)===e||h(e)===t)))}function h(t){return a(t)?t.pluginName||t.name:t}function u(t,n=null){t.map((t=>a(t)?t:o._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(a(t))return;if(e)throw new c("plugincollection-soft-required",i,{missingPlugin:t,requiredBy:h(e)});throw new c("plugincollection-plugin-not-found",i,{plugin:t})}(t,n),function(t,e){if(!l(e))return;if(l(t))return;throw new c("plugincollection-context-required",i,{plugin:h(t),requiredBy:h(e)})}(t,n),function(t,n){if(!n)return;if(!d(t,e))return;throw new c("plugincollection-required",i,{plugin:h(t),requiredBy:h(n)})}(t,n)}))}function g(t,e){return t.reduce(((t,n)=>n[e]?o._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new c("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}function bo(t){return Array.isArray(t)?t:[t]}let wo;try{wo={window,document}}catch(t){wo={window:{},document:{}}}const Ao=wo;function _o(t,e,n=1){if("number"!=typeof n)throw new c("translation-service-quantity-not-a-number",null,{quantity:n});const o=Object.keys(Ao.window.CKEDITOR_TRANSLATIONS).length;1===o&&(t=Object.keys(Ao.window.CKEDITOR_TRANSLATIONS)[0]);const i=e.id||e.string;if(0===o||!function(t,e){return!!Ao.window.CKEDITOR_TRANSLATIONS[t]&&!!Ao.window.CKEDITOR_TRANSLATIONS[t].dictionary[e]}(t,i))return 1!==n?e.plural:e.string;const r=Ao.window.CKEDITOR_TRANSLATIONS[t].dictionary,s=Ao.window.CKEDITOR_TRANSLATIONS[t].getPluralForm||(t=>1===t?0:1),a=r[i];if("string"==typeof a)return a;return a[Number(s(n))]}Ao.window.CKEDITOR_TRANSLATIONS||(Ao.window.CKEDITOR_TRANSLATIONS={});const Co=["ar","ara","fa","per","fas","he","heb","ku","kur","ug","uig"];function vo(t){return Co.includes(t)?"rtl":"ltr"}class yo{constructor(t={}){this.uiLanguage=t.uiLanguage||"en",this.contentLanguage=t.contentLanguage||this.uiLanguage,this.uiLanguageDirection=vo(this.uiLanguage),this.contentLanguageDirection=vo(this.contentLanguage),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=bo(e),"string"==typeof t&&(t={string:t});const n=!!t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nt.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new c("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class Eo extends P{constructor(t){super(),this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}class Do{is(){throw new Error("is() method is abstract")}}function Io(t,e){const n=Math.min(t.length,e.length);for(let o=0;ot.data.length)throw new c("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new c("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}getAncestors(t={}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}function Bo(t){return po(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}No.prototype.is=function(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t};class Po{constructor(...t){this._patterns=[],this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=zo(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const o=zo(n,t);o&&e.push({element:n,pattern:t,match:o})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function zo(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){if(t instanceof RegExp)return!!e.match(t);return t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());ut(t)?(void 0!==t.style&&l("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&l("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class"));return Lo(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)||e.classes&&(n.classes=function(t,e){return Lo(t,e.getClassNames(),(()=>{}))}(e.classes,t),!n.classes)||e.styles&&(n.styles=function(t,e){return Lo(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles)?null:n}function Lo(t,e,n){const o=function(t){if(Array.isArray(t))return t.map((t=>ut(t)?(void 0!==t.key&&void 0!==t.value||l("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0]));if(ut(t))return Object.entries(t);return[[t,!0]]}(t),i=Array.from(e),r=[];if(o.forEach((([t,e])=>{i.forEach((o=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&e.match(t)})(t,o)&&function(t,e,n){if(!0===t)return!0;const o=n(e);return t===o||t instanceof RegExp&&!!String(o).match(t)}(e,o,n)&&r.push(o)}))})),o.length&&!(r.lengthi?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var r=Array(i);++o0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}};const Ci=_i(wi);const vi=function(t,e){return Ci(ki(t,e,mi),t+"")};const yi=function(t,e,n){if(!D(n))return!1;var o=typeof e;return!!("number"==o?$e(n)&&Me(e,n.length):"string"==o&&e in n)&&mt(n[e],t)};const xi=function(t){return vi((function(e,n){var o=-1,i=n.length,r=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(i--,r):void 0,s&&yi(n[0],n[1],s)&&(r=i<3?void 0:r,i=1),e=Object(e);++oe===t));return Array.isArray(e)}set(t,e){if(D(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Si(t);ri(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this._getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!D(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){if(this.isEmpty)return[];if(t)return this._styleProcessor.getStyleNames(this._styles);return this._getStylesEntries().map((([t])=>t))}clear(){this._styles={}}_getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),o=si(this._styles,n);if(!o)return;!Array.from(Object.keys(o)).length&&this.remove(n)}}class Mi{constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(D(e))Ni(n,Si(t),e);else if(this._normalizers.has(t)){const o=this._normalizers.get(t),{path:i,value:r}=o(e);Ni(n,i,r)}else Ni(n,t,e)}getNormalized(t,e){if(!t)return Ei({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return si(e,n);const o=n(t,e);if(o)return o}return si(e,Si(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);if(void 0===n)return[];if(this._reducers.has(t)){return this._reducers.get(t)(n)}return[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n.values())}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Si(t){return t.replace("-",".")}function Ni(t,e,n){let o=n;D(n)&&(o=Ei({},si(t,e),n)),Ii(t,e,o)}class Bi extends Mo{constructor(t,e,n,o){if(super(t),this.name=e,this._attrs=function(t){const e=Bo(t);for(const[t,n]of e)null===n?e.delete(t):"string"!=typeof n&&e.set(t,String(n));return e}(n),this._children=[],o&&this._insertChild(0,o),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");Pi(this._classes,t),this._attrs.delete("class")}this._styles=new Ti(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style")),this._customProperties=new Map,this._unsafeAttributesToRender=[]}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof Bi))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new Po(...t);let n=this.parent;for(;n&&!n.is("documentFragment");){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":` ${n}`)}shouldRenderUnsafeAttribute(t){return this._unsafeAttributesToRender.includes(t)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n._unsafeAttributesToRender=this._unsafeAttributesToRender,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new So(t,e)];po(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new So(t,e):e instanceof No?new So(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of bo(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of bo(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),ut(t)?this._styles.set(t):this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of bo(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function Pi(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}Bi.prototype.is=function(t,e){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t};class zi extends Bi{constructor(...t){super(...t),this.getFillerOffset=Li}}function Li(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}zi.prototype.is=function(t,e){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Oi extends(B(zi)){constructor(...t){super(...t);const e=t[0];this.set("isReadOnly",!1),this.set("isFocused",!1),this.bind("isReadOnly").to(e),this.bind("isFocused").to(e,"isFocused",(t=>t&&e.selection.editableElement==this)),this.listenTo(e.selection,"change",(()=>{this.isFocused=e.isFocused&&e.selection.editableElement==this}))}destroy(){this.stopListening()}}Oi.prototype.is=function(t,e){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};const Ri=Symbol("rootName");class ji extends Oi{constructor(t,e){super(t,e),this.rootName="main"}get rootName(){return this.getCustomProperty(Ri)}set rootName(t){this._setCustomProperty(Ri,t)}set _name(t){this.name=t}}ji.prototype.is=function(t,e){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Fi{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new c("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new c("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this.position=Vi._createAt(t.startPosition):this.position=Vi._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}skip(t){let e,n,o;do{o=this.position,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=o)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0,value:void 0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let o;if(n instanceof So){if(t.isAtEnd)return this.position=Vi._createAfter(n),this._next();o=n.data[t.offset]}else o=n.getChild(t.offset);if(o instanceof Bi)return this.shallow?t.offset++:t=new Vi(o,0),this.position=t,this._formatReturnValue("elementStart",o,e,t,1);if(o instanceof So){if(this.singleCharacters)return t=new Vi(o,0),this.position=t,this._next();{let n,i=o.data.length;return o==this._boundaryEndParent?(i=this.boundaries.end.offset,n=new No(o,0,i),t=Vi._createAfter(n)):(n=new No(o,0,o.data.length),t.offset++),this.position=t,this._formatReturnValue("text",n,e,t,i)}}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{o=(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset}const i=new No(n,t.offset,o);return t.offset+=o,this.position=t,this._formatReturnValue("text",i,e,t,o)}return t=Vi._createAfter(n),this.position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0,value:void 0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let o;if(n instanceof So){if(t.isAtStart)return this.position=Vi._createBefore(n),this._previous();o=n.data[t.offset-1]}else o=n.getChild(t.offset-1);if(o instanceof Bi)return this.shallow?(t.offset--,this.position=t,this._formatReturnValue("elementStart",o,e,t,1)):(t=new Vi(o,o.childCount),this.position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",o,e,t));if(o instanceof So){if(this.singleCharacters)return t=new Vi(o,o.data.length),this.position=t,this._previous();{let n,i=o.data.length;if(o==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new No(o,e,o.data.length-e),i=n.data.length,t=Vi._createBefore(n)}else n=new No(o,0,o.data.length),t.offset--;return this.position=t,this._formatReturnValue("text",n,e,t,i)}}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;o=t.offset-e}t.offset-=o;const i=new No(n,t.offset,o);return this.position=t,this._formatReturnValue("text",i,e,t,o)}return t=Vi._createBefore(n),this.position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,o,i){return e instanceof No&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=Vi._createAfter(e.textNode):(o=Vi._createAfter(e.textNode),this.position=o)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=Vi._createBefore(e.textNode):(o=Vi._createBefore(e.textNode),this.position=o))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}}class Vi extends Do{constructor(t,e){super(),this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof Oi);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=Vi._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new Fi(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let o=0;for(;e[o]==n[o]&&e[o];)o++;return 0===o?null:e[o-1]}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const o=Io(e,n);switch(o){case"prefix":return"before";case"extension":return"after";default:return e[o]0?new this(n,o):new this(o,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(Vi._createBefore(t),e)}}function Hi(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}function Wi(t){let e=0;for(const n of t)e++;return e}Ui.prototype.is=function(t){return"range"===t||"view:range"===t};class Gi extends(b(Do)){constructor(...t){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",t.length&&this.setTo(...t)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=Wi(this.getRanges());if(e!=Wi(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let o of t.getRanges())if(o=o.getTrimmed(),e.start.isEqual(o.start)&&e.end.isEqual(o.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...t){let[e,n,o]=t;if("object"==typeof n&&(o=n,n=void 0),null===e)this._setRanges([]),this._setFakeOptions(o);else if(e instanceof Gi||e instanceof qi)this._setRanges(e.getRanges(),e.isBackward),this._setFakeOptions({fake:e.isFake,label:e.fakeSelectionLabel});else if(e instanceof Ui)this._setRanges([e],o&&o.backward),this._setFakeOptions(o);else if(e instanceof Vi)this._setRanges([new Ui(e)]),this._setFakeOptions(o);else if(e instanceof Mo){const t=!!o&&!!o.backward;let i;if(void 0===n)throw new c("view-selection-setto-required-second-parameter",this);i="in"==n?Ui._createIn(e):"on"==n?Ui._createOn(e):new Ui(Vi._createAt(e,n)),this._setRanges([i],t),this._setFakeOptions(o)}else{if(!po(e))throw new c("view-selection-setto-not-selectable",this);this._setRanges(e,o&&o.backward),this._setFakeOptions(o)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new c("view-selection-setfocus-no-ranges",this);const n=Vi._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.pop(),"before"==n.compareWith(o)?this._addRange(new Ui(n,o),!0):this._addRange(new Ui(o,n)),this.fire("change")}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof Ui))throw new c("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new c("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new Ui(t.start,t.end))}}Gi.prototype.is=function(t){return"selection"===t||"view:selection"===t};class qi extends(b(Do)){constructor(...t){super(),this._selection=new Gi,this._selection.delegate("change").to(this),t.length&&this._selection.setTo(...t)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}_setTo(...t){this._selection.setTo(...t)}_setFocus(t,e){this._selection.setFocus(t,e)}}qi.prototype.is=function(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t};class Yi extends e{constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const $i=Symbol("bubbling contexts");function Ki(t){return class extends t{fire(t,...n){try{const o=t instanceof e?t:new e(this,t),i=Xi(this);if(!i.size)return;if(Qi(o,"capturing",this),Zi(i,"$capture",o,...n))return o.return;const r=o.startRange||this.selection.getFirstRange(),s=r?r.getContainedElement():null,a=!!s&&Boolean(Ji(i,s));let c=s||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,o=e.getPath(),i=n.getPath();return o.length>i.length?e:n}(r);if(Qi(o,"atTarget",c),!a){if(Zi(i,"$text",o,...n))return o.return;Qi(o,"bubbling",c)}for(;c;){if(c.is("rootElement")){if(Zi(i,"$root",o,...n))return o.return}else if(c.is("element")&&Zi(i,c.name,o,...n))return o.return;if(Zi(i,c,o,...n))return o.return;c=c.parent,Qi(o,"bubbling",c)}return Qi(o,"bubbling",this),Zi(i,"$document",o,...n),o.return}catch(t){c.rethrowUnexpectedError(t,this)}}_addEventListener(t,e,n){const o=bo(n.context||"$document"),i=Xi(this);for(const r of o){let o=i.get(r);o||(o=new w,i.set(r,o)),this.listenTo(o,t,e,n)}}_removeEventListener(t,e){const n=Xi(this);for(const o of n.values())this.stopListening(o,t,e)}}}{const t=Ki(Object);["fire","_addEventListener","_removeEventListener"].forEach((e=>{Ki[e]=t.prototype[e]}))}function Qi(t,e,n){t instanceof Yi&&(t._eventPhase=e,t._currentTarget=n)}function Zi(t,e,n,...o){const i="string"==typeof e?t.get(e):Ji(t,e);return!!i&&(i.fire(n,...o),n.stop.called)}function Ji(t,e){for(const[n,o]of t)if("function"==typeof n&&n(e))return o;return null}function Xi(t){return t[$i]||(t[$i]=new Map),t[$i]}class tr extends(Ki(P)){constructor(t){super(),this.selection=new qi,this.roots=new fo({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1),this._postFixers=new Set}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.map((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}class er extends Bi{constructor(...t){super(...t),this.getFillerOffset=nr,this._priority=10,this._id=null,this._clonesGroup=null}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new c("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t=!1){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function nr(){if(or(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(or(t)>1)return null;t=t.parent}return!t||or(t)>1?null:this.childCount}function or(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}er.DEFAULT_PRIORITY=10,er.prototype.is=function(t,e){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class ir extends Bi{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=rr}_insertChild(t,e){if(e&&(e instanceof Mo||Array.from(e).length>0))throw new c("view-emptyelement-cannot-add",[this,e]);return 0}}function rr(){return null}ir.prototype.is=function(t,e){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};const sr=function(){try{return navigator.userAgent.toLowerCase()}catch(t){return""}}(),ar={isMac:lr(sr),isWindows:function(t){return t.indexOf("windows")>-1}(sr),isGecko:function(t){return!!t.match(/gecko\/\d+/)}(sr),isSafari:function(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}(sr),isiOS:function(t){return!!t.match(/iphone|ipad/i)||lr(t)&&navigator.maxTouchPoints>0}(sr),isAndroid:function(t){return t.indexOf("android")>-1}(sr),isBlink:function(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}(sr),features:{isRegExpUnicodePropertySupported:function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}()}},cr=ar;function lr(t){return t.indexOf("macintosh")>-1}const dr={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},hr={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},ur=function(){const t={arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){const n=String.fromCharCode(e);t[n.toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;for(const e of"`-=[];',./\\")t[e]=e.charCodeAt(0);return t}(),gr=Object.fromEntries(Object.entries(ur).map((([t,e])=>[e,t.charAt(0).toUpperCase()+t.slice(1)])));function mr(t){let e;if("string"==typeof t){if(e=ur[t.toLowerCase()],!e)throw new c("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?ur.alt:0)+(t.ctrlKey?ur.ctrl:0)+(t.shiftKey?ur.shift:0)+(t.metaKey?ur.cmd:0);return e}function pr(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return mr(t.slice(0,-1));const e=mr(t);return cr.isMac&&e==ur.ctrl?ur.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function fr(t){let e=pr(t);return Object.entries(cr.isMac?dr:hr).reduce(((t,[n,o])=>(0!=(e&ur[n])&&(e&=~ur[n],t+=o),t)),"")+(e?gr[e]:"")}function kr(t,e){const n="ltr"===e;switch(t){case ur.arrowleft:return n?"left":"right";case ur.arrowright:return n?"right":"left";case ur.arrowup:return"up";case ur.arrowdown:return"down"}}class br extends Bi{constructor(...t){super(...t),this.getFillerOffset=Ar}_insertChild(t,e){if(e&&(e instanceof Mo||Array.from(e).length>0))throw new c("view-uielement-cannot-add",[this,e]);return 0}render(t,e){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function wr(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==ur.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),o=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(o||e.shiftKey){const e=t.focusNode,i=t.focusOffset,r=n.domPositionToView(e,i);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);o?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function Ar(){return null}br.prototype.is=function(t,e){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class _r extends Bi{constructor(...t){super(...t),this.getFillerOffset=Cr}_insertChild(t,e){if(e&&(e instanceof Mo||Array.from(e).length>0))throw new c("view-rawelement-cannot-add",[this,e]);return 0}render(){}}function Cr(){return null}_r.prototype.is=function(t,e){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class vr extends(b(Do)){constructor(t,e){super(),this.document=t,this._children=[],e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new So(t,e)];po(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new So(t,e):e instanceof No?new So(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{const n=t[t.length-1],o=!e.is("uiElement");return n&&n.breakAttributes==o?n.nodes.push(e):t.push({breakAttributes:o,nodes:[e]}),t}),[]);let o=null,i=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(i,t,e);o||(o=n.start),i=n.end}return o?new Ui(o,i):new Ui(t)}remove(t){const e=t instanceof Ui?t:Ui._createOn(t);if(Br(e,this.document),e.isCollapsed)return new vr(this.document);const{start:n,end:o}=this._breakAttributesRange(e,!0),i=n.parent,r=o.offset-n.offset,s=i._removeChildren(n.offset,r);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new vr(this.document,s)}clear(t,e){Br(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const o of n){const n=o.item;let i;if(n.is("element")&&e.isSimilar(n))i=Ui._createOn(n);else if(!o.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(i=Ui._createIn(t))}i&&(i.end.isAfter(t.end)&&(i.end=t.end),i.start.isBefore(t.start)&&(i.start=t.start),this.remove(i))}}move(t,e){let n;if(e.isAfter(t.end)){const o=(e=this._breakAttributes(e,!0)).parent,i=o.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=o.childCount-i}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof er))throw new c("view-writer-wrap-invalid-attribute",this.document);if(Br(t,this.document),t.isCollapsed){let o=t.start;o.parent.is("element")&&(n=o.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(o=o.getLastMatchingPosition((t=>t.item.is("uiElement")))),o=this._wrapPosition(o,e);const i=this.document.selection;return i.isCollapsed&&i.getFirstPosition().isEqual(t.start)&&this.setSelection(o),new Ui(o)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof er))throw new c("view-writer-unwrap-invalid-attribute",this.document);if(Br(t,this.document),t.isCollapsed)return t;const{start:n,end:o}=this._breakAttributesRange(t,!0),i=n.parent,r=this._unwrapChildren(i,n.offset,o.offset,e),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new Ui(s,a)}rename(t,e){const n=new zi(this.document,t,e.getAttributes());return this.insert(Vi._createAfter(e),n),this.move(Ui._createIn(e),Vi._createAt(n,0)),this.remove(Ui._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return Vi._createAt(t,e)}createPositionAfter(t){return Vi._createAfter(t)}createPositionBefore(t){return Vi._createBefore(t)}createRange(...t){return new Ui(...t)}createRangeOn(t){return Ui._createOn(t)}createRangeIn(t){return Ui._createIn(t)}createSelection(...t){return new Gi(...t)}createSlot(t){if(!this._slotFactory)throw new c("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,t)}_registerSlotFactory(t){this._slotFactory=t}_clearSlotFactory(){this._slotFactory=null}_insertNodes(t,e,n){let o,i;if(o=n?xr(t):t.parent.is("$text")?t.parent.parent:t.parent,!o)throw new c("view-writer-invalid-position-container",this.document);i=n?this._breakAttributes(t,!0):t.parent.is("$text")?Ir(t):t;const r=o._insertChild(i.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=i.getShiftedBy(r),a=this.mergeAttributes(i);a.isEqual(i)||s.offset--;const l=this.mergeAttributes(s);return new Ui(a,l)}_wrapChildren(t,e,n,o){let i=e;const r=[];for(;i!1,t.parent._insertChild(t.offset,n);const o=new Ui(t,t.getShiftedBy(1));this.wrap(o,e);const i=new Vi(n.parent,n.index);n._remove();const r=i.nodeBefore,s=i.nodeAfter;return r instanceof So&&s instanceof So?Tr(r,s):Dr(i)}_wrapAttributeElement(t,e){if(!Pr(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Pr(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,o=t.end;if(Br(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new Ui(n,n)}const i=this._breakAttributes(o,e),r=i.parent.childCount,s=this._breakAttributes(n,e);return i.offset+=i.parent.childCount-r,new Ui(s,i)}_breakAttributes(t,e=!1){const n=t.offset,o=t.parent;if(t.parent.is("emptyElement"))throw new c("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new c("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new c("view-writer-cannot-break-raw-element",this.document);if(!e&&o.is("$text")&&Nr(o.parent))return t.clone();if(Nr(o))return t.clone();if(o.is("$text"))return this._breakAttributes(Ir(t),e);if(n==o.childCount){const t=new Vi(o.parent,o.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new Vi(o.parent,o.index);return this._breakAttributes(t,e)}{const t=o.index+1,i=o._clone();o.parent._insertChild(t,i),this._addToClonedElementsGroup(i);const r=o.childCount-n,s=o._removeChildren(n,r);i._appendChild(s);const a=new Vi(o.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function xr(t){let e=t.parent;for(;!Nr(e);){if(!e)return;e=e.parent}return e}function Er(t,e){return t.prioritye.priority)&&t.getIdentity()n instanceof t)))throw new c("view-writer-insert-invalid-node-type",e);n.is("$text")||Sr(n.getChildren(),e)}}function Nr(t){return t&&(t.is("containerElement")||t.is("documentFragment"))}function Br(t,e){const n=xr(t.start),o=xr(t.end);if(!n||!o||n!==o)throw new c("view-writer-invalid-range-container",e)}function Pr(t,e){return null===t.id&&null===e.id}function zr(t){return"[object Text]"==Object.prototype.toString.call(t)}const Lr=t=>t.createTextNode(" "),Or=t=>{const e=t.createElement("span");return e.dataset.ckeFiller="true",e.innerText=" ",e},Rr=t=>{const e=t.createElement("br");return e.dataset.ckeFiller="true",e},jr="".repeat(7);function Fr(t){return zr(t)&&t.data.substr(0,7)===jr}function Vr(t){return 7==t.data.length&&Fr(t)}function Ur(t){return Fr(t)?t.data.slice(7):t.data}function Hr(t,e){if(e.keyCode==ur.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;Fr(e)&&n<=7&&t.collapse(e,0)}}}function Wr(t,e,n,o=!1){n=n||function(t,e){return t===e};const i=Array.isArray(t)?t:Array.prototype.slice.call(t),r=Array.isArray(e)?e:Array.prototype.slice.call(e),s=function(t,e,n){const o=Gr(t,e,n);if(-1===o)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=qr(t,o),r=qr(e,o),s=Gr(i,r,n),a=t.length-s,c=e.length-s;return{firstIndex:o,lastIndexOld:a,lastIndexNew:c}}(i,r,n);return o?function(t,e){const{firstIndex:n,lastIndexOld:o,lastIndexNew:i}=t;if(-1===n)return Array(e).fill("equal");let r=[];n>0&&(r=r.concat(Array(n).fill("equal")));i-n>0&&(r=r.concat(Array(i-n).fill("insert")));o-n>0&&(r=r.concat(Array(o-n).fill("delete")));i0&&n.push({index:o,type:"insert",values:t.slice(o,r)});i-o>0&&n.push({index:o+(r-o),type:"delete",howMany:i-o});return n}(r,s)}function Gr(t,e,n){for(let o=0;o200||i>200||o+i>300)return Yr.fastDiff(t,e,n,!0);let r,s;if(il?-1:1;d[o+u]&&(d[o]=d[o+u].slice(0)),d[o]||(d[o]=[]),d[o].push(i>l?r:s);let g=Math.max(i,l),m=g-o;for(;ml;g--)h[g]=u(g);h[l]=u(l),m++}while(h[l]!==c);return d[l].slice(1)}function $r(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function Kr(t){const e=t.parentNode;e&&e.removeChild(t)}function Qr(t){return t&&t.nodeType===Node.COMMENT_NODE}function Zr(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}Yr.fastDiff=Wr;var Jr=n(6062),Xr=n.n(Jr),ts=n(9315),es={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(ts.Z,es);ts.Z.locals;class ns extends P{constructor(t,e){super(),this.domDocuments=new Set,this.domConverter=t,this.markedAttributes=new Set,this.markedChildren=new Set,this.markedTexts=new Set,this.selection=e,this.set("isFocused",!1),this.set("isSelecting",!1),cr.isBlink&&!cr.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()})),this.set("isComposing",!1),this.on("change:isComposing",(()=>{this.isComposing||this.render()})),this._inlineFiller=null,this._fakeSelectionContainer=null}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t)throw new c("view-renderer-unknown-type",this);this.markedChildren.add(e)}}}render(){if(this.isComposing&&!cr.isAndroid)return;let t=null;const e=!(cr.isBlink&&!cr.isAndroid)||!this.isSelecting;for(const t of this.markedChildren)this._updateChildrenMappings(t);e?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(t=this.domConverter.domPositionToView(this._inlineFiller),t&&t.parent.is("$text")&&(t=Vi._createBefore(t.parent)));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(e)if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;Fr(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=os(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){if(!this.domConverter.mapViewToDom(t))return;const e=Array.from(this.domConverter.mapViewToDom(t).childNodes),n=Array.from(this.domConverter.viewChildrenToDom(t,{withChildren:!1})),o=this._diffNodeLists(e,n),i=this._findReplaceActions(o,e,n);if(-1!==i.indexOf("replace")){const o={equal:0,insert:0,delete:0};for(const r of i)if("replace"===r){const i=o.equal+o.insert,r=o.equal+o.delete,s=t.getChild(i);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,e[r]),Kr(n[i]),o.equal++}else o[r]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?Vi._createBefore(t.parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&zr(e.parent)&&Fr(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!Fr(t))throw new c("view-renderer-filler-was-lost",this);Vr(t)?t.remove():t.data=t.data.substr(7),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;if(n===e.getFillerOffset())return!1;const o=t.nodeBefore,i=t.nodeAfter;return!(o instanceof So||i instanceof So)&&(!cr.isAndroid||!o&&!i)}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t);let o=this.domConverter.viewToDom(t).data;const i=e.inlineFillerPosition;i&&i.parent==t.parent&&i.offset==t.index&&(o=jr+o),as(n,o)}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),o=t.getAttributeKeys();for(const n of o)this.domConverter.setDomElementAttribute(e,n,t.getAttribute(n),t);for(const o of n)t.hasAttribute(o)||this.domConverter.removeDomElementAttribute(e,o)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;if(cr.isAndroid){let t=null;for(const e of Array.from(n.childNodes)){if(t&&zr(t)&&zr(e)){n.normalize();break}t=e}}const o=e.inlineFillerPosition,i=n.childNodes,r=Array.from(this.domConverter.viewChildrenToDom(t,{bind:!0}));o&&o.parent===t&&os(n.ownerDocument,r,o.offset);const s=this._diffNodeLists(i,r),a=cr.isAndroid?this._findReplaceActions(s,i,r,{replaceText:!0}):s;let c=0;const l=new Set;for(const t of a)"delete"===t?(l.add(i[c]),Kr(i[c])):"equal"!==t&&"replace"!==t||c++;c=0;for(const t of a)"insert"===t?($r(n,c,r[c]),c++):"replace"===t?(as(i[c],r[c].data),c++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(r[c])),c++);for(const t of l)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return Yr(t=function(t,e){const n=Array.from(t);if(0==n.length||!e)return n;n[n.length-1]==e&&n.pop();return n}(t,this._fakeSelectionContainer),e,ss.bind(null,this.domConverter))}_findReplaceActions(t,e,n,o={}){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let i=[],r=[],s=[];const a={equal:0,insert:0,delete:0};for(const c of t)"insert"===c?s.push(n[a.equal+a.insert]):"delete"===c?r.push(e[a.equal+a.delete]):(i=i.concat(Yr(r,s,o.replaceText?rs:is).map((t=>"equal"===t?"replace":t))),i.push("equal"),r=[],s=[]),a[c]++;return i.concat(Yr(r,s,o.replaceText?rs:is).map((t=>"equal"===t?"replace":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(cr.isBlink&&!cr.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(t)):this.isComposing&&cr.isAndroid||this._updateDomSelection(t))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const o=e.getSelection(),i=e.createRange();o.removeAllRanges(),i.selectNodeContents(n),o.addRange(i)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),o=this.domConverter.viewPositionToDom(this.selection.focus);e.collapse(n.parent,n.offset),e.extend(o.parent,o.offset),cr.isGecko&&function(t,e){const n=t.parent;if(n.nodeType!=Node.ELEMENT_NODE||t.offset!=n.childNodes.length-1)return;const o=n.childNodes[t.offset];o&&"BR"==o.tagName&&e.addRange(e.getRangeAt(0))}(o,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return(!e||!this.selection.isEqual(e))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||(n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const t of this.domDocuments){const e=t.getSelection();if(e.rangeCount){const n=t.activeElement,o=this.domConverter.mapDomToView(n);n&&o&&e.removeAllRanges()}}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function os(t,e,n){const o=e instanceof Array?e:e.childNodes,i=o[n];if(zr(i))return i.data=jr+i.data,i;{const i=t.createTextNode(jr);return Array.isArray(e)?o.splice(n,0,i):$r(e,n,i),i}}function is(t,e){return Zr(t)&&Zr(e)&&!zr(t)&&!zr(e)&&!Qr(t)&&!Qr(e)&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function rs(t,e){return Zr(t)&&Zr(e)&&zr(t)&&zr(e)}function ss(t,e,n){return e===n||(zr(e)&&zr(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}function as(t,e){const n=t.data;if(n==e)return;const o=Wr(n,e);for(const e of o)"insert"===e.type?t.insertData(e.index,e.values.join("")):t.deleteData(e.index,e.howMany)}function cs(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function ls(t){const e=[];let n=t;for(;n&&n.nodeType!=Node.DOCUMENT_NODE;)e.unshift(n),n=n.parentNode;return e}const ds=Rr(Ao.document),hs=Lr(Ao.document),us=Or(Ao.document),gs="data-ck-unsafe-attribute-",ms="data-ck-unsafe-element";class ps{constructor(t,e={}){this.document=t,this.renderingMode=e.renderingMode||"editing",this.blockFillerMode=e.blockFillerMode||("editing"===this.renderingMode?"br":"nbsp"),this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?Ao.document:Ao.document.implementation.createHTMLDocument(""),this._domToViewMapping=new WeakMap,this._viewToDomMapping=new WeakMap,this._fakeSelectionMapping=new WeakMap,this._rawContentElementMatcher=new Po,this._encounteredRawContentDomNodes=new WeakSet}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new Gi(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of Array.from(t.children))this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}shouldRenderAttribute(t,e,n){return"data"===this.renderingMode||!(t=t.toLowerCase()).startsWith("on")&&(("srcdoc"!==t||!e.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i))&&("img"===n&&("src"===t||"srcset"===t)||("source"===n&&"srcset"===t||!e.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(t,e){if("data"===this.renderingMode)return void(t.innerHTML=e);const n=(new DOMParser).parseFromString(e,"text/html"),o=n.createDocumentFragment(),i=n.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);const r=n.createTreeWalker(o,NodeFilter.SHOW_ELEMENT),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const t of s){for(const e of t.getAttributeNames())this.setDomElementAttribute(t,e,t.getAttribute(e));const e=t.tagName.toLowerCase();this._shouldRenameElement(e)&&(bs(e),t.replaceWith(this._createReplacementDomElement(e,t)))}for(;t.firstChild;)t.firstChild.remove();t.append(o)}viewToDom(t,e={}){if(t.is("$text")){const e=this._processDataFromViewText(t);return this._domDocument.createTextNode(e)}{if(this.mapViewToDom(t))return this.mapViewToDom(t);let n;if(t.is("documentFragment"))n=this._domDocument.createDocumentFragment(),e.bind&&this.bindDocumentFragments(n,t);else{if(t.is("uiElement"))return n="$comment"===t.name?this._domDocument.createComment(t.getCustomProperty("$rawContent")):t.render(this._domDocument,this),e.bind&&this.bindElements(n,t),n;this._shouldRenameElement(t.name)?(bs(t.name),n=this._createReplacementDomElement(t.name)):n=t.hasAttribute("xmlns")?this._domDocument.createElementNS(t.getAttribute("xmlns"),t.name):this._domDocument.createElement(t.name),t.is("rawElement")&&t.render(n,this),e.bind&&this.bindElements(n,t);for(const e of t.getAttributeKeys())this.setDomElementAttribute(n,e,t.getAttribute(e),t)}if(!1!==e.withChildren)for(const o of this.viewChildrenToDom(t,e))n.appendChild(o);return n}}setDomElementAttribute(t,e,n,o){const i=this.shouldRenderAttribute(e,n,t.tagName.toLowerCase())||o&&o.shouldRenderUnsafeAttribute(e);i||l("domconverter-unsafe-attribute-detected",{domElement:t,key:e,value:n}),t.hasAttribute(e)&&!i?t.removeAttribute(e):t.hasAttribute(gs+e)&&i&&t.removeAttribute(gs+e),t.setAttribute(i?e:gs+e,n)}removeDomElementAttribute(t,e){e!=ms&&(t.removeAttribute(e),t.removeAttribute(gs+e))}*viewChildrenToDom(t,e={}){const n=t.getFillerOffset&&t.getFillerOffset();let o=0;for(const i of t.getChildren()){n===o&&(yield this._getBlockFiller());const t=i.is("element")&&i.getCustomProperty("dataPipeline:transparentRendering");t&&"data"==this.renderingMode?yield*this.viewChildrenToDom(i,e):(t&&l("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:i}),yield this.viewToDom(i,e)),o++}n===o&&(yield this._getBlockFiller())}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),o=this._domDocument.createRange();return o.setStart(e.parent,e.offset),o.setEnd(n.parent,n.offset),o}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let o=t.offset;return Fr(n)&&(o+=7),{parent:n,offset:o}}{let n,o,i;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;i=n.childNodes[0]}else{const e=t.nodeBefore;if(o=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(e),!o)return null;n=o.parentNode,i=o.nextSibling}if(zr(i)&&Fr(i))return{parent:i,offset:7};return{parent:n,offset:o?cs(o)+1:0}}}domToView(t,e={}){if(this.isBlockFiller(t))return null;const n=this.getHostViewElement(t);if(n)return n;if(Qr(t)&&e.skipComments)return null;if(zr(t)){if(Vr(t))return null;{const e=this._processDataFromDomText(t);return""===e?null:new So(this.document,e)}}{if(this.mapDomToView(t))return this.mapDomToView(t);let n;if(this.isDocumentFragment(t))n=new vr(this.document),e.bind&&this.bindDocumentFragments(t,n);else{n=this._createViewElement(t,e),e.bind&&this.bindElements(t,n);const o=t.attributes;if(o)for(let t=o.length,e=0;e{const{scrollLeft:e,scrollTop:n}=t;o.push([e,n])})),e.focus(),fs(e,(t=>{const[e,n]=o.shift();t.scrollLeft=e,t.scrollTop=n})),Ao.window.scrollTo(t,n)}}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(ds):!("BR"!==t.tagName||!ks(t,this.blockElements)||1!==t.parentNode.childNodes.length)||(t.isEqualNode(us)||function(t,e){return t.isEqualNode(hs)&&ks(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements))}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=this._domDocument.createRange();try{e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset)}catch(t){return!1}const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=ls(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return Lr(this._domDocument);case"markedNbsp":return Or(this._domDocument);case"br":return Rr(this._domDocument)}}_isDomSelectionPositionCorrect(t,e){if(zr(t)&&Fr(t)&&e<7)return!1;if(this.isElement(t)&&Fr(t.childNodes[e]))return!1;const n=this.mapDomToView(t);return!n||!n.is("uiElement")&&!n.is("rawElement")}_processDataFromViewText(t){let e=t.data;if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),o=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!o||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g," ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_processDataFromDomText(t){let e=t.data;if(function(t,e){return ls(t).some((t=>t.tagName&&e.includes(t.tagName.toLowerCase())))}(t,this.preElements))return Ur(t);e=e.replace(/[ \n\t\r]{1,}/g," ");const n=this._getTouchingInlineDomNode(t,!1),o=this._getTouchingInlineDomNode(t,!0),i=this._checkShouldLeftTrimDomText(t,n),r=this._checkShouldRightTrimDomText(t,o);i&&(e=e.replace(/^ /,"")),r&&(e=e.replace(/ $/,"")),e=Ur(new Text(e)),e=e.replace(/ \u00A0/g," ");const s=o&&this.isElement(o)&&"BR"!=o.tagName,a=o&&zr(o)&&" "==o.data.charAt(0);return(/( |\u00A0)\u00A0$/.test(e)||!o||s||a)&&(e=e.replace(/\u00A0$/," ")),(i||n&&this.isElement(n)&&"BR"!=n.tagName)&&(e=e.replace(/^\u00A0/," ")),e}_checkShouldLeftTrimDomText(t,e){return!e||(this.isElement(e)?"BR"===e.tagName:!this._encounteredRawContentDomNodes.has(t.previousSibling)&&/[^\S\u00A0]/.test(e.data.charAt(e.data.length-1)))}_checkShouldRightTrimDomText(t,e){return!e&&!Fr(t)}_getTouchingInlineViewNode(t,e){const n=new Fi({startPosition:e?Vi._createAfter(t):Vi._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element")&&this.inlineObjectElements.includes(t.item.name))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("element","br"))return null;if(t.item.is("$textProxy"))return t.item}return null}_getTouchingInlineDomNode(t,e){if(!t.parentNode)return null;const n=e?"firstChild":"lastChild",o=e?"nextSibling":"previousSibling";let i=!0,r=t;do{if(!i&&r[n]?r=r[n]:r[o]?(r=r[o],i=!1):(r=r.parentNode,i=!0),!r||this._isBlockElement(r))return null}while(!zr(r)&&"BR"!=r.tagName&&!this._isInlineObjectElement(r));return r}_isBlockElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isInlineObjectElement(t){return this.isElement(t)&&this.inlineObjectElements.includes(t.tagName.toLowerCase())}_createViewElement(t,e){if(Qr(t))return new br(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new Bi(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&!!this._rawContentElementMatcher.match(t)}_shouldRenameElement(t){const e=t.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(e)}_createReplacementDomElement(t,e){const n=this._domDocument.createElement("span");if(n.setAttribute(ms,t),e){for(;e.firstChild;)n.appendChild(e.firstChild);for(const t of e.getAttributeNames())n.setAttribute(t,e.getAttribute(t))}return n}}function fs(t,e){let n=t;for(;n;)e(n),n=n.parentElement}function ks(t,e){const n=t.parentNode;return!!n&&!!n.tagName&&e.includes(n.tagName.toLowerCase())}function bs(t){"script"===t&&l("domconverter-unsafe-script-element-detected"),"style"===t&&l("domconverter-unsafe-style-element-detected")}function ws(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}function As(t){return class extends t{listenTo(t,e,n,o={}){if(Zr(t)||ws(t)){const i={capture:!!o.useCapture,passive:!!o.usePassive},r=this._getProxyEmitter(t,i)||new Cs(t,i);this.listenTo(r,e,n,o)}else w.prototype.listenTo.call(this,t,e,n,o)}stopListening(t,e,n){if(Zr(t)||ws(t)){const o=this._getAllProxyEmitters(t);for(const t of o)this.stopListening(t,e,n)}else w.prototype.stopListening.call(this,t,e,n)}_getProxyEmitter(t,e){return function(t,e){const n=t[p];return n&&n[e]?n[e].emitter:null}(this,vs(t,e))}_getAllProxyEmitters(t){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((e=>this._getProxyEmitter(t,e))).filter((t=>!!t))}}}const _s=As(w);["_getProxyEmitter","_getAllProxyEmitters","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{As[t]=_s.prototype[t]}));class Cs extends w{constructor(t,e){super(),A(this,vs(t,e)),this._domNode=t,this._options=e}attach(t){if(this._domListeners&&this._domListeners[t])return;const e=this._createDomListener(t);this._domNode.addEventListener(t,e,this._options),this._domListeners||(this._domListeners={}),this._domListeners[t]=e}detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()}_addEventListener(t,e,n){this.attach(t),w.prototype._addEventListener.call(this,t,e,n)}_removeEventListener(t,e){w.prototype._removeEventListener.call(this,t,e),this.detach(t)}_createDomListener(t){const e=e=>{this.fire(t,e)};return e.removeListener=()=>{this._domNode.removeEventListener(t,e,this._options),delete this._domListeners[t]},e}}function vs(t,e){let n=function(t){return t["data-ck-expando"]||(t["data-ck-expando"]=r())}(t);for(const t of Object.keys(e).sort())e[t]&&(n+="-"+t);return n}class ys extends _s{constructor(t){super(),this.view=t,this.document=t.document,this.isEnabled=!1}enable(){this.isEnabled=!0}disable(){this.isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}const xs=xi((function(t,e){fe(e,tn(e),t)}));class Es{constructor(t,e,n){this.view=t,this.document=t.document,this.domEvent=e,this.domTarget=e.target,xs(this,n)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class Ds extends ys{constructor(t){super(t),this.useCapture=!1}observe(t){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((e=>{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}fire(t,e,n){this.isEnabled&&this.document.fire(t,new Es(this.view,e,n))}}class Is extends Ds{constructor(t){super(t),this.domEventType=["keydown","keyup"]}onDomEvent(t){const e={keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return mr(this)}};this.fire(t.type,t,e)}}const Ts=function(){return Y.Date.now()};var Ms=/\s/;const Ss=function(t){for(var e=t.length;e--&&Ms.test(t.charAt(e)););return e};var Ns=/^\s+/;const Bs=function(t){return t?t.slice(0,Ss(t)+1).replace(Ns,""):t};var Ps=/^[-+]0x[0-9a-f]+$/i,zs=/^0b[01]+$/i,Ls=/^0o[0-7]+$/i,Os=parseInt;const Rs=function(t){if("number"==typeof t)return t;if(Oo(t))return NaN;if(D(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=D(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Bs(t);var n=zs.test(t);return n||Ls.test(t)?Os(t.slice(2),n?2:8):Ps.test(t)?NaN:+t};var js=Math.max,Fs=Math.min;const Vs=function(t,e,n){var o,i,r,s,a,c,l=0,d=!1,h=!1,u=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function g(e){var n=o,r=i;return o=i=void 0,l=e,s=t.apply(r,n)}function m(t){return l=t,a=setTimeout(f,e),d?g(t):s}function p(t){var n=t-c;return void 0===c||n>=e||n<0||h&&t-l>=r}function f(){var t=Ts();if(p(t))return k(t);a=setTimeout(f,function(t){var n=e-(t-c);return h?Fs(n,r-(t-l)):n}(t))}function k(t){return a=void 0,u&&o?g(t):(o=i=void 0,s)}function b(){var t=Ts(),n=p(t);if(o=arguments,i=this,c=t,n){if(void 0===a)return m(c);if(h)return clearTimeout(a),a=setTimeout(f,e),g(c)}return void 0===a&&(a=setTimeout(f,e)),s}return e=Rs(e)||0,D(n)&&(d=!!n.leading,r=(h="maxWait"in n)?js(Rs(n.maxWait)||0,e):r,u="trailing"in n?!!n.trailing:u),b.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=c=i=a=void 0},b.flush=function(){return void 0===a?s:k(Ts())},b};class Us extends ys{constructor(t){super(t),this._fireSelectionChangeDoneDebounced=Vs((t=>{this.document.fire("selectionChangeDone",t)}),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new Gi(e.getRanges(),{backward:e.isBackward,fake:!1});t!=ur.arrowleft&&t!=ur.arrowup||n.setTo(n.getFirstPosition()),t!=ur.arrowright&&t!=ur.arrowdown||n.setTo(n.getLastPosition());const o={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",o),this._fireSelectionChangeDoneDebounced(o)}}const Hs=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const Ws=function(t){return this.__data__.has(t)};function Gs(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new ae;++ea))return!1;var l=r.get(t),d=r.get(e);if(l&&d)return l==e&&d==t;var h=-1,u=!0,g=2&n?new qs:void 0;for(r.set(t,e),r.set(e,t);++h{this.document.fire("selectionChangeDone",t)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=Vs((()=>this.document.isSelecting=!1),5e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument,n=()=>{this.document.isSelecting&&(this._handleSelectionChange(null,e),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(t,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(t,"keydown",n,{priority:"highest",useCapture:!0}),this.listenTo(t,"keyup",n,{priority:"highest",useCapture:!0}),this._documents.has(e)||(this.listenTo(e,"mouseup",n,{priority:"highest",useCapture:!0}),this.listenTo(e,"selectionchange",((t,n)=>{this.document.isComposing&&!cr.isAndroid||(this._handleSelectionChange(n,e),this._documentIsSelectingInactivityTimeoutDebounced())})),this._documents.add(e))}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(n);if(0!=o.rangeCount){if(this.view.hasDomSelection=!0,!(this.selection.isEqual(o)&&this.domConverter.isDomSelectionCorrect(n)||++this._loopbackCounter>60))if(this.selection.isSimilar(o))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:o,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class ga extends Ds{constructor(t){super(t),this.domEventType=["focus","blur"],this.useCapture=!0;const e=this.document;e.on("focus",(()=>{e.isFocused=!0,this._renderTimeoutId=setTimeout((()=>t.change((()=>{}))),50)})),e.on("blur",((n,o)=>{const i=e.selection.editableElement;null!==i&&i!==o.target||(e.isFocused=!1,t.change((()=>{})))}))}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class ma extends Ds{constructor(t){super(t),this.domEventType=["compositionstart","compositionupdate","compositionend"];const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0}),{priority:"low"}),e.on("compositionend",(()=>{e.isComposing=!1}),{priority:"low"})}onDomEvent(t){this.fire(t.type,t,{data:t.data})}}class pa{constructor(t){this.files=function(t){const e=Array.from(t.files||[]),n=Array.from(t.items||[]);if(e.length)return e;return n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}(t),this._native=t}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}class fa extends Ds{constructor(t){super(t),this.domEventType=["beforeinput"]}onDomEvent(t){const e=t.getTargetRanges(),n=this.view,o=n.document;let i=null,r=null,s=[];if(t.dataTransfer&&(i=new pa(t.dataTransfer)),null!==t.data?r=t.data:i&&(r=i.getData("text/plain")),o.selection.isFake)s=Array.from(o.selection.getRanges());else if(e.length)s=e.map((t=>n.domConverter.domRangeToView(t)));else if(cr.isAndroid){const e=t.target.ownerDocument.defaultView.getSelection();s=Array.from(n.domConverter.domSelectionToView(e).getRanges())}cr.isAndroid&&"insertCompositionText"==t.inputType&&r&&r.endsWith("\n")?this.fire(t.type,t,{inputType:"insertParagraph",targetRanges:[n.createRange(s[0].end)]}):this.fire(t.type,t,{data:r,dataTransfer:i,targetRanges:s,inputType:t.inputType,isComposing:t.isComposing})}}function ka(t,...e){e.forEach((e=>{const n=Object.getOwnPropertyNames(e),o=Object.getOwnPropertySymbols(e);n.concat(o).forEach((n=>{if(n in t.prototype)return;if("function"==typeof e&&("length"==n||"name"==n||"prototype"==n))return;const o=Object.getOwnPropertyDescriptor(e,n);o.enumerable=!1,Object.defineProperty(t.prototype,n,o)}))}))}const ba=function(t){return"string"==typeof t||!ve(t)&&st(t)&&"[object String]"==ot(t)};function wa(t,e,n={},o=[]){const i=n&&n.xmlns,r=i?t.createElementNS(i,e):t.createElement(e);for(const t in n)r.setAttribute(t,n[t]);!ba(o)&&po(o)||(o=[o]);for(let e of o)ba(e)&&(e=t.createTextNode(e)),r.appendChild(e);return r}class Aa{constructor(t,e){Aa._observerInstance||Aa._createObserver(),this._element=t,this._callback=e,Aa._addElementCallback(t,e),Aa._observerInstance.observe(t)}destroy(){Aa._deleteElementCallback(this._element,this._callback)}static _addElementCallback(t,e){Aa._elementCallbacks||(Aa._elementCallbacks=new Map);let n=Aa._elementCallbacks.get(t);n||(n=new Set,Aa._elementCallbacks.set(t,n)),n.add(e)}static _deleteElementCallback(t,e){const n=Aa._getElementCallbacks(t);n&&(n.delete(e),n.size||(Aa._elementCallbacks.delete(t),Aa._observerInstance.unobserve(t))),Aa._elementCallbacks&&!Aa._elementCallbacks.size&&(Aa._observerInstance=null,Aa._elementCallbacks=null)}static _getElementCallbacks(t){return Aa._elementCallbacks?Aa._elementCallbacks.get(t):null}static _createObserver(){Aa._observerInstance=new Ao.window.ResizeObserver((t=>{for(const e of t){const t=Aa._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}function _a(t){return!!(t&&t.getClientRects&&t.getClientRects().length)}function Ca(t){const e=t.next();return e.done?null:e.value}Aa._observerInstance=null,Aa._elementCallbacks=null;class va extends(As(P)){constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null),this._elements=new Set,this._nextEventLoopTimeout=null}add(t){if(this._elements.has(t))throw new c("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}class ya{constructor(){this._listener=new _s}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+mr(e),e)}))}set(t,e,n={}){const o=pr(t),i=n.priority;this._listener.listenTo(this._listener,"_keydown:"+o,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:i})}press(t){return!!this._listener.fire("_keydown:"+mr(t),t)}destroy(){this._listener.stopListening()}}class xa extends ys{constructor(t){super(t),this.document.on("keydown",((t,e)=>{if(this.isEnabled&&((n=e.keyCode)==ur.arrowright||n==ur.arrowleft||n==ur.arrowup||n==ur.arrowdown)){const n=new Yi(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}}class Ea extends ys{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(!this.isEnabled||n.keyCode!=ur.tab||n.ctrlKey)return;const o=new Yi(e,"tab",e.selection.getFirstRange());e.fire(o,n),o.stop.called&&t.stop()}))}observe(){}}function Da(t){return"[object Range]"==Object.prototype.toString.apply(t)}function Ia(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const Ta=["top","right","bottom","left","width","height"];class Ma{constructor(t){const e=Da(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),Ba(t)||e)if(e){const e=Ma.getDomRangeRects(t);Sa(this,Ma.getBoundingRect(e))}else Sa(this,t.getBoundingClientRect());else if(ws(t)){const{innerWidth:e,innerHeight:n}=t;Sa(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else Sa(this,t)}clone(){return new Ma(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left),width:0,height:0};return e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0?null:new Ma(e)}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(!Na(t)){let n=t.parentNode||t.commonAncestorContainer;for(;n&&!Na(n);){const t=new Ma(n),o=e.getIntersection(t);if(!o)return null;o.getArea()r.contains(t)))){let{scrollX:s,scrollY:a}=t;Oa(i,r)?a-=r.top-e.top+n:La(o,r)&&(a+=e.bottom-r.bottom+n),Ra(e,r)?s-=r.left-e.left+n:ja(e,r)&&(s+=e.right-r.right+n),t.scrollTo(s,a)}}function za(t,e){const n=Fa(t);let o,i;for(;t!=n.document.body;)i=e(),o=new Ma(t).excludeScrollbarsAndBorders(),o.contains(i)||(Oa(i,o)?t.scrollTop-=o.top-i.top:La(i,o)&&(t.scrollTop+=i.bottom-o.bottom),Ra(i,o)?t.scrollLeft-=o.left-i.left:ja(i,o)&&(t.scrollLeft+=i.right-o.right)),t=t.parentNode}function La(t,e){return t.bottom>e.bottom}function Oa(t,e){return t.tope.right}function Fa(t){return Da(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function Va(t){if(Da(t)){let e=t.commonAncestorContainer;return zr(e)&&(e=e.parentNode),e}return t.parentNode}function Ua(t,e){const n=Fa(t),o=new Ma(t);if(n===e)return o;{let t=n;for(;t!=e;){const e=t.frameElement,n=new Ma(e).excludeScrollbarsAndBorders();o.moveBy(n.left,n.top),t=t.parent}}return o}class Ha extends P{constructor(t){super(),this.document=new tr(t),this.domConverter=new ps(this.document),this.domRoots=new Map,this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new ns(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._initialDomRootAttributes=new WeakMap,this._observers=new Map,this._ongoingChange=!1,this._postFixersInProgress=!1,this._renderingDisabled=!1,this._hasChangedSinceTheLastRendering=!1,this._writer=new yr(this.document),this.addObserver(da),this.addObserver(ua),this.addObserver(ga),this.addObserver(Is),this.addObserver(Us),this.addObserver(ma),this.addObserver(xa),this.addObserver(fa),this.addObserver(Ea),this.document.on("arrowKey",Hr,{priority:"low"}),wr(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const o={};for(const{name:e,value:i}of Array.from(t.attributes))o[e]=i,"class"===e?this._writer.addClass(i.split(" "),n):this._writer.setAttribute(e,i,n);this._initialDomRootAttributes.set(t,o);const i=()=>{this._writer.setAttribute("contenteditable",(!n.isReadOnly).toString(),n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};i(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(i))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection(){const t=this.document.selection.getFirstRange();t&&function({target:t,viewportOffset:e=0}){const n=Fa(t);let o=n,i=null;for(;o;){let r;r=Va(o==n?t:i),za(r,(()=>Ua(t,o)));const s=Ua(t,o);if(Pa(o,s,e),o.parent!=o){if(i=o.frameElement,o=o.parent,!i)return}else o=null}}({target:this.domConverter.viewRangeToDom(t),viewportOffset:20})}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new c("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){c.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return Vi._createAt(t,e)}createPositionAfter(t){return Vi._createAfter(t)}createPositionBefore(t){return Vi._createBefore(t)}createRange(...t){return new Ui(...t)}createRangeOn(t){return Ui._createOn(t)}createRangeIn(t){return Ui._createIn(t)}createSelection(...t){return new Gi(...t)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class Wa{is(){throw new Error("is() method is abstract")}}class Ga extends Wa{constructor(t){super(),this.parent=null,this._attrs=Bo(t)}get document(){return null}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new c("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new c("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=Io(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o](t[e[0]]=e[1],t)),{})),t}_clone(t){return new Ga(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=Bo(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}Ga.prototype.is=function(t){return"node"===t||"model:node"===t};class qa{constructor(t){this._nodes=[],t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new c("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&t1e4)return t.slice(0,n).concat(e).concat(t.slice(n+o,t.length));{const i=Array.from(t);return i.splice(n,o,...e),i}}(this._nodes,Array.from(e),t,0)}_removeNodes(t,e=1){return this._nodes.splice(t,e)}toJSON(){return this._nodes.map((t=>t.toJSON()))}}class Ya extends Ga{constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new Ya(this.data,this.getAttributes())}static fromJSON(t){return new Ya(t.data,t.attributes)}}Ya.prototype.is=function(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t};class $a extends Wa{constructor(t,e,n){if(super(),this.textNode=t,e<0||e>t.offsetSize)throw new c("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new c("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}$a.prototype.is=function(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t};class Ka extends Ga{constructor(t,e,n){super(e),this.name=t,this._children=new qa,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):void 0;return new Ka(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new Ya(t)];po(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new Ya(t):t instanceof $a?new Ya(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e;if(t.children){e=[];for(const n of t.children)n.name?e.push(Ka.fromJSON(n)):e.push(Ya.fromJSON(n))}return new Ka(t.name,t.attributes,e)}}Ka.prototype.is=function(t,e){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t};class Qa{constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new c("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new c("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this.position=t.startPosition.clone():this.position=Ja._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}skip(t){let e,n,o,i;do{o=this.position,i=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this.position=o,this._visitedParent=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0,value:void 0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const o=Xa(e,n),i=o||tc(e,n,o);if(i instanceof Ka)return this.shallow?e.offset++:(e.path.push(0),this._visitedParent=i),this.position=e,Za("elementStart",i,t,e,1);if(i instanceof Ya){let o;if(this.singleCharacters)o=1;else{let t=i.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),o=e.offset-t}const i=e.offset-r.startOffset,s=new $a(r,i-o,o);return e.offset-=o,this.position=e,Za("text",s,t,e,o)}return e.path.pop(),this.position=e,this._visitedParent=n.parent,Za("elementStart",n,t,e,1)}}function Za(t,e,n,o,i){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}class Ja extends Wa{constructor(t,e,n="toNone"){if(super(),!t.is("element")&&!t.is("documentFragment"))throw new c("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new c("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;e1)return!1;if(1===e)return nc(t,this,n);if(-1===e)return nc(this,t,n)}return this.path.length===t.path.length||(this.path.length>t.path.length?oc(this.path,e):oc(t.path,e))}hasSameParentAs(t){if(this.root!==t.root)return!1;return"same"==Io(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=Ja._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?Ja._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=Ja._createAt(this);if(this.root!=t.root)return n;if("same"==Io(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==Io(t.getParentPath(),this.getParentPath())){const o=t.path.length-1;if(t.offset<=this.path[o]){if(t.offset+e>this.path[o])return null;n.path[o]-=e}}return n}_getTransformedByInsertion(t,e){const n=Ja._createAt(this);if(this.root!=t.root)return n;if("same"==Io(t.getParentPath(),this.getParentPath()))(t.offset=e;){if(t.path[o]+i!==n.maxOffset)return!1;i=1,o--,n=n.parent}return!0}(t,n+1))}function oc(t,e){for(;ee+1;){const e=o.maxOffset-n.offset;0!==e&&t.push(new ic(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,o=o.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],o=e-n.offset;0!==o&&t.push(new ic(n,n.getShiftedBy(o))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new Qa(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new Qa(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new Qa(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new ic(this.start,this.end)]}getTransformedByOperations(t){const e=[new ic(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,o):new this(o,n)}static _createIn(t){return new this(Ja._createAt(t,0),Ja._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(Ja._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new c("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),o=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(o.start);e++)o.start=Ja._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);if(!n)throw new c("mapping-model-position-view-parent-not-found",this,{modelPosition:e.modelPosition});e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),o=this._viewToModelMapping.get(n),i=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=Ja._createAt(o,i)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t,e={}){const n=this.toModelElement(t);if(this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);e.defer?this._deferredBindingRemovals.set(t,t.root):(this._viewToModelMapping.delete(t),this._modelToViewMapping.get(n)==t&&this._modelToViewMapping.delete(n))}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const o=this._elementToMarkerNames.get(t)||new Set;o.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,o)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const o=this._elementToMarkerNames.get(t);o&&(o.delete(e),0==o.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}flushDeferredBindings(){for(const[t,e]of this._deferredBindingRemovals)t.root==e&&this.unbindViewElement(t);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new ic(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new Ui(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t){return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t)}if(t.is("$text"))return e;let o=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class cc extends w{constructor(t){super(),this._conversionApi={dispatcher:this,...t},this._firedEventsMap=new WeakMap}convertChanges(t,e,n){const o=this._createConversionApi(n,t.getRefreshedItems());for(const e of t.getMarkersToRemove())this._convertMarkerRemove(e.name,e.range,o);const i=this._reduceChanges(t.getChanges());for(const t of i)"insert"===t.type?this._convertInsert(ic._createFromPositionAndShift(t.position,t.length),o):"reinsert"===t.type?this._convertReinsert(ic._createFromPositionAndShift(t.position,t.length),o):"remove"===t.type?this._convertRemove(t.position,t.length,t.name,o):this._convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,o);for(const t of o.mapper.flushUnboundMarkerNames()){const n=e.get(t).getRange();this._convertMarkerRemove(t,n,o),this._convertMarkerAdd(t,n,o)}for(const e of t.getMarkersToAdd())this._convertMarkerAdd(e.name,e.range,o);o.mapper.flushDeferredBindings(),o.consumable.verifyAllConsumed("insert")}convert(t,e,n,o={}){const i=this._createConversionApi(n,void 0,o);this._convertInsert(t,i);for(const[t,n]of e)this._convertMarkerAdd(t,n,i);i.consumable.verifyAllConsumed("insert")}convertSelection(t,e,n){const o=Array.from(e.getMarkersAtPosition(t.getFirstPosition())),i=this._createConversionApi(n);if(this._addConsumablesForSelection(i.consumable,t,o),this.fire("selection",{selection:t},i),t.isCollapsed){for(const e of o){const n=e.getRange();if(!lc(t.getFirstPosition(),e,i.mapper))continue;const o={item:t,markerName:e.name,markerRange:n};i.consumable.test(t,"addMarker:"+e.name)&&this.fire(`addMarker:${e.name}`,o,i)}for(const e of t.getAttributeKeys()){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};i.consumable.test(t,"attribute:"+n.attributeKey)&&this.fire(`attribute:${n.attributeKey}:$text`,n,i)}}}_convertInsert(t,e,n={}){n.doNotAddConsumables||this._addConsumablesForInsert(e.consumable,Array.from(t));for(const n of Array.from(t.getWalker({shallow:!0})).map(dc))this._testAndFire("insert",n,e)}_convertRemove(t,e,n,o){this.fire(`remove:${n}`,{position:t,length:e},o)}_convertAttribute(t,e,n,o,i){this._addConsumablesForRange(i.consumable,t,`attribute:${e}`);for(const r of t){const t={item:r.item,range:ic._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:o};this._testAndFire(`attribute:${e}`,t,i)}}_convertReinsert(t,e){const n=Array.from(t.getWalker({shallow:!0}));this._addConsumablesForInsert(e.consumable,n);for(const t of n.map(dc))this._testAndFire("insert",{...t,reconversion:!0},e)}_convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;const o=`addMarker:${t}`;if(n.consumable.add(e,o),this.fire(o,{markerName:t,markerRange:e},n),n.consumable.consume(e,o)){this._addConsumablesForRange(n.consumable,e,o);for(const i of e.getItems()){if(!n.consumable.test(i,o))continue;const r={item:i,range:ic._createOn(i),markerName:t,markerRange:e};this.fire(o,r,n)}}}_convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&this.fire(`removeMarker:${t}`,{markerName:t,markerRange:e},n)}_reduceChanges(t){const e={changes:t};return this.fire("reduceChanges",e),e.changes}_addConsumablesForInsert(t,e){for(const n of e){const e=n.item;if(null===t.test(e,"insert")){t.add(e,"insert");for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n)}}return t}_addConsumablesForRange(t,e,n){for(const o of e.getItems())t.add(o,n);return t}_addConsumablesForSelection(t,e,n){t.add(e,"selection");for(const o of n)t.add(e,"addMarker:"+o.name);for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n);return t}_testAndFire(t,e,n){const o=function(t,e){const n=e.item.is("element")?e.item.name:"$text";return`${t}:${n}`}(t,e),i=e.item.is("$textProxy")?n.consumable._getSymbolForTextProxy(e.item):e.item,r=this._firedEventsMap.get(n),s=r.get(i);if(s){if(s.has(o))return;s.add(o)}else r.set(i,new Set([o]));this.fire(o,e,n)}_testAndFireAddAttributes(t,e){const n={item:t,range:ic._createOn(t)};for(const t of n.item.getAttributeKeys())n.attributeKey=t,n.attributeOldValue=null,n.attributeNewValue=n.item.getAttribute(t),this._testAndFire(`attribute:${t}`,n,e)}_createConversionApi(t,e=new Set,n={}){const o={...this._conversionApi,consumable:new sc,writer:t,options:n,convertItem:t=>this._convertInsert(ic._createOn(t),o),convertChildren:t=>this._convertInsert(ic._createIn(t),o,{doNotAddConsumables:!0}),convertAttributes:t=>this._testAndFireAddAttributes(t,o),canReuseView:t=>!e.has(o.mapper.toModelElement(t))};return this._firedEventsMap.set(o,new Map),o}}function lc(t,e,n){const o=e.getRange(),i=Array.from(t.getAncestors());i.shift(),i.reverse();return!i.some((t=>{if(o.containsItem(t)){return!!n.toViewElement(t).getCustomProperty("addHighlight")}}))}function dc(t){return{item:t.item,range:ic._createFromPositionAndShift(t.previousPosition,t.length)}}class hc extends(b(Wa)){constructor(...t){super(),this._lastRangeBackward=!1,this._ranges=[],this._attrs=new Map,t.length&&this.setTo(...t)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new ic(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new ic(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new ic(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(...t){let[e,n,o]=t;if("object"==typeof n&&(o=n,n=void 0),null===e)this._setRanges([]);else if(e instanceof hc)this._setRanges(e.getRanges(),e.isBackward);else if(e&&"function"==typeof e.getRanges)this._setRanges(e.getRanges(),e.isBackward);else if(e instanceof ic)this._setRanges([e],!!o&&!!o.backward);else if(e instanceof Ja)this._setRanges([new ic(e)]);else if(e instanceof Ga){const t=!!o&&!!o.backward;let i;if("in"==n)i=ic._createIn(e);else if("on"==n)i=ic._createOn(e);else{if(void 0===n)throw new c("model-selection-setto-required-second-parameter",[this,e]);i=new ic(Ja._createAt(e,n))}this._setRanges([i],t)}else{if(!po(e))throw new c("model-selection-setto-not-selectable",[this,e]);this._setRanges(e,o&&!!o.backward)}}_setRanges(t,e=!1){const n=Array.from(t),o=n.some((e=>{if(!(e instanceof ic))throw new c("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));(n.length!==this._ranges.length||o)&&(this._replaceAllRanges(n),this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0}))}setFocus(t,e){if(null===this.anchor)throw new c("model-selection-setfocus-no-ranges",[this,t]);const n=Ja._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(o)?(this._pushRange(new ic(n,o)),this._lastRangeBackward=!0):(this._pushRange(new ic(o,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=mc(e.start,t);n&&pc(n,e)&&(yield n);for(const n of e.getWalker()){const o=n.item;"elementEnd"==n.type&&gc(o,t,e)&&(yield o)}const o=mc(e.end,t);o&&!e.end.isTouching(Ja._createAt(o,0))&&pc(o,e)&&(yield o)}}containsEntireContent(t=this.anchor.root){const e=Ja._createAt(t,0),n=Ja._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new ic(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function uc(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&!!t.parent)}function gc(t,e,n){return uc(t,e)&&pc(t,n)}function mc(t,e){const n=t.parent.root.document.model.schema,o=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let i=!1;const r=o.find((t=>!i&&(i=n.isLimit(t),!i&&uc(t,e))));return o.forEach((t=>e.add(t))),r}function pc(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);if(!n)return!0;return!e.containsRange(ic._createOn(n),!0)}hc.prototype.is=function(t){return"selection"===t||"model:selection"===t};class fc extends(b(ic)){constructor(t,e){super(t,e),kc.call(this)}detach(){this.stopListening()}toRange(){return new ic(this.start,this.end)}static fromRange(t){return new fc(t.start,t.end)}}function kc(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&bc.call(this,n)}),{priority:"low"})}function bc(t){const e=this.getTransformedByOperation(t),n=ic._createFromRanges(e),o=!n.isEqual(this),i=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let r=null;if(o){"$graveyard"==n.root.rootName&&(r="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:r})}else i&&this.fire("change:content",this.toRange(),{deletionPosition:r})}fc.prototype.is=function(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t};const wc="selection:";class Ac extends(b(Wa)){constructor(t){super(),this._selection=new _c(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(...t){this._selection.setTo(...t)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return wc+t}static _isStoreAttributeKey(t){return t.startsWith(wc)}}Ac.prototype.is=function(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t};class _c extends hc{constructor(t){super(),this.markers=new fo({idProperty:"name"}),this._model=t.model,this._document=t,this._attributePriority=new Map,this._selectionRestorePosition=null,this._hasChangedRange=!1,this._overriddenGravityRegister=new Set,this._observedMarkers=new Set,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((t,e,n,o)=>{this._updateMarker(e,o)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const o of n.getChanges()){if("insert"!=o.type)continue;const n=o.position.parent;o.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith(wc)));for(const o of e)t.removeAttribute(o,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=o.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const o=e.getRange();for(const n of this.getRanges())o.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let o=!1;const i=Array.from(this.markers),r=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!r?(this.markers.add(t),o=!0):!n&&r&&(this.markers.remove(t),o=!0)}else r&&(this.markers.remove(t),o=!0);o&&this.fire("change:marker",{oldMarkers:i,directChange:!1})}_updateAttributes(t){const e=Bo(this._getSurroundingAttributes()),n=Bo(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const o=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||o.push(t);for(const[t]of n)this.hasAttribute(t)||o.push(t);o.length>0&&this.fire("change:attribute",{attributeKeys:o,directChange:!1})}_setAttribute(t,e,n=!0){const o=n?"normal":"low";if("low"==o&&"normal"==this._attributePriority.get(t))return!1;return super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,o),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return("low"!=n||"normal"!=this._attributePriority.get(t))&&(this._attributePriority.set(t,n),!!super.hasAttribute(t)&&(this._attrs.delete(t),!0))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,o]of t){this._setAttribute(n,o,!1)&&e.add(n)}return e}*getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith(wc)){const n=e.substr(wc.length);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;let n=null;if(this.isCollapsed){const o=t.textNode?t.textNode:t.nodeBefore,i=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=Cc(o)),n||(n=Cc(i)),!this.isGravityOverridden&&!n){let t=o;for(;t&&!e.isInline(t)&&!n;)t=t.previousSibling,n=Cc(t)}if(!n){let t=i;for(;t&&!e.isInline(t)&&!n;)t=t.nextSibling,n=Cc(t)}n||(n=this.getStoredAttributes())}else{const t=this.getFirstRange();for(const o of t){if(o.item.is("element")&&e.isObject(o.item))break;if("text"==o.type){n=o.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function Cc(t){return t instanceof $a||t instanceof Ya?t.getAttributes():null}class vc{constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}const yc=function(t){return co(t,5)};class xc extends vc{elementToElement(t){return this.add(function(t){const e=Ic(t.model),n=Tc(t.view,"container");e.attributes.length&&(e.children=!0);return o=>{o.on(`insert:${e.name}`,function(t,e=Oc){return(n,o,i)=>{if(!e(o.item,i.consumable,{preflight:!0}))return;const r=t(o.item,i,o);if(!r)return;e(o.item,i.consumable);const s=i.mapper.toViewPosition(o.range.start);i.mapper.bindElements(o.item,r),i.writer.insert(s,r),i.convertAttributes(o.item),zc(r,o.item.getChildren(),i,{reconversion:o.reconversion})}}(n,Pc(e)),{priority:t.converterPriority||"normal"}),(e.children||e.attributes.length)&&o.on("reduceChanges",Bc(e),{priority:"low"})}}(t))}elementToStructure(t){return this.add(function(t){const e=Ic(t.model),n=Tc(t.view,"container");return e.children=!0,o=>{if(o._conversionApi.schema.checkChild(e.name,"$text"))throw new c("conversion-element-to-structure-disallowed-text",o,{elementName:e.name});var i,r;o.on(`insert:${e.name}`,(i=n,r=Pc(e),(t,e,n)=>{if(!r(e.item,n.consumable,{preflight:!0}))return;const o=new Map;n.writer._registerSlotFactory(function(t,e,n){return(o,i="children")=>{const r=o.createContainerElement("$slot");let s=null;if("children"===i)s=Array.from(t.getChildren());else{if("function"!=typeof i)throw new c("conversion-slot-mode-unknown",n.dispatcher,{modeOrFilter:i});s=Array.from(t.getChildren()).filter((t=>i(t)))}return e.set(r,s),r}}(e.item,o,n));const s=i(e.item,n,e);if(n.writer._clearSlotFactory(),!s)return;!function(t,e,n){const o=Array.from(e.values()).flat(),i=new Set(o);if(i.size!=o.length)throw new c("conversion-slot-filter-overlap",n.dispatcher,{element:t});if(i.size!=t.childCount)throw new c("conversion-slot-filter-incomplete",n.dispatcher,{element:t})}(e.item,o,n),r(e.item,n.consumable);const a=n.mapper.toViewPosition(e.range.start);n.mapper.bindElements(e.item,s),n.writer.insert(a,s),n.convertAttributes(e.item),function(t,e,n,o){n.mapper.on("modelToViewPosition",s,{priority:"highest"});let i=null,r=null;for([i,r]of e)zc(t,r,n,o),n.writer.move(n.writer.createRangeIn(i),n.writer.createPositionBefore(i)),n.writer.remove(i);function s(t,e){const n=e.modelPosition.nodeAfter,o=r.indexOf(n);o<0||(e.viewPosition=e.mapper.findPositionIn(i,o))}n.mapper.off("modelToViewPosition",s)}(s,o,n,{reconversion:e.reconversion})}),{priority:t.converterPriority||"normal"}),o.on("reduceChanges",Bc(e),{priority:"low"})}}(t))}attributeToElement(t){return this.add(function(t){let e=(t=yc(t)).model;"string"==typeof e&&(e={key:e});let n=`attribute:${e.key}`;e.name&&(n+=":"+e.name);if(e.values)for(const n of e.values)t.view[n]=Tc(t.view[n],"attribute");else t.view=Tc(t.view,"attribute");const o=Mc(t);return e=>{e.on(n,function(t){return(e,n,o)=>{if(!o.consumable.test(n.item,e.name))return;const i=t(n.attributeOldValue,o,n),r=t(n.attributeNewValue,o,n);if(!i&&!r)return;o.consumable.consume(n.item,e.name);const s=o.writer,a=s.document.selection;if(n.item instanceof hc||n.item instanceof Ac)s.wrap(a.getFirstRange(),r);else{let t=o.mapper.toViewRange(n.range);null!==n.attributeOldValue&&i&&(t=s.unwrap(t,i)),null!==n.attributeNewValue&&r&&s.wrap(t,r)}}}(o),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){let e=(t=yc(t)).model;"string"==typeof e&&(e={key:e});let n=`attribute:${e.key}`;e.name&&(n+=":"+e.name);if(e.values)for(const n of e.values)t.view[n]=Sc(t.view[n]);else t.view=Sc(t.view);const o=Mc(t);return e=>{var i;e.on(n,(i=o,(t,e,n)=>{if(!n.consumable.test(e.item,t.name))return;const o=i(e.attributeOldValue,n,e),r=i(e.attributeNewValue,n,e);if(!o&&!r)return;n.consumable.consume(e.item,t.name);const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new c("conversion-attribute-to-attribute-on-text",n.dispatcher,e);if(null!==e.attributeOldValue&&o)if("class"==o.key){const t=bo(o.value);for(const e of t)a.removeClass(e,s)}else if("style"==o.key){const t=Object.keys(o.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(o.key,s);if(null!==e.attributeNewValue&&r)if("class"==r.key){const t=bo(r.value);for(const e of t)a.addClass(e,s)}else if("style"==r.key){const t=Object.keys(r.value);for(const e of t)a.setStyle(e,r.value[e],s)}else a.setAttribute(r.key,r.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){const e=Tc(t.view,"ui");return n=>{var o;n.on(`addMarker:${t.model}`,(o=e,(t,e,n)=>{e.isOpening=!0;const i=o(e,n);e.isOpening=!1;const r=o(e,n);if(!i||!r)return;const s=e.markerRange;if(s.isCollapsed&&!n.consumable.consume(s,t.name))return;for(const e of s)if(!n.consumable.consume(e.item,t.name))return;const a=n.mapper,c=n.writer;c.insert(a.toViewPosition(s.start),i),n.mapper.bindElementToMarker(i,e.markerName),s.isCollapsed||(c.insert(a.toViewPosition(s.end),r),n.mapper.bindElementToMarker(r,e.markerName)),t.stop()}),{priority:t.converterPriority||"normal"}),n.on(`removeMarker:${t.model}`,((t,e,n)=>{const o=n.mapper.markerNameToElements(e.markerName);if(o){for(const t of o)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on(`addMarker:${t.model}`,(n=t.view,(t,e,o)=>{if(!e.item)return;if(!(e.item instanceof hc||e.item instanceof Ac||e.item.is("$textProxy")))return;const i=Nc(n,e,o);if(!i)return;if(!o.consumable.consume(e.item,t.name))return;const r=o.writer,s=Ec(r,i),a=r.document.selection;if(e.item instanceof hc||e.item instanceof Ac)r.wrap(a.getFirstRange(),s);else{const t=o.mapper.toViewRange(e.range),n=r.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){o.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on(`addMarker:${t.model}`,function(t){return(e,n,o)=>{if(!n.item)return;if(!(n.item instanceof Ka))return;const i=Nc(t,n,o);if(!i)return;if(!o.consumable.test(n.item,e.name))return;const r=o.mapper.toViewElement(n.item);if(r&&r.getCustomProperty("addHighlight")){o.consumable.consume(n.item,e.name);for(const t of ic._createIn(n.item))o.consumable.consume(t.item,e.name);r.getCustomProperty("addHighlight")(r,i,o.writer),o.mapper.bindElementToMarker(r,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on(`removeMarker:${t.model}`,function(t){return(e,n,o)=>{if(n.markerRange.isCollapsed)return;const i=Nc(t,n,o);if(!i)return;const r=Ec(o.writer,i),s=o.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)if(o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement"))o.writer.unwrap(o.writer.createRangeOn(t),r);else{t.getCustomProperty("removeHighlight")(t,i.id,o.writer)}o.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){const e=(t=yc(t)).model;let n=t.view;n||(n=n=>({group:e,name:n.substr(t.model.length+1)}));return o=>{var i;o.on(`addMarker:${e}`,(i=n,(t,e,n)=>{const o=i(e.markerName,n);if(!o)return;const r=e.markerRange;n.consumable.consume(r,t.name)&&(Dc(r,!1,n,e,o),Dc(r,!0,n,e,o),t.stop())}),{priority:t.converterPriority||"normal"}),o.on(`removeMarker:${e}`,function(t){return(e,n,o)=>{const i=t(n.markerName,o);if(!i)return;const r=o.mapper.markerNameToElements(n.markerName);if(r){for(const t of r)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${i.group}-start-before`,t),s(`data-${i.group}-start-after`,t),s(`data-${i.group}-end-before`,t),s(`data-${i.group}-end-after`,t)):o.writer.clear(o.writer.createRangeOn(t),t);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(i.name),0==n.size?o.writer.removeAttribute(t,e):o.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(n),{priority:t.converterPriority||"normal"})}}(t))}}function Ec(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Dc(t,e,n,o,i){const r=e?t.start:t.end,s=r.nodeAfter&&r.nodeAfter.is("element")?r.nodeAfter:null,a=r.nodeBefore&&r.nodeBefore.is("element")?r.nodeBefore:null;if(s||a){let t,r;e&&s||!e&&!a?(t=s,r=!0):(t=a,r=!1);const c=n.mapper.toViewElement(t);if(c)return void function(t,e,n,o,i,r){const s=`data-${r.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(r.name),o.writer.setAttribute(s,a.join(","),t),o.mapper.bindElementToMarker(t,i.markerName)}(c,e,r,n,o,i)}!function(t,e,n,o,i){const r=`${i.group}-${e?"start":"end"}`,s=i.name?{name:i.name}:null,a=n.writer.createUIElement(r,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,o.markerName)}(n.mapper.toViewPosition(r),e,n,o,i)}function Ic(t){return"string"==typeof t&&(t={name:t}),t.attributes?Array.isArray(t.attributes)||(t.attributes=[t.attributes]):t.attributes=[],t.children=!!t.children,t}function Tc(t,e){return"function"==typeof t?t:(n,o)=>function(t,e,n){"string"==typeof t&&(t={name:t});let o;const i=e.writer,r=Object.assign({},t.attributes);if("container"==n)o=i.createContainerElement(t.name,r);else if("attribute"==n){const e={priority:t.priority||er.DEFAULT_PRIORITY};o=i.createAttributeElement(t.name,r,e)}else o=i.createUIElement(t.name,r);if(t.styles){const e=Object.keys(t.styles);for(const n of e)i.setStyle(n,t.styles[n],o)}if(t.classes){const e=t.classes;if("string"==typeof e)i.addClass(e,o);else for(const t of e)i.addClass(t,o)}return o}(t,o,e)}function Mc(t){return t.model.values?(e,n,o)=>{const i=t.view[e];return i?i(e,n,o):null}:t.view}function Sc(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Nc(t,e,n){const o="function"==typeof t?t(e,n):t;return o?(o.priority||(o.priority=10),o.id||(o.id=e.markerName),o):null}function Bc(t){const e=function(t){return(e,n)=>{if(!e.is("element",t.name))return!1;if("attribute"==n.type){if(t.attributes.includes(n.attributeKey))return!0}else if(t.children)return!0;return!1}}(t);return(t,n)=>{const o=[];n.reconvertedElements||(n.reconvertedElements=new Set);for(const t of n.changes){const i="attribute"==t.type?t.range.start.nodeAfter:t.position.parent;if(i&&e(i,t)){if(!n.reconvertedElements.has(i)){n.reconvertedElements.add(i);const t=Ja._createBefore(i);o.push({type:"remove",name:i.name,position:t,length:1},{type:"reinsert",name:i.name,position:t,length:1})}}else o.push(t)}n.changes=o}}function Pc(t){return(e,n,o={})=>{const i=["insert"];for(const n of t.attributes)e.hasAttribute(n)&&i.push(`attribute:${n}`);return!!i.every((t=>n.test(e,t)))&&(o.preflight||i.forEach((t=>n.consume(e,t))),!0)}}function zc(t,e,n,o){for(const i of e)Lc(t.root,i,n,o)||n.convertItem(i)}function Lc(t,e,n,o){const{writer:i,mapper:r}=n;if(!o.reconversion)return!1;const s=r.toViewElement(e);return!(!s||s.root==t)&&(!!n.canReuseView(s)&&(i.move(i.createRangeOn(s),r.toViewPosition(Ja._createBefore(e))),!0))}function Oc(t,e,{preflight:n}={}){return n?e.test(t,"insert"):e.consume(t,"insert")}function Rc(t){const{schema:e,document:n}=t.model;for(const o of n.getRootNames()){const i=n.getRoot(o);if(i.isEmpty&&!e.checkChild(i,"$text")&&e.checkChild(i,"paragraph"))return t.insertElement("paragraph",i),!0}return!1}function jc(t,e,n){const o=n.createContext(t);return!!n.checkChild(o,"paragraph")&&!!n.checkChild(o.push("paragraph"),e)}function Fc(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class Vc extends vc{elementToElement(t){return this.add(Uc(t))}elementToAttribute(t){return this.add(function(t){Gc(t=yc(t));const e=qc(t,!1),n=Hc(t.view),o=n?`element:${n}`:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=yc(t);let e=null;("string"==typeof t.view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key;let n;if("class"==e||"style"==e){n={["class"==e?"classes":"styles"]:t.view.value}}else{n={attributes:{[e]:void 0===t.view.value?/[\s\S]*/:t.view.value}}}t.view.name&&(n.name=t.view.name);return t.view=n,e}(t));Gc(t,e);const n=qc(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){const e=function(t){return(e,n)=>{const o="string"==typeof t?t:t(e,n);return n.writer.createElement("$marker",{"data-name":o})}}(t.model);return Uc({...t,model:e})}(t))}dataToMarker(t){return this.add(function(t){(t=yc(t)).model||(t.model=e=>e?t.view+":"+e:t.view);const e={view:t.view,model:t.model},n=Wc(Yc(e,"start")),o=Wc(Yc(e,"end"));return i=>{i.on(`element:${t.view}-start`,n,{priority:t.converterPriority||"normal"}),i.on(`element:${t.view}-end`,o,{priority:t.converterPriority||"normal"});const r=s.get("low"),a=s.get("highest"),c=s.get(t.converterPriority)/a;i.on("element",function(t){return(e,n,o)=>{const i=`data-${t.view}`;function r(e,i){for(const r of i){const i=t.model(r,o),s=o.writer.createElement("$marker",{"data-name":i});o.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(o.consumable.test(n.viewItem,{attributes:i+"-end-after"})||o.consumable.test(n.viewItem,{attributes:i+"-start-after"})||o.consumable.test(n.viewItem,{attributes:i+"-end-before"})||o.consumable.test(n.viewItem,{attributes:i+"-start-before"}))&&(n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor)),o.consumable.consume(n.viewItem,{attributes:i+"-end-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-end-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-start-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-end-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-end-before").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-start-before").split(",")))}}(e),{priority:r+c})}}(t))}}function Uc(t){const e=Wc(t=yc(t)),n=Hc(t.view),o=n?`element:${n}`:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"normal"})}}function Hc(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function Wc(t){const e=new Po(t.view);return(n,o,i)=>{const r=e.match(o.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!i.consumable.test(o.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,o.viewItem,i);a&&i.safeInsert(a,o.modelCursor)&&(i.consumable.consume(o.viewItem,s),i.convertChildren(o.viewItem,a),i.updateConversionResult(a,o))}}function Gc(t,e=null){const n=null===e||(t=>t.getAttribute(e)),o="object"!=typeof t.model?t.model:t.model.key,i="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:o,value:i}}function qc(t,e){const n=new Po(t.view);return(o,i,r)=>{if(!i.modelRange&&e)return;const s=n.match(i.viewItem);if(!s)return;if(!function(t,e){const n="function"==typeof t?t(e):t;if("object"==typeof n&&!Hc(n))return!1;return!n.classes&&!n.attributes&&!n.styles}(t.view,i.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(i.viewItem,s.match))return;const a=t.model.key,c="function"==typeof t.model.value?t.model.value(i.viewItem,r):t.model.value;if(null===c)return;i.modelRange||Object.assign(i,r.convertChildren(i.viewItem,i.modelCursor));const l=function(t,e,n,o){let i=!1;for(const r of Array.from(t.getItems({shallow:n})))o.schema.checkAttribute(r,e.key)&&(i=!0,r.hasAttribute(e.key)||o.writer.setAttribute(e.key,e.value,r));return i}(i.modelRange,{key:a,value:c},e,r);l&&(r.consumable.test(i.viewItem,{name:!0})&&(s.match.name=!0),r.consumable.consume(i.viewItem,s.match))}}function Yc(t,e){return{view:`${t.view}-${e}`,model:(e,n)=>{const o=e.getAttribute("name"),i=t.model(o,n);return n.writer.createElement("$marker",{"data-name":i})}}}class $c extends P{constructor(t,e){super(),this.model=t,this.view=new Ha(e),this.mapper=new rc,this.downcastDispatcher=new cc({mapper:this.mapper,schema:t.schema});const n=this.model.document,o=n.selection,i=this.model.markers;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,i,t),this.downcastDispatcher.convertSelection(o,i,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,o)=>{const i=o.newSelection,r=[];for(const t of i.getRanges())r.push(e.toModelRange(t));const s=t.createSelection(r,{backward:i.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const o=n.mapper.toViewPosition(e.position),i=e.position.getShiftedBy(e.length),r=n.mapper.toViewPosition(i,{isPhantom:!0}),s=n.writer.createRange(o,r),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t,{defer:!0})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=n.writer,i=o.document.selection;for(const t of i.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);o.setSelection(null)}),{priority:"high"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=[];for(const t of o.getRanges())i.push(n.mapper.toViewRange(t));n.writer.setSelection(i,{backward:o.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(!o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=n.writer,r=o.getFirstPosition(),s=n.mapper.toViewPosition(r),a=i.breakAttributes(s);i.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new ji(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(t){const e="string"==typeof t?t:t.name,n=this.model.markers.get(e);if(!n)throw new c("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:e});this.model.change((()=>{this.model.markers._refresh(n)}))}reconvertItem(t){this.model.change((()=>{this.model.document.differ._refreshItem(t)}))}}class Kc{constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new c("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}class Qc{constructor(){this._consumables=new Map}add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new Jc(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const o=t.getClassNames();for(const t of o)e.classes.push(t);const i=t.getStyleNames();for(const t of i)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new Qc),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,Qc.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=Qc.createFrom(n,e);return e}}const Zc=["attributes","classes","styles"];class Jc{constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e of Zc)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e of Zc)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e of Zc)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e of Zc)e in t&&this._revert(e,t[e])}_add(t,e){const n=ve(e)?e:[e],o=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new c("viewconsumable-invalid-attribute",this);if(o.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!0)}}_test(t,e){const n=ve(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=o.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=ve(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(o.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=ve(e)?e:[e],o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){!1===o.get(e)&&o.set(e,!0)}else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class Xc extends P{constructor(){super(),this._sourceDefinitions={},this._attributeProperties={},this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new tl(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new tl(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new c("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new c("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:"is"in t&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!!e&&!(!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!!e&&!(!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!!e&&!(!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e){if(t instanceof Ja){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof Ka))throw new c("schema-check-merge-no-element-before",this);if(!(n instanceof Ka))throw new c("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,o])=>{if(!o)return;const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,o])=>{const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;if(t instanceof Ja)e=t.parent;else{e=(t instanceof ic?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null)}for(;!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new Ya("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if(this.checkChild(t,"$text"))return new ic(t);let n,o;const i=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new Qa({boundaries:ic._createIn(i),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(o=new Qa({boundaries:ic._createIn(i),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,o)){const e=t.walker==n?"elementEnd":"elementStart",o=t.value;if(o.type==e&&this.isObject(o.item))return ic._createOn(o.item);if(this.checkChild(o.nextPosition,"$text"))return new ic(o.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}setAllowedAttributes(t,e,n){const o=n.model;for(const[i,r]of Object.entries(e))o.schema.checkAttribute(t,i)&&n.setAttribute(i,r,t)}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))gl(this,n,e);else{const t=ic._createIn(n).getPositions();for(const n of t){gl(this,n.nodeBefore||n.parent,e)}}}getAttributesWithProperty(t,e,n){const o={};for(const[i,r]of t.getAttributes()){const t=this.getAttributeProperties(i);void 0!==t[e]&&(void 0!==n&&n!==t[e]||(o[i]=r))}return o}createContext(t){return new tl(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const o of n)t[o]=el(e[o],o);for(const e of n)nl(t,e);for(const e of n)ol(t,e);for(const e of n)il(t,e);for(const e of n)rl(t,e),sl(t,e);for(const e of n)al(t,e),cl(t,e),ll(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const o=e.getItem(n);if(t.allowIn.includes(o.name)){if(0==n)return!0;{const t=this.getDefinition(o);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,o=t.start;for(const i of t.getItems({shallow:!0}))i.is("element")&&(yield*this._getValidRangesForRange(ic._createIn(i),e)),this.checkAttribute(i,e)||(n.isEqual(o)||(yield new ic(n,o)),n=Ja._createAfter(i)),o=Ja._createAfter(i);n.isEqual(o)||(yield new ic(n,o))}}class tl{constructor(t){if(t instanceof tl)return t;let e;e="string"==typeof t?[t]:Array.isArray(t)?t:t.getAncestors({includeSelf:!0}),this._items=e.map(ul)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new tl([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function el(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const o of t)e[o]=!!n[o]}}(t,n),dl(t,n,"allowIn"),dl(t,n,"allowContentOf"),dl(t,n,"allowWhere"),dl(t,n,"allowAttributes"),dl(t,n,"allowAttributesOf"),dl(t,n,"allowChildren"),dl(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function nl(t,e){const n=t[e];for(const o of n.allowChildren){const n=t[o];n&&n.allowIn.push(e)}n.allowChildren.length=0}function ol(t,e){for(const n of t[e].allowContentOf)if(t[n]){hl(t,n).forEach((t=>{t.allowIn.push(e)}))}delete t[e].allowContentOf}function il(t,e){for(const n of t[e].allowWhere){const o=t[n];if(o){const n=o.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function rl(t,e){for(const n of t[e].allowAttributesOf){const o=t[n];if(o){const n=o.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function sl(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const o=t[e];if(o){const t=Object.keys(o).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=o[e])}}delete n.inheritTypesFrom}function al(t,e){const n=t[e],o=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(o))}function cl(t,e){const n=t[e];for(const o of n.allowIn){t[o].allowChildren.push(e)}}function ll(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function dl(t,e,n){for(const o of t){const t=o[n];"string"==typeof t?e[n].push(t):Array.isArray(t)&&e[n].push(...t)}}function hl(t,e){const n=t[e];return(o=t,Object.keys(o).map((t=>o[t]))).filter((t=>t.allowIn.includes(n.name)));var o}function ul(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function gl(t,e,n){for(const o of e.getAttributeKeys())t.checkAttribute(e,o)||n.removeAttribute(o,e)}class ml extends w{constructor(t){super(),this._splitParts=new Map,this._cursorParents=new Map,this._modelCursor=null,this._emptyElementsToKeep=new Set,this.conversionApi={...t,consumable:null,writer:null,store:null,convertItem:(t,e)=>this._convertItem(t,e),convertChildren:(t,e)=>this._convertChildren(t,e),safeInsert:(t,e)=>this._safeInsert(t,e),updateConversionResult:(t,e)=>this._updateConversionResult(t,e),splitToAllowedParent:(t,e)=>this._splitToAllowedParent(t,e),getSplitParts:t=>this._getSplitParts(t),keepEmptyElement:t=>this._keepEmptyElement(t)}}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const o of new tl(t)){const t={};for(const e of o.getAttributeKeys())t[e]=o.getAttribute(e);const i=e.createElement(o.name,t);n&&e.insert(i,n),n=Ja._createAt(i,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=Qc.createFrom(t),this.conversionApi.store={};const{modelRange:o}=this._convertItem(t,this._modelCursor),i=e.createDocumentFragment();if(o){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,i);i.markers=function(t,e){const n=new Set,o=new Map,i=ic._createIn(t).getItems();for(const t of i)t.is("element","$marker")&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),i=e.createPositionBefore(t);o.has(n)?o.get(n).end=i.clone():o.set(n,new ic(i.clone())),e.remove(t)}return o}(i,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,i}_convertItem(t,e){const n={viewItem:t,modelCursor:e,modelRange:null};if(t.is("element")?this.fire(`element:${t.name}`,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof ic))throw new c("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:Ja._createAt(e,0);const o=new ic(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof ic&&(o.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:o,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),o=this.conversionApi.writer;e.modelRange||(e.modelRange=o.createRange(o.createPositionBefore(t),o.createPositionAfter(n[n.length-1])));const i=this._cursorParents.get(t);e.modelCursor=i?o.createPositionAt(i,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:o}=this.conversionApi;let i=n.findAllowedParent(e,t);if(i){if(i===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(i)&&(i=null)}if(!i)return jc(e,t,n)?{position:Fc(e,o)}:null;const r=this.conversionApi.writer.split(e,i),s=[];for(const t of r.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=r.range.end.parent;return this._cursorParents.set(t,a),{position:r.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_keepEmptyElement(t){this._emptyElementsToKeep.add(t)}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&!this._emptyElementsToKeep.has(e)&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}class pl{getHtml(t){const e=document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class fl{constructor(t){this.domParser=new DOMParser,this.domConverter=new ps(t,{renderingMode:"data"}),this.htmlWriter=new pl}toData(t){const e=this.domConverter.viewToDom(t);return this.htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this.domConverter.domToView(e)}registerRawContentMatcher(t){this.domConverter.registerRawContentMatcher(t)}useFillerType(t){this.domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)||(t=`${t}`);const e=this.domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment(),o=e.body.childNodes;for(;o.length>0;)n.appendChild(o[0]);return n}}class kl extends w{constructor(t,e){super(),this.model=t,this.mapper=new rc,this.downcastDispatcher=new cc({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.upcastDispatcher=new ml({schema:t.schema}),this.viewDocument=new tr(e),this.stylesProcessor=e,this.htmlProcessor=new fl(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new yr(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:o,writer:i})=>{let r=e.modelCursor;if(!o.test(e.viewItem))return;if(!n.checkChild(r,"$text")){if(!jc(r,"$text",n))return;if(0==e.viewItem.data.trim().length)return;r=Fc(r,i)}o.consume(e.viewItem);const s=i.createText(e.viewItem.data);i.insert(s,r),e.modelRange=i.createRange(r,r.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),P.prototype.decorate.call(this,"init"),P.prototype.decorate.call(this,"set"),P.prototype.decorate.call(this,"get"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},Rc)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new c("datacontroller-get-non-existent-root",this);const o=this.model.document.getRoot(e);return"empty"!==n||this.model.hasContent(o,{ignoreWhitespaces:!0})?this.stringify(o,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,o=this._viewWriter;this.mapper.clearBindings();const i=ic._createIn(t),r=new vr(n);this.mapper.bindElements(t,r);const s=t.is("documentFragment")?t.markers:function(t){const e=[],n=t.root.document;if(!n)return new Map;const o=ic._createIn(t);for(const t of n.model.markers){const n=t.getRange(),i=n.isCollapsed,r=n.start.isEqual(o.start)||n.end.isEqual(o.end);if(i&&r)e.push([t.name,n]);else{const i=o.getIntersection(n);i&&e.push([t.name,i])}}return e.sort((([t,e],[n,o])=>{if("after"!==e.end.compareWith(o.start))return 1;if("before"!==e.start.compareWith(o.end))return-1;switch(e.start.compareWith(o.start)){case"before":return 1;case"after":return-1;default:switch(e.end.compareWith(o.end)){case"before":return 1;case"after":return-1;default:return n.localeCompare(t)}}})),new Map(e)}(t);return this.downcastDispatcher.convert(i,s,o,e),r}init(t){if(this.model.document.version)throw new c("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new c("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(t=>{for(const n of Object.keys(e)){const o=this.model.document.getRoot(n);t.insert(this.parse(e[n],o),o,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new c("datacontroller-set-non-existent-root",this);this.model.enqueueChange(e.batchType||{},(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const o=this.model.document.getRoot(e);t.remove(t.createRangeIn(o)),t.insert(this.parse(n[e],o),o,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRootNames().includes(e))return!1;return!0}}class bl{constructor(t,e){this._helpers=new Map,this._downcast=bo(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=bo(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new c("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new c("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of wl(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of wl(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of wl(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new c("conversion-group-exists",this);const o=n?new xc(e):new Vc(e);this._helpers.set(t,o)}}function*wl(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},o=t.view[e],i=t.upcastAlso?t.upcastAlso[e]:void 0;yield*Al(n,o,i)}else yield*Al(t.model,t.view,t.upcastAlso)}function*Al(t,e,n){if(yield{model:t,view:e},n)for(const e of bo(n))yield{model:t,view:e}}class _l{constructor(t={}){"string"==typeof t&&(t="transparent"===t?{isUndoable:!1}:{},l("batch-constructor-deprecated-string-type"));const{isUndoable:e=!0,isLocal:n=!0,isUndo:o=!1,isTyping:i=!1}=t;this.operations=[],this.isUndoable=e,this.isLocal=n,this.isUndo=o,this.isTyping=i}get type(){return l("batch-type-deprecated"),"default"}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class Cl{constructor(t){this._markerCollection=t,this._changesInElement=new Map,this._elementSnapshots=new Map,this._changedMarkers=new Map,this._changeCount=0,this._cachedChanges=null,this._cachedChangesWithGraveyard=null,this._refreshedItems=new Set}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size}bufferOperation(t){const e=t;switch(e.type){case"insert":if(this._isInInsertedElement(e.position.parent))return;this._markInsert(e.position.parent,e.position.offset,e.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const t of e.range.getItems({shallow:!0}))this._isInInsertedElement(t.parent)||this._markAttribute(t);break;case"remove":case"move":case"reinsert":{if(e.sourcePosition.isEqual(e.targetPosition)||e.sourcePosition.getShiftedBy(e.howMany).isEqual(e.targetPosition))return;const t=this._isInInsertedElement(e.sourcePosition.parent),n=this._isInInsertedElement(e.targetPosition.parent);t||this._markRemove(e.sourcePosition.parent,e.sourcePosition.offset,e.howMany),n||this._markInsert(e.targetPosition.parent,e.getMovedRangeStart().offset,e.howMany);break}case"rename":{if(this._isInInsertedElement(e.position.parent))return;this._markRemove(e.position.parent,e.position.offset,1),this._markInsert(e.position.parent,e.position.offset,1);const t=ic._createFromPositionAndShift(e.position,1);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}break}case"split":{const t=e.splitPosition.parent;this._isInInsertedElement(t)||this._markRemove(t,e.splitPosition.offset,e.howMany),this._isInInsertedElement(e.insertionPosition.parent)||this._markInsert(e.insertionPosition.parent,e.insertionPosition.offset,1),e.graveyardPosition&&this._markRemove(e.graveyardPosition.parent,e.graveyardPosition.offset,1);break}case"merge":{const t=e.sourcePosition.parent;this._isInInsertedElement(t.parent)||this._markRemove(t.parent,t.startOffset,1);const n=e.graveyardPosition.parent;this._markInsert(n,e.graveyardPosition.offset,1);const o=e.targetPosition.parent;this._isInInsertedElement(o)||this._markInsert(o,e.targetPosition.offset,t.maxOffset);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n){const o=this._changedMarkers.get(t);o?(o.newMarkerData=n,null==o.oldMarkerData.range&&null==n.range&&this._changedMarkers.delete(t)):this._changedMarkers.set(t,{newMarkerData:n,oldMarkerData:e})}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldMarkerData.range&&t.push({name:e,range:n.oldMarkerData.range});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newMarkerData.range&&t.push({name:e,range:n.newMarkerData.range});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((([t,e])=>({name:t,data:{oldRange:e.oldMarkerData.range,newRange:e.newMarkerData.range}})))}hasDataChanges(){if(this._changesInElement.size>0)return!0;for(const{newMarkerData:t,oldMarkerData:e}of this._changedMarkers.values()){if(t.affectsData!==e.affectsData)return!0;if(t.affectsData){const n=t.range&&!e.range,o=!t.range&&e.range,i=t.range&&e.range&&!t.range.isEqual(e.range);if(n||o||i)return!0}}return!1}getChanges(t={}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e,this._cachedChanges=e.filter(xl),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._refreshedItems=new Set,this._cachedChanges=null}_refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize),this._refreshedItems.add(t);const e=ic._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._cachedChanges=null}_markInsert(t,e,n){const o={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o)}_markRemove(t,e,n){const o={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(o>i){const t={type:"attribute",offset:i,howMany:o-i,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offseti?(t.nodesToHandle=o-i,t.offset=i):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const i={type:"attribute",offset:n.offset,howMany:o-n.offset,count:this._changeCount++};this._handleChange(i,e),e.push(i),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&o<=i?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&o>=i&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:Ja._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getRemoveDiff(t,e,n){return{type:"remove",position:Ja._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++}}_getAttributesDiff(t,e,n){const o=[];n=new Map(n);for(const[i,r]of e){const e=n.has(i)?n.get(i):null;e!==r&&o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:i,attributeOldValue:r,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(i)}for(const[e,i]of n)o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:i,changeCount:this._changeCount++});return o}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),o=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&o>=t.offset&&oo){for(let e=0;ethis._version+1&&this._gaps.set(this._version,t),this._version=t}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(t){if(t.baseVersion!==this.version)throw new c("model-document-history-addoperation-incorrect-version",this,{operation:t,historyVersion:this.version});this._operations.push(t),this._version++,this._baseVersionToOperationIndex.set(t.baseVersion,this._operations.length-1)}getOperations(t,e=this.version){if(!this._operations.length)return[];const n=this._operations[0];void 0===t&&(t=n.baseVersion);let o=e-1;for(const[e,n]of this._gaps)t>e&&te&&othis.lastOperation.baseVersion)return[];let i=this._baseVersionToOperationIndex.get(t);void 0===i&&(i=0);let r=this._baseVersionToOperationIndex.get(o);return void 0===r&&(r=this._operations.length-1),this._operations.slice(i,r+1)}getOperation(t){const e=this._baseVersionToOperationIndex.get(t);if(void 0!==e)return this._operations[e]}setOperationAsUndone(t,e){this._undoPairs.set(e,t),this._undoneOperations.add(t)}isUndoingOperation(t){return this._undoPairs.has(t)}isUndoneOperation(t){return this._undoneOperations.has(t)}getUndoneOperation(t){return this._undoPairs.get(t)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class Dl extends Ka{constructor(t,e,n="main"){super(e),this._document=t,this.rootName=n}get document(){return this._document}toJSON(){return this.rootName}}function Il(t,e){return!!(n=t.charAt(e-1))&&1==n.length&&/[\ud800-\udbff]/.test(n)&&function(t){return!!t&&1==t.length&&/[\udc00-\udfff]/.test(t)}(t.charAt(e));var n}function Tl(t,e){return!!(n=t.charAt(e))&&1==n.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(n);var n}Dl.prototype.is=function(t,e){return e?e===this.name&&("rootElement"===t||"model:rootElement"===t||"element"===t||"model:element"===t):"rootElement"===t||"model:rootElement"===t||"element"===t||"model:element"===t||"node"===t||"model:node"===t};const Ml=function(){const t=/\p{Regional_Indicator}{2}/u.source,e="(?:"+[/\p{Emoji}[\u{E0020}-\u{E007E}]+\u{E007F}/u,/\p{Emoji}\u{FE0F}?\u{20E3}/u,/\p{Emoji}\u{FE0F}/u,/(?=\p{General_Category=Other_Symbol})\p{Emoji}\p{Emoji_Modifier}*/u].map((t=>t.source)).join("|")+")";return new RegExp(`${t}|${e}(?:${e})*`,"ug")}();function Sl(t,e){const n=String(t).matchAll(Ml);return Array.from(n).some((t=>t.index{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.history.addOperation(n)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,o,i)=>{const r={...e.getData(),range:o};this.differ.bufferMarkerChange(e.name,i,r),null===n&&e.on("change",((t,n)=>{const o=e.getData();this.differ.bufferMarkerChange(e.name,{...o,range:n},o)}))}))}get version(){return this.history.version}set version(t){this.history.version=t}get graveyard(){return this.getRoot(Nl)}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new c("model-document-createroot-name-exists",this,{name:e});const n=new Dl(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(){return Array.from(this.roots,(t=>t.rootName)).filter((t=>t!=Nl))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=To(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){for(const t of this.roots)if(t!==this.graveyard)return t;return this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,o=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(o)||e.createRange(o)}_validateSelectionRange(t){return Pl(t.start)&&Pl(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function Pl(t){const e=t.textNode;if(e){const n=e.data,o=t.offset-e.startOffset;return!Il(n,o)&&!Tl(n,o)}return!0}class zl extends w{constructor(){super(),this._markers=new Map}[Symbol.iterator](){return this._markers.values()}has(t){const e=t instanceof Ll?t.name:t;return this._markers.has(e)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,o=!1){const i=t instanceof Ll?t.name:t;if(i.includes(","))throw new c("markercollection-incorrect-marker-name",this);const r=this._markers.get(i);if(r){const t=r.getData(),s=r.getRange();let a=!1;return s.isEqual(e)||(r._attachLiveRange(fc.fromRange(e)),a=!0),n!=r.managedUsingOperations&&(r._managedUsingOperations=n,a=!0),"boolean"==typeof o&&o!=r.affectsData&&(r._affectsData=o,a=!0),a&&this.fire(`update:${i}`,r,s,e,t),r}const s=fc.fromRange(e),a=new Ll(i,s,n,o);return this._markers.set(i,a),this.fire(`update:${i}`,a,null,e,{...a.getData(),range:null}),a}_remove(t){const e=t instanceof Ll?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire(`update:${e}`,n,n.getRange(),null,n.getData()),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof Ll?t.name:t,n=this._markers.get(e);if(!n)throw new c("markercollection-refresh-marker-not-exists",this);const o=n.getRange();this.fire(`update:${e}`,n,o,o,n.getData())}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}class Ll extends(b(Wa)){constructor(t,e,n,o){super(),this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=o}get managedUsingOperations(){if(!this._liveRange)throw new c("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new c("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new c("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new c("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new c("marker-destroyed",this);return this._liveRange.toRange()}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}Ll.prototype.is=function(t){return"marker"===t||"model:marker"===t};class Ol{constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t,e){return new this(t.baseVersion)}}function Rl(t,e){const n=Vl(e),o=n.reduce(((t,e)=>t+e.offsetSize),0),i=t.parent;Hl(t);const r=t.index;return i._insertChild(r,n),Ul(i,r+n.length),Ul(i,r),new ic(t,t.getShiftedBy(o))}function jl(t){if(!t.isFlat)throw new c("operation-utils-remove-range-not-flat",this);const e=t.start.parent;Hl(t.start),Hl(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return Ul(e,t.start.index),n}function Fl(t,e){if(!t.isFlat)throw new c("operation-utils-move-range-not-flat",this);const n=jl(t);return Rl(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function Vl(t){const e=[];!function t(n){if("string"==typeof n)e.push(new Ya(n));else if(n instanceof $a)e.push(new Ya(n.data,n.getAttributes()));else if(n instanceof Ga)e.push(n);else if(po(n))for(const e of n)t(e)}(t);for(let t=1;tt.maxOffset)throw new c("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new $l(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new Ja(t,[0]);return new Yl(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),Rl(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(Ka.fromJSON(e)):n.push(Ya.fromJSON(e));const o=new $l(Ja.fromJSON(t.position,e),n,t.baseVersion);return o.shouldReceiveAttributes=t.shouldReceiveAttributes,o}}class Kl extends Ol{constructor(t,e,n,o,i,r){super(r),this.name=t,this.oldRange=e?e.clone():null,this.newRange=n?n.clone():null,this.affectsData=i,this._markers=o}get type(){return"marker"}clone(){return new Kl(this.name,this.oldRange,this.newRange,this._markers,this.affectsData,this.baseVersion)}getReversed(){return new Kl(this.name,this.newRange,this.oldRange,this._markers,this.affectsData,this.baseVersion+1)}_execute(){this.newRange?this._markers._set(this.name,this.newRange,!0,this.affectsData):this._markers._remove(this.name)}toJSON(){const t=super.toJSON();return this.oldRange&&(t.oldRange=this.oldRange.toJSON()),this.newRange&&(t.newRange=this.newRange.toJSON()),delete t._markers,t}static get className(){return"MarkerOperation"}static fromJSON(t,e){return new Kl(t.name,t.oldRange?ic.fromJSON(t.oldRange,e):null,t.newRange?ic.fromJSON(t.newRange,e):null,e.model.markers,t.affectsData,t.baseVersion)}}class Ql extends Ol{get type(){return"noop"}clone(){return new Ql(this.baseVersion)}getReversed(){return new Ql(this.baseVersion+1)}_execute(){}static get className(){return"NoOperation"}}class Zl extends Ol{constructor(t,e,n,o){super(o),this.position=t,this.position.stickiness="toNext",this.oldName=e,this.newName=n}get type(){return"rename"}clone(){return new Zl(this.position.clone(),this.oldName,this.newName,this.baseVersion)}getReversed(){return new Zl(this.position.clone(),this.newName,this.oldName,this.baseVersion+1)}_validate(){const t=this.position.nodeAfter;if(!(t instanceof Ka))throw new c("rename-operation-wrong-position",this);if(t.name!==this.oldName)throw new c("rename-operation-wrong-name",this)}_execute(){this.position.nodeAfter.name=this.newName}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t}static get className(){return"RenameOperation"}static fromJSON(t,e){return new Zl(Ja.fromJSON(t.position,e),t.oldName,t.newName,t.baseVersion)}}class Jl extends Ol{constructor(t,e,n,o,i){super(i),this.root=t,this.key=e,this.oldValue=n,this.newValue=o}get type(){return null===this.oldValue?"addRootAttribute":null===this.newValue?"removeRootAttribute":"changeRootAttribute"}clone(){return new Jl(this.root,this.key,this.oldValue,this.newValue,this.baseVersion)}getReversed(){return new Jl(this.root,this.key,this.newValue,this.oldValue,this.baseVersion+1)}_validate(){if(this.root!=this.root.root||this.root.is("documentFragment"))throw new c("rootattribute-operation-not-a-root",this,{root:this.root,key:this.key});if(null!==this.oldValue&&this.root.getAttribute(this.key)!==this.oldValue)throw new c("rootattribute-operation-wrong-old-value",this,{root:this.root,key:this.key});if(null===this.oldValue&&null!==this.newValue&&this.root.hasAttribute(this.key))throw new c("rootattribute-operation-attribute-exists",this,{root:this.root,key:this.key})}_execute(){null!==this.newValue?this.root._setAttribute(this.key,this.newValue):this.root._removeAttribute(this.key)}toJSON(){const t=super.toJSON();return t.root=this.root.toJSON(),t}static get className(){return"RootAttributeOperation"}static fromJSON(t,e){if(!e.getRoot(t.root))throw new c("rootattribute-operation-fromjson-no-root",this,{rootName:t.root});return new Jl(e.getRoot(t.root),t.key,t.oldValue,t.newValue,t.baseVersion)}}class Xl extends Ol{constructor(t,e,n,o,i){super(i),this.sourcePosition=t.clone(),this.sourcePosition.stickiness="toPrevious",this.howMany=e,this.targetPosition=n.clone(),this.targetPosition.stickiness="toNext",this.graveyardPosition=o.clone()}get type(){return"merge"}get deletionPosition(){return new Ja(this.sourcePosition.root,this.sourcePosition.path.slice(0,-1))}get movedRange(){const t=this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);return new ic(this.sourcePosition,t)}clone(){return new Xl(this.sourcePosition,this.howMany,this.targetPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.targetPosition._getTransformedByMergeOperation(this),e=this.sourcePosition.path.slice(0,-1),n=new Ja(this.sourcePosition.root,e)._getTransformedByMergeOperation(this);return new td(t,this.howMany,n,this.graveyardPosition,this.baseVersion+1)}_validate(){const t=this.sourcePosition.parent,e=this.targetPosition.parent;if(!t.parent)throw new c("merge-operation-source-position-invalid",this);if(!e.parent)throw new c("merge-operation-target-position-invalid",this);if(this.howMany!=t.maxOffset)throw new c("merge-operation-how-many-invalid",this)}_execute(){const t=this.sourcePosition.parent;Fl(ic._createIn(t),this.targetPosition),Fl(ic._createOn(t),this.graveyardPosition)}toJSON(){const t=super.toJSON();return t.sourcePosition=t.sourcePosition.toJSON(),t.targetPosition=t.targetPosition.toJSON(),t.graveyardPosition=t.graveyardPosition.toJSON(),t}static get className(){return"MergeOperation"}static fromJSON(t,e){const n=Ja.fromJSON(t.sourcePosition,e),o=Ja.fromJSON(t.targetPosition,e),i=Ja.fromJSON(t.graveyardPosition,e);return new this(n,t.howMany,o,i,t.baseVersion)}}class td extends Ol{constructor(t,e,n,o,i){super(i),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=o?o.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new Ja(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new ic(this.splitPosition,t)}clone(){return new td(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new Ja(t,[0]);return new Xl(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset"string"==typeof t?new Ya(t):t instanceof $a?new Ya(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}id.prototype.is=function(t){return"documentFragment"===t||"model:documentFragment"===t};class rd{constructor(t,e){this.model=t,this.batch=e}createText(t,e){return new Ya(t,e)}createElement(t,e){return new Ka(t,e)}createDocumentFragment(){return new id}cloneElement(t,e=!0){return t._clone(e)}insert(t,e,n=0){if(this._assertWriterUsedCorrectly(),t instanceof Ya&&""==t.data)return;const o=Ja._createAt(e,n);if(t.parent){if(dd(t.root,o.root))return void this.move(ic._createOn(t),o);if(t.root.document)throw new c("model-writer-insert-forbidden-move",this);this.remove(t)}const i=o.root.document?o.root.document.version:null,r=new $l(o,t,i);if(t instanceof Ya&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),t instanceof id)for(const[e,n]of t.markers){const t=Ja._createAt(n.root,0),i={range:new ic(n.start._getCombined(t,o),n.end._getCombined(t,o)),usingOperation:!0,affectsData:!0};this.model.markers.has(e)?this.updateMarker(e,i):this.addMarker(e,i)}}insertText(t,e,n,o){e instanceof id||e instanceof Ka||e instanceof Ja?this.insert(this.createText(t),e,n):this.insert(this.createText(t,e),n,o)}insertElement(t,e,n,o){e instanceof id||e instanceof Ka||e instanceof Ja?this.insert(this.createElement(t),e,n):this.insert(this.createElement(t,e),n,o)}append(t,e){this.insert(t,e,"end")}appendText(t,e,n){e instanceof id||e instanceof Ka?this.insert(this.createText(t),e,"end"):this.insert(this.createText(t,e),n,"end")}appendElement(t,e,n){e instanceof id||e instanceof Ka?this.insert(this.createElement(t),e,"end"):this.insert(this.createElement(t,e),n,"end")}setAttribute(t,e,n){if(this._assertWriterUsedCorrectly(),n instanceof ic){const o=n.getMinimalFlatRanges();for(const n of o)sd(this,t,e,n)}else ad(this,t,e,n)}setAttributes(t,e){for(const[n,o]of Bo(t))this.setAttribute(n,o,e)}removeAttribute(t,e){if(this._assertWriterUsedCorrectly(),e instanceof ic){const n=e.getMinimalFlatRanges();for(const e of n)sd(this,t,null,e)}else ad(this,t,null,e)}clearAttributes(t){this._assertWriterUsedCorrectly();const e=t=>{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof ic)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof ic))throw new c("writer-move-invalid-range",this);if(!t.isFlat)throw new c("writer-move-range-not-flat",this);const o=Ja._createAt(e,n);if(o.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!dd(t.root,o.root))throw new c("writer-move-different-document",this);const i=t.root.document?t.root.document.version:null,r=new Yl(t.start,t.end.offset-t.start.offset,o,i);this.batch.addOperation(r),this.model.applyOperation(r)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof ic?t:ic._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),ld(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof Ka))throw new c("writer-merge-no-element-before",this);if(!(n instanceof Ka))throw new c("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(...t){return this.model.createSelection(...t)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(ic._createIn(n),Ja._createAt(e,"end")),this.remove(n)}_merge(t){const e=Ja._createAt(t.nodeBefore,"end"),n=Ja._createAt(t.nodeAfter,0),o=t.root.document.graveyard,i=new Ja(o,[0]),r=t.root.document.version,s=new Xl(n,t.nodeAfter.maxOffset,e,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof Ka))throw new c("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,o=new Zl(Ja._createBefore(t),t.name,e,n);this.batch.addOperation(o),this.model.applyOperation(o)}split(t,e){this._assertWriterUsedCorrectly();let n,o,i=t.parent;if(!i.parent)throw new c("writer-split-element-no-parent",this);if(e||(e=i.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new c("writer-split-invalid-limit-element",this);do{const e=i.root.document?i.root.document.version:null,r=i.maxOffset-t.offset,s=td.getInsertionPosition(t),a=new td(t,r,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||o||(n=i,o=t.parent.nextSibling),i=(t=this.createPositionAfter(t.parent)).parent}while(i!==e);return{position:t,range:new ic(Ja._createAt(n,"end"),Ja._createAt(o,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new c("writer-wrap-range-not-flat",this);const n=e instanceof Ka?e:new Ka(e);if(n.childCount>0)throw new c("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new c("writer-wrap-element-attached",this);this.insert(n,t.start);const o=new ic(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(o,Ja._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new c("writer-unwrap-element-no-parent",this);this.move(ic._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new c("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,o=e.range,i=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new c("writer-addmarker-marker-exists",this);if(!o)throw new c("writer-addmarker-no-range",this);return n?(cd(this,t,null,o,i),this.model.markers.get(t)):this.model.markers._set(t,o,n,i)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,o=this.model.markers.get(n);if(!o)throw new c("writer-updatemarker-marker-not-exists",this);if(!e)return l("writer-updatemarker-reconvert-using-editingcontroller",{markerName:n}),void this.model.markers._refresh(o);const i="boolean"==typeof e.usingOperation,r="boolean"==typeof e.affectsData,s=r?e.affectsData:o.affectsData;if(!i&&!e.range&&!r)throw new c("writer-updatemarker-wrong-options",this);const a=o.getRange(),d=e.range?e.range:a;i&&e.usingOperation!==o.managedUsingOperations?e.usingOperation?cd(this,n,null,d,s):(cd(this,n,a,null,s),this.model.markers._set(n,d,void 0,s)):o.managedUsingOperations?cd(this,n,a,d,s):this.model.markers._set(n,d,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new c("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);if(!n.managedUsingOperations)return void this.model.markers._remove(e);cd(this,e,n.getRange(),null,n.affectsData)}setSelection(...t){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...t)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of Bo(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const o=Ac._getStoreAttributeKey(t);this.setAttribute(o,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=Ac._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new c("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const o=n.getRange();let i=!1;if("move"===t){const t=e;i=t.containsPosition(o.start)||t.start.isEqual(o.start)||t.containsPosition(o.end)||t.end.isEqual(o.end)}else{const t=e,n=t.nodeBefore,r=t.nodeAfter,s=o.start.parent==n&&o.start.isAtEnd,a=o.end.parent==r&&0==o.end.offset,c=o.end.nodeAfter==r,l=o.start.nodeAfter==r;i=s||a||c||l}i&&this.updateMarker(n.name,{range:o})}}}function sd(t,e,n,o){const i=t.model,r=i.document;let s,a,c,l=o.start;for(const t of o.getWalker({shallow:!0}))c=t.item.getAttribute(e),s&&a!=c&&(a!=n&&d(),l=s),s=t.nextPosition,a=c;function d(){const o=new ic(l,s),c=o.root.document?r.version:null,d=new ql(o,e,a,n,c);t.batch.addOperation(d),i.applyOperation(d)}s instanceof Ja&&s!=l&&a!=n&&d()}function ad(t,e,n,o){const i=t.model,r=i.document,s=o.getAttribute(e);let a,c;if(s!=n){if(o.root===o){const t=o.document?r.version:null;c=new Jl(o,e,s,n,t)}else{a=new ic(Ja._createBefore(o),t.createPositionAfter(o));const i=a.root.document?r.version:null;c=new ql(a,e,s,n,i)}t.batch.addOperation(c),i.applyOperation(c)}}function cd(t,e,n,o,i){const r=t.model,s=r.document,a=new Kl(e,n,o,r.markers,!!i,s.version);t.batch.addOperation(a),r.applyOperation(a)}function ld(t,e,n,o){let i;if(t.root.document){const n=o.document,r=new Ja(n.graveyard,[0]);i=new Yl(t,e,r,n.version)}else i=new od(t,e);n.addOperation(i),o.applyOperation(i)}function dd(t,e){return t===e||t instanceof Dl&&e instanceof Dl}function hd(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,o=e.schema,i=[];let r=!1;for(const t of n.getRanges()){const e=ud(t,o);e&&!e.isEqual(t)?(i.push(e),r=!0):i.push(t)}r&&t.setSelection(function(t){const e=[...t],n=new Set;let o=1;for(;o!n.has(e)))}(i),{backward:n.isBackward});return!1}(e,t)))}function ud(t,e){return t.isCollapsed?function(t,e){const n=t.start,o=e.getNearestSelectionRange(n);if(!o){const t=n.getAncestors().reverse().find((t=>e.isObject(t)));return t?ic._createOn(t):null}if(!o.isCollapsed)return o;const i=o.start;if(n.isEqual(i))return null;return new ic(i)}(t,e):function(t,e){const{start:n,end:o}=t,i=e.checkChild(n,"$text"),r=e.checkChild(o,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(o);if(s===a){if(i&&r)return null;if(function(t,e,n){const o=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),i=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return o||i}(n,o,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),i=o.nodeBefore&&e.isSelectable(o.nodeBefore)?null:e.getNearestSelectionRange(o,"backward"),r=t?t.start:n,s=i?i.end:o;return new ic(r,s)}}const c=s&&!s.is("rootElement"),l=a&&!a.is("rootElement");if(c||l){const t=n.nodeAfter&&o.nodeBefore&&n.nodeAfter.parent===o.nodeBefore.parent,i=c&&(!t||!md(n.nodeAfter,e)),r=l&&(!t||!md(o.nodeBefore,e));let d=n,h=o;return i&&(d=Ja._createBefore(gd(s,e))),r&&(h=Ja._createAfter(gd(a,e))),new ic(d,h)}return null}(t,e)}function gd(t,e){let n=t,o=n;for(;e.isLimit(o)&&o.parent;)n=o,o=o.parent;return n}function md(t,e){return t&&e.isSelectable(t)}class pd extends(b(Ja)){constructor(t,e,n="toNone"){if(super(t,e,n),!this.root.is("rootElement"))throw new c("model-liveposition-root-not-rootelement",t);fd.call(this)}detach(){this.stopListening()}toPosition(){return new Ja(this.root,this.path.slice(),this.stickiness)}static fromPosition(t,e){return new this(t.root,t.path.slice(),e||t.stickiness)}}function fd(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&kd.call(this,n)}),{priority:"low"})}function kd(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}function bd(t,e,n={}){if(e.isCollapsed)return;const o=e.getFirstRange();if("$graveyard"==o.root.rootName)return;const i=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const o=e.getFirstRange();if(o.start.parent==o.end.parent)return!1;return t.checkChild(n,"paragraph")}(i,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),Cd(t,t.createPositionAt(n,0),e)}(t,e);const r={};if(!n.doNotAutoparagraph){const t=e.getSelectedElement();t&&Object.assign(r,i.getAttributesWithProperty(t,"copyOnReplace",!0))}const[s,a]=function(t){const e=t.root.document.model,n=t.start;let o=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,o=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of o){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(o);if(n&&o.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const i=n.getLastPosition(),r=e.createRange(i,o);e.hasContent(r,{ignoreMarkers:!0})||(o=i)}}return[pd.fromPosition(n,"toPrevious"),pd.fromPosition(o,"toNext")]}(o);s.isTouching(a)||t.remove(t.createRange(s,a)),n.leaveUnmerged||(!function(t,e,n){const o=t.model;if(!_d(t.model.schema,e,n))return;const[i,r]=function(t,e){const n=t.getAncestors(),o=e.getAncestors();let i=0;for(;n[i]&&n[i]==o[i];)i++;return[n[i],o[i]]}(e,n);if(!i||!r)return;!o.hasContent(i,{ignoreMarkers:!0})&&o.hasContent(r,{ignoreMarkers:!0})?Ad(t,e,n,i.parent):wd(t,e,n,i.parent)}(t,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),t)),vd(t,e,s),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),o=t.checkChild(e,"paragraph");return!n&&o}(i,s)&&Cd(t,s,e,r),s.detach(),a.detach()}))}function wd(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(r,e),t.merge(e);n.parent.isEmpty;){const e=n.parent;n=t.createPositionBefore(e),t.remove(e)}_d(t.model.schema,e,n)&&wd(t,e,n,o)}}function Ad(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(i,n);e.parent.isEmpty;){const n=e.parent;e=t.createPositionBefore(n),t.remove(n)}n=t.createPositionBefore(r),function(t,e){const n=e.nodeBefore,o=e.nodeAfter;n.name!=o.name&&t.rename(n,o.name);t.clearAttributes(n),t.setAttributes(Object.fromEntries(o.getAttributes()),n),t.merge(e)}(t,n),_d(t.model.schema,e,n)&&Ad(t,e,n,o)}}function _d(t,e,n){const o=e.parent,i=n.parent;return o!=i&&(!t.isLimit(o)&&!t.isLimit(i)&&function(t,e,n){const o=new ic(t,e);for(const t of o.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t))}function Cd(t,e,n,o={}){const i=t.createElement("paragraph");t.model.schema.setAllowedAttributes(i,o,t),t.insert(i,e),vd(t,n,t.createPositionAt(i,0))}function vd(t,e,n){e instanceof Ac?t.setSelection(n):e.setTo(n)}function yd(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}pd.prototype.is=function(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t};var xd=n(4717),Ed={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(xd.Z,Ed);xd.Z.locals;const Dd=new WeakMap;function Id(t){const{view:e,element:n,text:o,isDirectHost:i=!0,keepOnFocus:r=!1}=t,s=e.document;Dd.has(s)||(Dd.set(s,new Map),s.registerPostFixer((t=>Md(s,t))),s.on("change:isComposing",(()=>{e.change((t=>Md(s,t)))}),{priority:"high"})),Dd.get(s).set(n,{text:o,isDirectHost:i,keepOnFocus:r,hostElement:i?n:null}),e.change((t=>Md(s,t)))}function Td(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function Md(t,e){const n=Dd.get(t),o=[];let i=!1;for(const[t,r]of n)r.isDirectHost&&(o.push(t),Sd(e,t,r)&&(i=!0));for(const[t,r]of n){if(r.isDirectHost)continue;const n=Nd(t);n&&(o.includes(n)||(r.hostElement=n,Sd(e,t,r)&&(i=!0)))}return i}function Sd(t,e,n){const{text:o,isDirectHost:i,hostElement:r}=n;let s=!1;r.getAttribute("data-placeholder")!==o&&(t.setAttribute("data-placeholder",o,r),s=!0);return(i||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;const n=Array.from(t.getChildren()).some((t=>!t.is("uiElement")));if(n)return!1;const o=t.document,i=o.selection.anchor;return!(o.isComposing&&i&&i.parent===t||!e&&o.isFocused&&(!i||i.parent===t))}(r,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,r)&&(s=!0):Td(t,r)&&(s=!0),s}function Nd(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement")&&!e.is("attributeElement"))return e}return null}const Bd=new Map;function Pd(t,e,n){let o=Bd.get(t);o||(o=new Map,Bd.set(t,o)),o.set(e,n)}function zd(t){return[t]}function Ld(t,e,n={}){const o=function(t,e){const n=Bd.get(t);return n&&n.has(e)?n.get(e):zd}(t.constructor,e.constructor);try{return o(t=t.clone(),e,n)}catch(t){throw t}}function Od(t,e,n){t=t.slice(),e=e.slice();const o=new Rd(n.document,n.useRelations,n.forceWeakRemove);o.setOriginalOperations(t),o.setOriginalOperations(e);const i=o.originalOperations;if(0==t.length||0==e.length)return{operationsA:t,operationsB:e,originalOperations:i};const r=new WeakMap;for(const e of t)r.set(e,0);const s={nextBaseVersionA:t[t.length-1].baseVersion+1,nextBaseVersionB:e[e.length-1].baseVersion+1,originalOperationsACount:t.length,originalOperationsBCount:e.length};let a=0;for(;a{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const o=t.range.getDifference(e.range).map((e=>new ql(e,t.key,t.oldValue,t.newValue,0))),i=t.range.getIntersection(e.range);return i&&n.aIsStrong&&o.push(new ql(i,e.key,e.newValue,t.newValue,0)),0==o.length?[new Ql(0)]:o}return[t]})),Pd(ql,$l,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new ql(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const o=Vd(e,t.key,t.oldValue);o&&n.unshift(o)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),Pd(ql,Xl,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(ic._createFromPositionAndShift(e.graveyardPosition,1));const o=t.range._getTransformedByMergeOperation(e);return o.isCollapsed||n.push(o),n.map((e=>new ql(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),Pd(ql,Yl,((t,e)=>{const n=function(t,e){const n=ic._createFromPositionAndShift(e.sourcePosition,e.howMany);let o=null,i=[];n.containsRange(t,!0)?o=t:t.start.hasSameParentAs(n.start)?(i=t.getDifference(n),o=t.getIntersection(n)):i=[t];const r=[];for(let t of i){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),o=t.start.hasSameParentAs(n),i=t._getTransformedByInsertion(n,e.howMany,o);r.push(...i)}o&&r.push(o._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]);return r}(t.range,e);return n.map((e=>new ql(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),Pd(ql,td,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new ic(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),Pd($l,ql,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const o=Vd(t,e.key,e.newValue);o&&n.push(o)}return n})),Pd($l,$l,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),Pd($l,Yl,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),Pd($l,td,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),Pd($l,Xl,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),Pd(Kl,$l,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),Pd(Kl,Kl,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new Ql(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),Pd(Kl,Xl,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),Pd(Kl,Yl,((t,e,n)=>{if(t.oldRange&&(t.oldRange=ic._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const o=ic._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.end=o.end,t.newRange.start.path=n.abRelation.path,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=o.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=ic._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),Pd(Kl,td,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const o=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=Ja._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=Ja._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=Ja._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=Ja._createAt(e.insertionPosition):t.newRange.end=o.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),Pd(Xl,$l,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),Pd(Xl,Xl,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new Ja(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new Ql(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const o="$graveyard"==t.targetPosition.root.rootName,i="$graveyard"==e.targetPosition.root.rootName,r=o&&!i;if(i&&!o||!r&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),o=t.targetPosition._getTransformedByMergeOperation(e);return[new Yl(n,t.howMany,o,0)]}return[new Ql(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),Pd(Xl,Yl,((t,e,n)=>{const o=ic._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.sourcePosition)?[new Ql(0)]:(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),Pd(Xl,td,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const o=0!=e.howMany,i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(o||i||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),Pd(Yl,$l,((t,e)=>{const n=ic._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),Pd(Yl,Yl,((t,e,n)=>{const o=ic._createFromPositionAndShift(t.sourcePosition,t.howMany),i=ic._createFromPositionAndShift(e.sourcePosition,e.howMany);let r,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),r=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Ud(t,e)&&Ud(e,t))return[e.getReversed()];if(o.containsPosition(e.targetPosition)&&o.containsRange(i,!0))return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Hd([o],r);if(i.containsPosition(t.targetPosition)&&i.containsRange(o,!0))return o.start=o.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),o.end=o.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),Hd([o],r);const c=Io(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==c||"extension"==c)return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),Hd([o],r);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const l=[],d=o.getDifference(i);for(const t of d){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==Io(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),o=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);l.push(...o)}const h=o.getIntersection(i);return null!==h&&s&&(h.start=h.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),h.end=h.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===l.length?l.push(h):1==l.length?i.start.isBefore(o.start)||i.start.isEqual(o.start)?l.unshift(h):l.push(h):l.splice(1,0,h)),0===l.length?[new Ql(t.baseVersion)]:Hd(l,r)})),Pd(Yl,td,((t,e,n)=>{let o=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(o=t.targetPosition._getTransformedBySplitOperation(e));const i=ic._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=o,[t];if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new ic(e.splitPosition,i.end);t=t._getTransformedBySplitOperation(e);return Hd([new ic(i.start,e.splitPosition),t],o)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(o=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(o=t.targetPosition);const r=[i._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const o=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);t.howMany>1&&o&&!n.aWasUndone&&r.push(ic._createFromPositionAndShift(e.insertionPosition,1))}return Hd(r,o)})),Pd(Yl,Xl,((t,e,n)=>{const o=ic._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new Ql(0)]}else if(!n.aWasUndone){const n=[];let o=e.graveyardPosition.clone(),i=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Yl(t.sourcePosition,t.howMany-1,t.targetPosition,0)),o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Yl(o,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const c=new Ja(s.targetPosition.root,a);i=i._getTransformedByMove(o,r,1);const l=new Yl(i,e.howMany,c,0);return n.push(s),n.push(l),n}const i=ic._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=i.start,t.howMany=i.end.offset-i.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),Pd(Zl,$l,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),Pd(Zl,Xl,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),Pd(Zl,Yl,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),Pd(Zl,Zl,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new Ql(0)];t.oldName=e.newName}return[t]})),Pd(Zl,td,((t,e)=>{if("same"==Io(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new Zl(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),Pd(Jl,Jl,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new Ql(0)];t.oldValue=e.newValue}return[t]})),Pd(td,$l,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const o=new Ja(e.graveyardPosition.root,n),i=td.getInsertionPosition(new Ja(e.graveyardPosition.root,n)),r=new td(o,0,i,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=td.getInsertionPosition(t.splitPosition),t.graveyardPosition=r.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[r,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=td.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),Pd(td,Yl,((t,e,n)=>{const o=ic._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=o.start.isEqual(t.graveyardPosition)||o.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e),o=t.graveyardPosition._getTransformedByMoveOperation(e),i=o.path.slice();i.push(0);const r=new Ja(o.root,i);return[new Yl(n,t.howMany,r,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const i=t.splitPosition.isEqual(e.targetPosition);if(i&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=td.getInsertionPosition(t.splitPosition),[t];if(i&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:o}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(o),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new Ql(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new Ql(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const o="$graveyard"==t.splitPosition.root.rootName,i="$graveyard"==e.splitPosition.root.rootName,r=o&&!i;if(i&&!o||!r&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Yl(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Yl(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new Ql(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const o=new Ja(e.insertionPosition.root,n);return[t,new Yl(t.insertionPosition,1,o,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{s.isCollapsed||t.deleteContent(s,{doNotAutoparagraph:!0});let o=e;const r=s.anchor.parent;!t.schema.checkChild(r,e)&&t.schema.checkChild(r,"paragraph")&&t.schema.checkChild("paragraph",e)&&(o=n.createElement("paragraph"),n.insert(e,o)),t.schema.setAllowedAttributes(o,l,n);const a=t.insertContent(o,s);return a.isCollapsed||i.setSelection&&function(t,e,n,o){const i=t.model;if("after"==n){let n=e.nextSibling;!(n&&i.schema.checkChild(n,"$text"))&&i.schema.checkChild(e.parent,"paragraph")&&(n=t.createElement("paragraph"),i.schema.setAllowedAttributes(n,o,t),i.insertContent(n,t.createPositionAfter(e))),n&&t.setSelection(n,0)}else{if("on"!=n)throw new c("insertobject-invalid-place-parameter-value",i);t.setSelection(e,"on")}}(n,e,i.setSelection,l),a}))}function Qd(t,e){const{isForward:n,walker:o,unit:i,schema:r,treatEmojiAsSingleUnit:s}=t,{type:a,item:c,nextPosition:l}=e;if("text"==a)return"word"===t.unit?function(t,e){let n=t.position.textNode;n||(n=e?t.position.nodeAfter:t.position.nodeBefore);for(;n&&n.is("$text");){const o=t.position.offset-n.startOffset;if(Xd(n,o,e))n=e?t.position.nodeAfter:t.position.nodeBefore;else{if(Jd(n.data,o,e))break;t.next()}}return t.position}(o,n):function(t,e,n){const o=t.position.textNode;if(o){const i=o.data;let r=t.position.offset-o.startOffset;for(;Il(i,r)||"character"==e&&Tl(i,r)||n&&Sl(i,r);)t.next(),r=t.position.offset-o.startOffset}return t.position}(o,i,s);if(a==(n?"elementStart":"elementEnd")){if(r.isSelectable(c))return Ja._createAt(c,n?"after":"before");if(r.checkChild(l,"$text"))return l}else{if(r.isLimit(c))return void o.skip((()=>!0));if(r.checkChild(l,"$text"))return l}}function Zd(t,e){const n=t.root,o=Ja._createAt(n,e?"end":0);return e?new ic(t,o):new ic(o,t)}function Jd(t,e,n){const o=e+(n?0:-1);return' ,.?!:;"-()'.includes(t.charAt(o))}function Xd(t,e,n){return e===(n?t.offsetSize:0)}class th extends P{constructor(){super(),this.markers=new zl,this.document=new Bl(this),this.schema=new Xc,this._pendingChanges=[],this._currentWriter=null,["insertContent","insertObject","deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),hd(this),this.document.registerPostFixer(Rc)}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new _l,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){c.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{t?"function"==typeof t?(e=t,t=new _l):t instanceof _l||(t=new _l(t)):t=new _l,this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){c.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n){return function(t,e,n,o){return t.change((i=>{let r;r=n?n instanceof hc||n instanceof Ac?n:i.createSelection(n,o):t.document.selection,r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0});const s=new Yd(t,i,r.anchor),a=[];let c;if(e.is("documentFragment")){if(e.markers.size){const t=[];for(const[n,o]of e.markers){const{start:e,end:i}=o,r=e.isEqual(i);t.push({position:e,name:n,isCollapsed:r},{position:i,name:n,isCollapsed:r})}t.sort((({position:t},{position:e})=>t.isBefore(e)?1:-1));for(const{position:n,name:o,isCollapsed:r}of t){let t=null,s=null;const c=n.parent===e&&n.isAtStart,l=n.parent===e&&n.isAtEnd;c||l?r&&(s=c?"start":"end"):(t=i.createElement("$marker"),i.insert(t,n)),a.push({name:o,element:t,collapsed:s})}}c=e.getChildren()}else c=[e];s.handleNodes(c);let l=s.getSelectionRange();if(e.is("documentFragment")&&a.length){const t=l?fc.fromRange(l):null,e={};for(let t=a.length-1;t>=0;t--){const{name:n,element:o,collapsed:r}=a[t],c=!e[n];if(c&&(e[n]=[]),o){const t=i.createPositionAt(o,"before");e[n].push(t),i.remove(o)}else{const t=s.getAffectedRange();if(!t){r&&e[n].push(s.position);continue}r?e[n].push(t[r]):e[n].push(c?t.start:t.end)}}for(const[t,[n,o]]of Object.entries(e))n&&o&&n.root===o.root&&i.addMarker(t,{usingOperation:!0,affectsData:!0,range:new ic(n,o)});t&&(l=t.toRange(),t.detach())}l&&(r instanceof Ac?i.setSelection(l):r.setTo(l));const d=s.getAffectedRange()||t.createRange(r.anchor);return s.destroy(),d}))}(this,t,e,n)}insertObject(t,e,n,o){return Kd(this,t,e,n,o)}deleteContent(t,e){bd(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const o=t.schema,i="backward"!=n.direction,r=n.unit?n.unit:"character",s=!!n.treatEmojiAsSingleUnit,a=e.focus,c=new Qa({boundaries:Zd(a,i),singleCharacters:!0,direction:i?"forward":"backward"}),l={walker:c,schema:o,isForward:i,unit:r,treatEmojiAsSingleUnit:s};let d;for(;d=c.next();){if(d.done)return;const n=Qd(l,d.value);if(n)return void(e instanceof Ac?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),o=e.getFirstRange();if(!o||o.isCollapsed)return n;const i=o.start.root,r=o.start.getCommonPath(o.end),s=i.getNodeByPath(r);let a;a=o.start.parent==o.end.parent?o:t.createRange(t.createPositionAt(s,o.start.path[r.length]),t.createPositionAt(s,o.end.path[r.length]+1));const c=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=o){const e=o._getTransformedByMove(a.start,t.createPositionAt(n,0),c)[0],i=t.createRange(t.createPositionAt(n,0),e.start);yd(t.createRange(e.end,t.createPositionAt(n,"end")),t),yd(i,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof ic?t:ic._createIn(t);if(n.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=e;if(!i)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}createPositionFromPath(t,e,n){return new Ja(t,e,n)}createPositionAt(t,e){return Ja._createAt(t,e)}createPositionAfter(t){return Ja._createAfter(t)}createPositionBefore(t){return Ja._createBefore(t)}createRange(t,e){return new ic(t,e)}createRangeIn(t){return ic._createIn(t)}createRangeOn(t){return ic._createOn(t)}createSelection(...t){return new hc(...t)}createBatch(t){return new _l(t)}createOperationFromJSON(t){return nd.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new rd(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return t}}class eh extends ya{constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}class nh extends P{constructor(t={}){super();const e=this.constructor,n=t.language||e.defaultConfig&&e.defaultConfig.language;this._context=t.context||new xo({language:n}),this._context._addEditor(this,!t.context);const o=Array.from(e.builtinPlugins||[]);this.config=new uo(t,e.defaultConfig),this.config.define("plugins",o),this.config.define(this._context._getEditorConfig()),this.plugins=new ko(this,o,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new Kc,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new th;const i=new Mi;this.data=new kl(this.model,i),this.editing=new $c(this.model,i),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new bl([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new eh(this),this.keystrokes.listenTo(this.editing.view.document)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(t){throw new c("editor-isreadonly-has-no-setter")}enableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new c("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)||(this._readOnlyLocks.add(t),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new c("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)&&(this._readOnlyLocks.delete(t),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],o=t.get("extraPlugins")||[],i=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(o),n,i)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(t,...e){try{return this.commands.execute(t,...e)}catch(t){c.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}}class oh{constructor(t){this.editor=t,this._components=new Map}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(ih(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new c("componentfactory-item-missing",this,{name:t});return this._components.get(ih(t)).callback(this.editor.locale)}has(t){return this._components.has(ih(t))}}function ih(t){return String(t).toLowerCase()}class rh extends fo{constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new c("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const o of t)n.delegate(o).to(e);this.on("add",((n,o)=>{for(const n of t)o.delegate(n).to(e)})),this.on("remove",((n,o)=>{for(const n of t)o.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}}class sh extends w{constructor(t){super(),Object.assign(this,fh(ph(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,intoFragment:!1,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new c("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)Ch(n)?yield n:vh(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,o)=>new ch({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:o}),if:(n,o,i)=>new lh({observable:t,emitter:e,attribute:n,valueIfTrue:o,callback:i})}}static extend(t,e){if(t._isRendered)throw new c("template-extend-render",[this,t]);Ah(t,fh(ph(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new c("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),dh(this.text)?this._bindToObservable({schema:this.text,updater:uh(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){if(!this.attributes)return;const e=t.node,n=t.revertData;for(const o in this.attributes){const i=e.getAttribute(o),r=this.attributes[o];n&&(n.attributes[o]=i);const s=xh(r)?r[0].ns:null;if(dh(r)){const a=xh(r)?r[0].value:r;n&&Eh(o)&&a.unshift(i),this._bindToObservable({schema:a,updater:gh(e,o,s),data:t})}else if("style"==o&&"string"!=typeof r[0])this._renderStyleAttribute(r[0],t);else{n&&i&&Eh(o)&&r.unshift(i);const t=r.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(bh,"");_h(t)||e.setAttributeNS(s,o,t)}}}_renderStyleAttribute(t,e){const n=e.node;for(const o in t){const i=t[o];dh(i)?this._bindToObservable({schema:[i],updater:mh(n,o),data:e}):n.style[o]=i}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,o=t.isApplying;let i=0;for(const r of this.children)if(yh(r)){if(!o){r.setParent(e);for(const t of r)n.appendChild(t.element)}}else if(Ch(r))o||(r.isRendered||r.render(),n.appendChild(r.element));else if(Zr(r))n.appendChild(r);else if(o){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),r._renderNode({intoFragment:!1,node:n.childNodes[i++],isApplying:!0,revertData:e})}else n.appendChild(r.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[o,i]=e.split("@");return n.activateDomEventListener(o,i,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const o=n.revertData;hh(t,e,n);const i=t.filter((t=>!_h(t))).filter((t=>t.observable)).map((o=>o.activateAttributeListener(t,e,n)));o&&o.bindings.push(i)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)return void(t.textContent=e.text);const n=t;for(const t in e.attributes){const o=e.attributes[t];null===o?n.removeAttribute(t):n.setAttribute(t,o)}for(let t=0;thh(t,e,n);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,o),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,o)}}}class ch extends ah{constructor(t){super(t),this.eventNameOrFunction=t.eventNameOrFunction}activateDomEventListener(t,e,n){const o=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,o),()=>{this.emitter.stopListening(n.node,t,o)}}}class lh extends ah{constructor(t){super(t),this.valueIfTrue=t.valueIfTrue}getValue(t){return!_h(super.getValue(t))&&(this.valueIfTrue||!0)}}function dh(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(dh):t instanceof ah)}function hh(t,e,{node:n}){const o=function(t,e){return t.map((t=>t instanceof ah?t.getValue(e):t))}(t,n);let i;i=1==t.length&&t[0]instanceof lh?o[0]:o.reduce(bh,""),_h(i)?e.remove():e.set(i)}function uh(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function gh(t,e,n){return{set(o){t.setAttributeNS(n,e,o)},remove(){t.removeAttributeNS(n,e)}}}function mh(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function ph(t){return lo(t,(t=>{if(t&&(t instanceof ah||vh(t)||Ch(t)||yh(t)))return t}))}function fh(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=bo(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)kh(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=bo(t[e].value)),kh(t,e)}(t.attributes);const e=[];if(t.children)if(yh(t.children))e.push(t.children);else for(const n of t.children)vh(n)||Ch(n)||Zr(n)?e.push(n):e.push(new sh(n));t.children=e}return t}function kh(t,e){t[e]=bo(t[e])}function bh(t,e){return _h(e)?t:_h(t)?e:`${t} ${e}`}function wh(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function Ah(t,e){if(e.attributes&&(t.attributes||(t.attributes={}),wh(t.attributes,e.attributes)),e.eventListeners&&(t.eventListeners||(t.eventListeners={}),wh(t.eventListeners,e.eventListeners)),e.text&&t.text.push(...e.text),e.children&&e.children.length){if(t.children.length!=e.children.length)throw new c("ui-template-extend-children-mismatch",t);let n=0;for(const o of e.children)Ah(t.children[n++],o)}}function _h(t){return!t&&0!==t}function Ch(t){return t instanceof Th}function vh(t){return t instanceof sh}function yh(t){return t instanceof rh}function xh(t){return D(t[0])&&t[0].ns}function Eh(t){return"class"==t||"style"==t}var Dh=n(4793),Ih={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Dh.Z,Ih);Dh.Z.locals;class Th extends(As(P)){constructor(t){super(),this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new fo,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t,n.t=t&&t.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=sh.bind(this,this)}createCollection(t){const e=new rh(t);return this._viewCollections.add(e),e}registerChild(t){po(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){po(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new sh(t)}extendTemplate(t){sh.extend(this.template,t)}render(){if(this.isRendered)throw new c("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}function Mh({element:t,target:e,positions:n,limiter:o,fitInViewport:i,viewportOffsetConfig:r}){Dt(e)&&(e=e()),Dt(o)&&(o=o());const s=function(t){return t&&t.parentNode?t.offsetParent===Ao.document.body?null:t.offsetParent:null}(t),a=new Ma(t),c=new Ma(e);let l;const d=i&&function(t){t=Object.assign({top:0,bottom:0,left:0,right:0},t);const e=new Ma(Ao.window);return e.top+=t.top,e.height-=t.top,e.bottom-=t.bottom,e.height-=t.bottom,e}(r)||null,h={targetRect:c,elementRect:a,positionedElementAncestor:s,viewportRect:d};if(o||i){const t=o&&new Ma(o).getVisible();Object.assign(h,{limiterRect:t,viewportRect:d}),l=function(t,e){const{elementRect:n}=e,o=n.getArea(),i=t.map((t=>new Nh(t,e))).filter((t=>!!t.name));let r=0,s=null;for(const t of i){const{limiterIntersectionArea:e,viewportIntersectionArea:n}=t;if(e===o)return t;const i=n**2+e**2;i>r&&(r=i,s=t)}return s}(n,h)||new Nh(n[0],h)}else l=new Nh(n[0],h);return l}function Sh(t){const{scrollX:e,scrollY:n}=Ao.window;return t.clone().moveBy(e,n)}class Nh{constructor(t,e){const n=t(e.targetRect,e.elementRect,e.viewportRect);if(!n)return;const{left:o,top:i,name:r,config:s}=n;this.name=r,this.config=s,this._positioningFunctionCorrdinates={left:o,top:i},this._options=e}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const t=this._options.limiterRect;if(t){const e=this._options.viewportRect;if(!e)return t.getIntersectionArea(this._rect);{const n=t.getIntersection(e);if(n)return n.getIntersectionArea(this._rect)}}return 0}get viewportIntersectionArea(){const t=this._options.viewportRect;return t?t.getIntersectionArea(this._rect):0}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCorrdinates.left,this._positioningFunctionCorrdinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=Sh(this._rect),this._options.positionedElementAncestor&&function(t,e){const n=Sh(new Ma(e)),o=Ia(e);let i=0,r=0;i-=n.left,r-=n.top,i+=e.scrollLeft,r+=e.scrollTop,i-=o.left,r-=o.top,t.moveBy(i,r)}(this._cachedAbsoluteRect,this._options.positionedElementAncestor)),this._cachedAbsoluteRect}}function Bh(t){return e=>e+t}var Ph=n(8793),zh={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Ph.Z,zh);Ph.Z.locals;const Lh=Bh("px"),Oh=Ao.document.body;class Rh extends Th{constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class",void 0),this._pinWhenIsVisibleCallback=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>`ck-balloon-panel_${t}`)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",Lh),left:e.to("left",Lh)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=Rh.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast,e.viewportStickyNorth],limiter:Oh,fitInViewport:!0},t),o=Rh._getOptimalPosition(n),i=parseInt(o.left),r=parseInt(o.top),s=o.name,a=o.config||{},{withArrow:c=!0}=a;this.top=r,this.left=i,this.position=s,this.withArrow=c}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=jh(t.target),n=t.limiter?jh(t.limiter):Oh;this.listenTo(Ao.document,"scroll",((o,i)=>{const r=i.target,s=e&&r.contains(e),a=n&&r.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(Ao.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(Ao.document,"scroll"),this.stopListening(Ao.window,"resize")}}function jh(t){return ho(t)?t:Da(t)?t.commonAncestorContainer:"function"==typeof t?jh(t()):null}function Fh(t={}){const{sideOffset:e=Rh.arrowSideOffset,heightOffset:n=Rh.arrowHeightOffset,stickyVerticalOffset:o=Rh.stickyVerticalOffset,config:i}=t;return{northWestArrowSouthWest:(t,n)=>({top:r(t,n),left:t.left-e,name:"arrow_sw",...i&&{config:i}}),northWestArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.left-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northWestArrowSouth:(t,e)=>({top:r(t,e),left:t.left-e.width/2,name:"arrow_s",...i&&{config:i}}),northWestArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.left-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northWestArrowSouthEast:(t,n)=>({top:r(t,n),left:t.left-n.width+e,name:"arrow_se",...i&&{config:i}}),northArrowSouthWest:(t,n)=>({top:r(t,n),left:t.left+t.width/2-e,name:"arrow_sw",...i&&{config:i}}),northArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.left+t.width/2-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northArrowSouth:(t,e)=>({top:r(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s",...i&&{config:i}}),northArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.left+t.width/2-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northArrowSouthEast:(t,n)=>({top:r(t,n),left:t.left+t.width/2-n.width+e,name:"arrow_se",...i&&{config:i}}),northEastArrowSouthWest:(t,n)=>({top:r(t,n),left:t.right-e,name:"arrow_sw",...i&&{config:i}}),northEastArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.right-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northEastArrowSouth:(t,e)=>({top:r(t,e),left:t.right-e.width/2,name:"arrow_s",...i&&{config:i}}),northEastArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.right-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northEastArrowSouthEast:(t,n)=>({top:r(t,n),left:t.right-n.width+e,name:"arrow_se",...i&&{config:i}}),southWestArrowNorthWest:t=>({top:s(t),left:t.left-e,name:"arrow_nw",...i&&{config:i}}),southWestArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.left-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southWestArrowNorth:(t,e)=>({top:s(t),left:t.left-e.width/2,name:"arrow_n",...i&&{config:i}}),southWestArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.left-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southWestArrowNorthEast:(t,n)=>({top:s(t),left:t.left-n.width+e,name:"arrow_ne",...i&&{config:i}}),southArrowNorthWest:t=>({top:s(t),left:t.left+t.width/2-e,name:"arrow_nw",...i&&{config:i}}),southArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.left+t.width/2-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southArrowNorth:(t,e)=>({top:s(t),left:t.left+t.width/2-e.width/2,name:"arrow_n",...i&&{config:i}}),southArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.left+t.width/2-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southArrowNorthEast:(t,n)=>({top:s(t),left:t.left+t.width/2-n.width+e,name:"arrow_ne",...i&&{config:i}}),southEastArrowNorthWest:t=>({top:s(t),left:t.right-e,name:"arrow_nw",...i&&{config:i}}),southEastArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.right-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southEastArrowNorth:(t,e)=>({top:s(t),left:t.right-e.width/2,name:"arrow_n",...i&&{config:i}}),southEastArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.right-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southEastArrowNorthEast:(t,n)=>({top:s(t),left:t.right-n.width+e,name:"arrow_ne",...i&&{config:i}}),westArrowEast:(t,e)=>({top:t.top+t.height/2-e.height/2,left:t.left-e.width-n,name:"arrow_e",...i&&{config:i}}),eastArrowWest:(t,e)=>({top:t.top+t.height/2-e.height/2,left:t.right+n,name:"arrow_w",...i&&{config:i}}),viewportStickyNorth:(t,e,n)=>t.getIntersection(n)?{top:n.top+o,left:t.left+t.width/2-e.width/2,name:"arrowless",config:{withArrow:!1,...i}}:null};function r(t,e){return t.top-e.height-n}function s(t){return t.bottom+n}}Rh.arrowSideOffset=25,Rh.arrowHeightOffset=10,Rh.stickyVerticalOffset=20,Rh._getOptimalPosition=Mh,Rh.defaultPositions=Fh();var Vh=n(3332),Uh={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Vh.Z,Uh);Vh.Z.locals;const Hh="ck-tooltip";class Wh extends _s{constructor(t){if(super(),Wh._editors.add(t),Wh._instance)return Wh._instance;Wh._instance=this,this.tooltipTextView=new Th(t.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new Rh(t.locale),this.balloonPanelView.class=Hh,this.balloonPanelView.content.add(this.tooltipTextView),this._resizeObserver=null,this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this._pinTooltipDebounced=Vs(this._pinTooltip,600),this.listenTo(Ao.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(Ao.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(Ao.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(Ao.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(Ao.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(t){const e=t.ui.view&&t.ui.view.body;Wh._editors.delete(t),this.stopListening(t.ui),e&&e.has(this.balloonPanelView)&&e.remove(this.balloonPanelView),Wh._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),Wh._instance=null)}static getPositioningFunctions(t){const e=Wh.defaultBalloonPositions;return{s:[e.southArrowNorth,e.southArrowNorthEast,e.southArrowNorthWest],n:[e.northArrowSouth],e:[e.eastArrowWest],w:[e.westArrowEast],sw:[e.southArrowNorthEast],se:[e.southArrowNorthWest]}[t]}_onEnterOrFocus(t,{target:e}){const n=Gh(e);var o;n&&(n!==this._currentElementWithTooltip&&(this._unpinTooltip(),this._pinTooltipDebounced(n,{text:(o=n).dataset.ckeTooltipText,position:o.dataset.ckeTooltipPosition||"s",cssClass:o.dataset.ckeTooltipClass||""})))}_onLeaveOrBlur(t,{target:e,relatedTarget:n}){if("mouseleave"===t.name){if(!ho(e))return;if(this._currentElementWithTooltip&&e!==this._currentElementWithTooltip)return;const t=Gh(e),o=Gh(n);t&&t!==o&&this._unpinTooltip()}else{if(this._currentElementWithTooltip&&e!==this._currentElementWithTooltip)return;this._unpinTooltip()}}_onScroll(t,{target:e}){this._currentElementWithTooltip&&(e.contains(this.balloonPanelView.element)&&e.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(t,{text:e,position:n,cssClass:o}){const i=Ca(Wh._editors.values()).ui.view.body;i.has(this.balloonPanelView)||i.add(this.balloonPanelView),this.tooltipTextView.text=e,this.balloonPanelView.pin({target:t,positions:Wh.getPositioningFunctions(n)}),this._resizeObserver=new Aa(t,(()=>{_a(t)||this._unpinTooltip()})),this.balloonPanelView.class=[Hh,o].filter((t=>t)).join(" ");for(const t of Wh._editors)this.listenTo(t.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=t,this._currentTooltipPosition=n}_unpinTooltip(){this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const t of Wh._editors)this.stopListening(t.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this._resizeObserver&&this._resizeObserver.destroy()}_updateTooltipPosition(){_a(this._currentElementWithTooltip)?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:Wh.getPositioningFunctions(this._currentTooltipPosition)}):this._unpinTooltip()}}function Gh(t){return ho(t)?t.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}Wh.defaultBalloonPositions=Fh({heightOffset:5,sideOffset:13}),Wh._editors=new Set,Wh._instance=null;class qh extends P{constructor(t){super(),this.editor=t,this.componentFactory=new oh(t),this.focusTracker=new va,this.tooltipManager=new Wh(t),this.set("viewportOffset",this._readViewportOffsetFromConfig()),this.isReady=!1,this.once("ready",(()=>{this.isReady=!0})),this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[],this.listenTo(t.editing.view.document,"layoutChanged",(()=>this.update())),this._initFocusTracking()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor);for(const t of this._editableElementsMap.values())t.ckeditorInstance=null;this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[]}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor),this.focusTracker.add(e);const n=()=>{this.editor.editing.view.getDomRoot(t)||this.editor.keystrokes.listenTo(e)};this.isReady?n():this.once("ready",n)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(t,e={}){t.isRendered?(this.focusTracker.add(t.element),this.editor.keystrokes.listenTo(t.element)):t.once("render",(()=>{this.focusTracker.add(t.element),this.editor.keystrokes.listenTo(t.element)})),this._focusableToolbarDefinitions.push({toolbarView:t,options:e})}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}_readViewportOffsetFromConfig(){const t=this.editor,e=t.config.get("ui.viewportOffset");if(e)return e;const n=t.config.get("toolbar.viewportTopOffset");return n?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:n}):{top:0}}_initFocusTracking(){const t=this.editor,e=t.editing.view;let n,o;t.keystrokes.set("Alt+F10",((t,i)=>{const r=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(r)&&!Array.from(e.domRoots.values()).includes(r)&&(n=r);const s=this._getCurrentFocusedToolbarDefinition();s&&o||(o=this._getFocusableCandidateToolbarDefinitions());for(let t=0;t{const i=this._getCurrentFocusedToolbarDefinition();i&&(n?(n.focus(),n=null):t.editing.view.focus(),i.options.afterBlur&&i.options.afterBlur(),o())}))}_getFocusableCandidateToolbarDefinitions(){const t=[];for(const e of this._focusableToolbarDefinitions){const{toolbarView:n,options:o}=e;(_a(n.element)||o.beforeFocus)&&t.push(e)}return t.sort(((t,e)=>Yh(t)-Yh(e))),t}_getCurrentFocusedToolbarDefinition(){for(const t of this._focusableToolbarDefinitions)if(t.toolbarView.element&&t.toolbarView.element.contains(this.focusTracker.focusedElement))return t;return null}_focusFocusableCandidateToolbar(t){const{toolbarView:e,options:{beforeFocus:n}}=t;return n&&n(),!!_a(e.element)&&(e.focus(),!0)}}function Yh(t){const{toolbarView:e,options:n}=t;let o=10;return _a(e.element)&&o--,n.isContextual&&o--,o}function $h(t){return class extends t{setData(t){this.data.set(t)}getData(t){return this.data.get(t)}}}{const t=$h(Object);$h.setData=t.prototype.setData,$h.getData=t.prototype.getData}function Kh(t,e){t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}function Qh(t){return class extends t{updateSourceElement(t=this.data.get()){if(!this.sourceElement)throw new c("editor-missing-sourceelement",this);const e=this.config.get("updateSourceElementOnDestroy"),n=this.sourceElement instanceof HTMLTextAreaElement;Kh(this.sourceElement,e||n?t:"")}}}Qh.updateSourceElement=Qh(Object).prototype.updateSourceElement;class Zh extends Eo{static get pluginName(){return"PendingActions"}init(){this.set("hasAny",!1),this._actions=new fo({idProperty:"_id"}),this._actions.delegate("add","remove").to(this)}add(t){if("string"!=typeof t)throw new c("pendingactions-add-invalid-message",this);const e=new P;return e.set("message",t),this._actions.add(e),this.hasAny=!0,e}remove(t){this._actions.remove(t),this.hasAny=!!this._actions.length}get first(){return this._actions.get(0)}[Symbol.iterator](){return this._actions[Symbol.iterator]()}}const Jh='',Xh={bold:'',cancel:'',caption:'',check:'',cog:'',eraser:'',image:'',lowVision:'',importExport:'',paragraph:'',plus:'',text:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:Jh,quote:'',threeVerticalDots:''};function tu({emitter:t,activator:e,callback:n,contextElements:o}){t.listenTo(document,"mousedown",((t,i)=>{if(!e())return;const r="function"==typeof i.composedPath?i.composedPath():[];for(const t of o)if(t.contains(i.target)||r.includes(t))return;n()}))}function eu(t){const e=t;e.set("_isCssTransitionsDisabled",!1),e.disableCssTransitions=()=>{e._isCssTransitionsDisabled=!0},e.enableCssTransitions=()=>{e._isCssTransitionsDisabled=!1},e.extendTemplate({attributes:{class:[e.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}function nu({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}class ou extends rh{constructor(t,e=[]){super(e),this.locale=t}attachToDom(){this._bodyCollectionContainer=new sh({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=wa(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}var iu=n(6574),ru={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(iu.Z,ru);iu.Z.locals;class su extends Th{constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon","ck-reset_all-excluded",t.if("isColorInherited","ck-icon_inherit-color")],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");e&&(this.viewBox=e);for(const{name:e,value:n}of Array.from(t.attributes))su.presentationalAttributeNames.includes(e)&&this.element.setAttribute(e,n);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}su.presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];var au=n(4906),cu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(au.Z,cu);au.Z.locals;class lu extends Th{constructor(t){super(t);const e=this.bindTemplate,n=r();this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._createLabelView(n),this.iconView=new su,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const o={tag:"button",attributes:{class:["ck","ck-button",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("isVisible","ck-hidden",(t=>!t)),e.to("isOn",(t=>t?"ck-on":"ck-off")),e.if("withText","ck-button_with-text"),e.if("withKeystroke","ck-button_with-keystroke")],type:e.to("type",(t=>t||"button")),tabindex:e.to("tabindex"),"aria-labelledby":`ck-editor__aria-label_${n}`,"aria-disabled":e.if("isEnabled",!0,(t=>!t)),"aria-pressed":e.to("isOn",(t=>!!this.isToggleable&&String(!!t))),"data-cke-tooltip-text":e.to("_tooltipString"),"data-cke-tooltip-position":e.to("tooltipPosition")},children:this.children,on:{click:e.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}};cr.isSafari&&(o.on.mousedown=e.to((t=>{this.focus(),t.preventDefault()}))),this.setTemplate(o)}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}_createLabelView(t){const e=new Th,n=this.bindTemplate;return e.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:n.to("labelStyle"),id:`ck-editor__aria-label_${t}`},children:[{text:this.bindTemplate.to("label")}]}),e}_createKeystrokeView(){const t=new Th;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>fr(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=fr(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var du=n(5332),hu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(du.Z,hu);du.Z.locals;class uu extends lu{constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Th;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}var gu=n(6781),mu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(gu.Z,mu);gu.Z.locals;const pu='';class fu extends lu{constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(t=>String(t)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new su;return t.content=pu,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}var ku=n(7686),bu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(ku.Z,bu);ku.Z.locals;class wu extends Th{constructor(t){super(t);const e=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(),this.arrowView=this._createArrowView(),this.keystrokes=new ya,this.focusTracker=new va,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",e.to("class"),e.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(){const t=new lu;return t.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),t.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),t.delegate("execute").to(this),t}_createArrowView(){const t=new lu,e=t.bindTemplate;return t.icon=pu,t.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":e.to("isOn"),"aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.bind("label").to(this),t.bind("tooltip").to(this),t.delegate("execute").to(this,"open"),t}}class Au extends Th{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>`ck-dropdown__panel_${t}`)),e.if("isVisible","ck-dropdown__panel-visible")]},children:this.children,on:{selectstart:e.to((t=>t.preventDefault()))}})}focus(){if(this.children.length){const t=this.children.first;"function"==typeof t.focus?t.focus():l("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}var _u=n(5485),Cu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(_u.Z,Cu);_u.Z.locals;class vu extends Th{constructor(t,e,n){super(t);const o=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.keystrokes=new ya,this.focusTracker=new va,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",o.to("class"),o.if("isEnabled","ck-disabled",(t=>!t))],id:o.to("id"),"aria-describedby":o.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":o.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.panelView.bind("isVisible").to(this,"isOpen"),this.on("change:isOpen",((t,e,n)=>{n&&("auto"===this.panelPosition?this.panelView.position=vu._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions}).name:this.panelView.position=this.panelPosition)})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:o,northEast:i,northWest:r,southMiddleEast:s,southMiddleWest:a,northMiddleEast:c,northMiddleWest:l}=vu.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,o,s,a,t,i,r,c,l,e]:[o,n,a,s,t,r,i,l,c,e]}}vu.defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})},vu._getOptimalPosition=Mh;class yu{constructor(t){if(this.focusables=t.focusables,this.focusTracker=t.focusTracker,this.keystrokeHandler=t.keystrokeHandler,this.actions=t.actions,t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const o of n)t.keystrokeHandler.set(o,((t,n)=>{this[e](),n()}))}}get first(){return this.focusables.find(xu)||null}get last(){return this.focusables.filter(xu).slice(-1)[0]||null}get next(){return this._getFocusableItem(1)}get previous(){return this._getFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const o=e.element===this.focusTracker.focusedElement;return o&&(t=n),o})),t)}focusFirst(){this._focus(this.first)}focusLast(){this._focus(this.last)}focusNext(){this._focus(this.next)}focusPrevious(){this._focus(this.previous)}_focus(t){t&&t.focus()}_getFocusableItem(t){const e=this.current,n=this.focusables.length;if(!n)return null;if(null===e)return this[1===t?"first":"last"];let o=(e+n+t)%n;do{const e=this.focusables.get(o);if(xu(e))return e;o=(o+n+t)%n}while(o!==e);return null}}function xu(t){return!(!t.focus||!_a(t.element))}class Eu extends Th{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class Du extends Th{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function Iu(t){return Array.isArray(t)?{items:t,removeItems:[]}:t?Object.assign({items:[],removeItems:[]},t):{items:[],removeItems:[]}}var Tu=n(5542),Mu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Tu.Z,Mu);Tu.Z.locals;const{threeVerticalDots:Su}=Xh,Nu={alignLeft:Xh.alignLeft,bold:Xh.bold,importExport:Xh.importExport,paragraph:Xh.paragraph,plus:Xh.plus,text:Xh.text,threeVerticalDots:Xh.threeVerticalDots};class Bu extends Th{constructor(t,e){super(t);const n=this.bindTemplate,o=this.t;this.options=e||{},this.set("ariaLabel",o("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new va,this.keystrokes=new ya,this.set("class",void 0),this.set("isCompact",!1),this.itemsView=new Pu(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===t.uiLanguageDirection;this._focusCycler=new yu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[i?"arrowright":"arrowleft","arrowup"],focusNext:[i?"arrowleft":"arrowright","arrowdown"]}});const r=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&r.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:r,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")}},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new Lu(this):new zu(this)}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e,n){const o=Iu(t),i=n||o.removeItems,r=this._cleanItemsConfiguration(o.items,e,i).map((t=>D(t)?this._createNestedToolbarDropdown(t,e,i):"|"===t?new Eu:"-"===t?new Du:e.create(t))).filter((t=>!!t));this.items.addMany(r)}_cleanItemsConfiguration(t,e,n){const o=t.filter(((t,o,i)=>"|"===t||-1===n.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(l("toolbarview-line-break-ignored-when-grouping-items",i),!1):!(!D(t)&&!e.has(t))||(l("toolbarview-item-unavailable",{item:t}),!1))));return this._cleanSeparatorsAndLineBreaks(o)}_cleanSeparatorsAndLineBreaks(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,o=t.findIndex(e);if(-1===o)return[];const i=n-t.slice().reverse().findIndex(e);return t.slice(o,i).filter(((t,n,o)=>{if(e(t))return!0;return!(n>0&&o[n-1]===t)}))}_createNestedToolbarDropdown(t,e,n){let{label:o,icon:i,items:r,tooltip:s=!0,withText:a=!1}=t;if(r=this._cleanItemsConfiguration(r,e,n),!r.length)return null;const c=qu(this.locale);return o||l("toolbarview-nested-toolbar-dropdown-missing-label",t),c.class="ck-toolbar__nested-toolbar-dropdown",c.buttonView.set({label:o,tooltip:s,withText:!!a}),!1!==i?c.buttonView.icon=Nu[i]||i||Su:c.buttonView.withText=!0,Yu(c,[]),c.toolbarView.fillFromConfig(r,e,n),c}}class Pu extends Th{constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class zu{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>t)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class Lu{constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),this.resizeObserver=null,this.cachedPadding=null,this.shouldUpdateGroupingOnNextResize=!1,t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("add",this._updateFocusCycleableItems.bind(this)),this.ungroupedItems.on("remove",this._updateFocusCycleableItems.bind(this)),t.children.on("add",this._updateFocusCycleableItems.bind(this)),t.children.on("remove",this._updateFocusCycleableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index,o=Array.from(e.added);for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(e,t-this.ungroupedItems.length):this.ungroupedItems.add(e,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!_a(this.viewElement))return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new Ma(t.lastChild),o=new Ma(t);if(!this.cachedPadding){const n=Ao.window.getComputedStyle(t),o="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[o])}return"ltr"===e?n.right>o.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new Eu),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=qu(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",Yu(n,[]),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Su}),n.toolbarView.items.bindTo(this.groupedItems).using((t=>t)),n}_updateFocusCycleableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}var Ou=n(1046),Ru={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Ou.Z,Ru);Ou.Z.locals;class ju extends Th{constructor(t){super(t),this.items=this.createCollection(),this.focusTracker=new va,this.keystrokes=new ya,this._focusCycler=new yu({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"]},children:this.items})}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}}class Fu extends Th{constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",e.if("isVisible","ck-hidden",(t=>!t))]},children:this.children})}focus(){this.children.first.focus()}}class Vu extends Th{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}var Uu=n(7339),Hu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Uu.Z,Hu);Uu.Z.locals;var Wu=n(3949),Gu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Wu.Z,Gu);Wu.Z.locals;function qu(t,e=fu){const n=new e(t),o=new Au(t),i=new vu(t,n,o);return n.bind("isEnabled").to(i),n instanceof wu?n.arrowView.bind("isOn").to(i,"isOpen"):n.bind("isOn").to(i,"isOpen"),function(t){(function(t){t.on("render",(()=>{tu({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:[t.element]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof uu||(t.isOpen=!1)}))}(t),function(t){t.focusTracker.on("change:isFocused",((e,n,o)=>{t.isOpen&&!o&&(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t),function(t){t.on("change:isOpen",((e,n,o)=>{o||t.panelView.element.contains(Ao.document.activeElement)&&t.buttonView.focus()}))}(t),function(t){t.on("change:isOpen",((e,n,o)=>{o&&t.panelView.focus()}),{priority:"low"})}(t)}(i),i}function Yu(t,e,n={}){const o=t.locale,i=o.t,r=t.toolbarView=new Bu(o);r.set("ariaLabel",i("Dropdown toolbar")),t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),e.map((t=>r.items.add(t))),n.enableActiveItemFocusOnDropdownOpen&&Ku(t,(()=>r.items.find((t=>t.isOn)))),t.panelView.children.add(r),r.items.delegate("execute").to(t)}function $u(t,e){const n=t.locale,o=t.listView=new ju(n);o.items.bindTo(e).using((t=>{if("separator"===t.type)return new Vu(n);if("button"===t.type||"switchbutton"===t.type){const e=new Fu(n);let o;return o="button"===t.type?new lu(n):new uu(n),o.bind(...Object.keys(t.model)).to(t.model),o.delegate("execute").to(e),e.children.add(o),e}return null})),t.panelView.children.add(o),o.items.delegate("execute").to(t),Ku(t,(()=>o.items.find((t=>t instanceof Fu&&t.children.first.isOn))))}function Ku(t,e){t.on("change:isOpen",(()=>{if(!t.isOpen)return;const n=e();n&&("function"==typeof n.focus?n.focus():l("ui-dropdown-focus-child-on-open-child-missing-focus",{view:n}))}),{priority:s.low-10})}var Qu=n(9688),Zu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Qu.Z,Zu);Qu.Z.locals;class Ju extends Th{constructor(t){super(t),this.body=new ou(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}var Xu=n(3662),tg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Xu.Z,tg);Xu.Z.locals;class eg extends Th{constructor(t){super(t),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${r()}`;const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class ng extends Th{constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.name=null,this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const o=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",o),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",o)}))}t.isRenderingInProgress?function n(o){t.once("change:isRenderingInProgress",((t,i,r)=>{r?n(o):e(o)}))}(this):e(this)}}class og extends ng{constructor(t,e,n,o={}){super(t,e,n);const i=t.t;this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}}),this._generateLabel=o.label||(()=>i("Editor editing area: %0",this.name))}render(){super.render();const t=this._editingView;t.change((e=>{const n=t.document.getRoot(this.name);e.setAttribute("aria-label",this._generateLabel(this),n)}))}}var ig=n(8847),rg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(ig.Z,rg);ig.Z.locals;var sg=n(4879),ag={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(sg.Z,ag);sg.Z.locals;class cg extends Th{constructor(t){super(t),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.focusTracker=new va,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0),this.set("inputMode","text");const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),readonly:e.to("isReadOnly"),inputmode:e.to("inputMode"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById")},on:{input:e.to(((...t)=>{this.fire("input",...t),this._updateIsEmpty()})),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}class lg extends cg{constructor(t){super(t),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}var dg=n(2577),hg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(dg.Z,hg);dg.Z.locals;class ug extends Th{constructor(t,e){super(t);const n=`ck-labeled-field-view-${r()}`,o=`ck-labeled-field-view-status-${r()}`;this.fieldView=e(this,n,o),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(o),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t)),i.if("isEmpty","ck-labeled-field-view_empty"),i.if("isFocused","ck-labeled-field-view_focused"),i.if("placeholder","ck-labeled-field-view_placeholder"),i.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(t){const e=new eg(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Th(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(){this.fieldView.focus()}}function gg(t,e,n){const o=new lg(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o}class mg extends Eo{static get pluginName(){return"Notification"}init(){this.on("show:warning",((t,e)=>{window.alert(e.message)}),{priority:"lowest"})}showSuccess(t,e={}){this._showNotification({message:t,type:"success",namespace:e.namespace,title:e.title})}showInfo(t,e={}){this._showNotification({message:t,type:"info",namespace:e.namespace,title:e.title})}showWarning(t,e={}){this._showNotification({message:t,type:"warning",namespace:e.namespace,title:e.title})}_showNotification(t){const e=t.namespace?`show:${t.type}:${t.namespace}`:`show:${t.type}`;this.fire(e,{message:t.message,type:t.type,title:t.title||""})}}class pg extends P{constructor(t,e){super(),e&&xs(this,e),t&&this.set(t)}}var fg=n(4650),kg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(fg.Z,kg);fg.Z.locals;var bg=n(7676),wg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(bg.Z,wg);bg.Z.locals;const Ag=Bh("px");class _g extends F{constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.view=new Rh(t.locale),t.ui.view.body.add(this.view),t.ui.focusTracker.add(this.view.element),this._viewToStack=new Map,this._idToStack=new Map,this.set("_numberOfStacks",0),this.set("_singleViewMode",!1),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}static get pluginName(){return"ContextualBalloon"}destroy(){super.destroy(),this.view.destroy(),this._rotatorView.destroy(),this._fakePanelsView.destroy()}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this.hasView(t.view))throw new c("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new c("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new c("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new Cg(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const o=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[o,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new vg(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:o=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),o&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&(t.limiter||(t=Object.assign({},t,{limiter:this.positionLimiter})),t=Object.assign({},t,{viewportOffsetConfig:this.editor.ui.viewportOffset})),t}}class Cg extends Th{constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new va,this.buttonPrevView=this._createButtonView(e("Previous"),''),this.buttonNextView=this._createButtonView(e("Next"),''),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new lu(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class vg extends Th{constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",Ag),left:n.to("left",Ag),width:n.to("width",Ag),height:n.to("height",Ag)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,o)=>{n>o?this._addPanels(n-o):this._removePanels(o-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Th;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:o}=new Ma(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:o})}}}var yg=n(5868),xg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(yg.Z,xg);yg.Z.locals,Bh("px");const Eg=Bh("px");class Dg extends F{constructor(t){super(t),this._balloonConfig=Iu(t.config.get("balloonToolbar")),this.toolbarView=this._createToolbarView(),this.focusTracker=new va,t.ui.once("ready",(()=>{this.focusTracker.add(t.ui.getEditableElement()),this.focusTracker.add(this.toolbarView.element)})),t.ui.addToolbar(this.toolbarView,{beforeFocus:()=>this.show(!0),afterBlur:()=>this.hide(),isContextual:!0}),this._resizeObserver=null,this._balloon=t.plugins.get(_g),this._fireSelectionChangeDebounced=Vs((()=>this.fire("_selectionChangeDebounced")),200),this.decorate("show")}static get pluginName(){return"BalloonToolbar"}static get requires(){return[_g]}init(){const t=this.editor,e=t.model.document.selection;this.listenTo(this.focusTracker,"change:isFocused",((t,e,n)=>{const o=this._balloon.visibleView===this.toolbarView;!n&&o?this.hide():n&&this.show()})),this.listenTo(e,"change:range",((t,n)=>{(n.directChange||e.isCollapsed)&&this.hide(),this._fireSelectionChangeDebounced()})),this.listenTo(this,"_selectionChangeDebounced",(()=>{this.editor.editing.view.document.isFocused&&this.show()})),this._balloonConfig.shouldNotGroupWhenFull||this.listenTo(t,"ready",(()=>{const e=t.ui.view.editable.element;this._resizeObserver=new Aa(e,(()=>{this.toolbarView.maxWidth=Eg(.9*new Ma(e).width)}))})),this.listenTo(this.toolbarView,"groupedItemsUpdate",(()=>{this._updatePosition()}))}afterInit(){const t=this.editor.ui.componentFactory;this.toolbarView.fillFromConfig(this._balloonConfig,t)}_createToolbarView(){const t=this.editor.locale.t,e=!this._balloonConfig.shouldNotGroupWhenFull,n=new Bu(this.editor.locale,{shouldGroupWhenFull:e,isFloating:!0});return n.ariaLabel=t("Editor contextual toolbar"),n.render(),n}show(t=!1){const e=this.editor,n=e.model.document.selection,o=e.model.schema;this._balloon.hasView(this.toolbarView)||n.isCollapsed&&!t||function(t,e){if(1===t.rangeCount)return!1;return[...t.getRanges()].every((t=>{const n=t.getContainedElement();return n&&e.isSelectable(n)}))}(n,o)||Array.from(this.toolbarView.items).every((t=>void 0!==t.isEnabled&&!t.isEnabled))||(this.listenTo(this.editor.ui,"update",(()=>{this._updatePosition()})),this._balloon.add({view:this.toolbarView,position:this._getBalloonPositionData(),balloonClassName:"ck-toolbar-container"}))}hide(){this._balloon.hasView(this.toolbarView)&&(this.stopListening(this.editor.ui,"update"),this._balloon.remove(this.toolbarView))}_getBalloonPositionData(){const t=this.editor.editing.view,e=t.document,n=e.selection,o=e.selection.isBackward;return{target:()=>{const e=o?n.getFirstRange():n.getLastRange(),i=Ma.getDomRangeRects(t.domConverter.viewRangeToDom(e));return o?i[0]:(i.length>1&&0===i[i.length-1].width&&i.pop(),i[i.length-1])},positions:this._getBalloonPositions(o)}}_updatePosition(){this._balloon.updatePosition(this._getBalloonPositionData())}destroy(){super.destroy(),this.stopListening(),this._fireSelectionChangeDebounced.cancel(),this.toolbarView.destroy(),this.focusTracker.destroy(),this._resizeObserver&&this._resizeObserver.destroy()}_getBalloonPositions(t){const e=cr.isSafari&&cr.isiOS?Fh({heightOffset:Math.max(Rh.arrowHeightOffset,Math.round(20/Ao.window.visualViewport.scale))}):Rh.defaultPositions;return t?[e.northWestArrowSouth,e.northWestArrowSouthWest,e.northWestArrowSouthEast,e.northWestArrowSouthMiddleEast,e.northWestArrowSouthMiddleWest,e.southWestArrowNorth,e.southWestArrowNorthWest,e.southWestArrowNorthEast,e.southWestArrowNorthMiddleWest,e.southWestArrowNorthMiddleEast]:[e.southEastArrowNorth,e.southEastArrowNorthEast,e.southEastArrowNorthWest,e.southEastArrowNorthMiddleEast,e.southEastArrowNorthMiddleWest,e.northEastArrowSouth,e.northEastArrowSouthEast,e.northEastArrowSouthWest,e.northEastArrowSouthMiddleEast,e.northEastArrowSouthMiddleWest]}}var Ig=n(9695),Tg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Ig.Z,Tg);Ig.Z.locals;const Mg=Bh("px");class Sg extends lu{constructor(t){super(t);const e=this.bindTemplate;this.isVisible=!1,this.isToggleable=!0,this.set("top",0),this.set("left",0),this.extendTemplate({attributes:{class:"ck-block-toolbar-button",style:{top:e.to("top",(t=>Mg(t))),left:e.to("left",(t=>Mg(t)))}}})}}const Ng=Bh("px");class Bg extends qh{constructor(t,e){super(t),this.view=e}get element(){return this.view.editable.element}init(){const t=this.editor,e=this.view,n=t.editing.view,o=e.editable,i=n.document.getRoot();o.name=i.rootName,e.render();const r=o.element;this.setEditableElement(o.name,r),o.bind("isFocused").to(this.focusTracker),n.attachDomRoot(r),this._initPlaceholder(),this.fire("ready")}destroy(){super.destroy();const t=this.view;this.editor.editing.view.detachDomRoot(t.editable.name),t.destroy()}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.sourceElement,i=t.config.get("placeholder")||o&&"textarea"===o.tagName.toLowerCase()&&o.getAttribute("placeholder");i&&Id({view:e,element:n,text:i,isDirectHost:!1,keepOnFocus:!0})}}class Pg extends Ju{constructor(t,e,n){super(t);const o=t.t;this.editable=new og(t,e,n,{label:t=>o("Rich Text Editor. Editing area: %0",t.name)})}render(){super.render(),this.registerChild(this.editable)}}class zg extends nh{constructor(t,e={}){if(!ho(t)&&void 0!==e.initialData)throw new c("editor-create-initial-data",null);super(e),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return ho(t)?(e=t,e instanceof HTMLTextAreaElement?e.value:e.innerHTML):t;var e}(t)),ho(t)&&(this.sourceElement=t,function(t){const e=t.sourceElement;if(e){if(e.ckeditorInstance)throw new c("editor-source-element-already-used",t);e.ckeditorInstance=t,t.once("destroy",(()=>{delete e.ckeditorInstance}))}}(this));const n=this.config.get("plugins");n.push(Dg),this.config.set("plugins",n),this.config.define("balloonToolbar",this.config.get("toolbar")),this.model.document.createRoot();const o=new Pg(this.locale,this.editing.view,this.sourceElement);this.ui=new Bg(this,o),function(t){if(!Dt(t.updateSourceElement))throw new c("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(function(t){return!!t&&"textarea"===t.tagName.toLowerCase()}(e)&&e.form){let n;const o=e.form,i=()=>t.updateSourceElement();Dt(o.submit)&&(n=o.submit,o.submit=()=>{i(),n.apply(o)}),o.addEventListener("submit",i),t.on("destroy",(()=>{o.removeEventListener("submit",i),n&&(o.submit=n)}))}}(this)}destroy(){const t=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(t)}))}static create(t,e={}){return new Promise((n=>{if(ho(t)&&"TEXTAREA"===t.tagName)throw new c("editor-wrong-element",null);const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init())).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}}ka(zg,$h),ka(zg,Qh);class Lg extends Ds{constructor(t){super(t);const n=this.document;function o(t){return(o,i)=>{i.preventDefault();const r=i.dropRange?[i.dropRange]:null,s=new e(n,t);n.fire(s,{dataTransfer:i.dataTransfer,method:o.name,targetRanges:r,target:i.target}),s.stop.called&&i.stopPropagation()}}this.domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"],this.listenTo(n,"paste",o("clipboardInput"),{priority:"low"}),this.listenTo(n,"drop",o("clipboardInput"),{priority:"low"}),this.listenTo(n,"dragover",o("dragging"),{priority:"low"})}onDomEvent(t){const e={dataTransfer:new pa("clipboardData"in t?t.clipboardData:t.dataTransfer)};"drop"!=t.type&&"dragover"!=t.type||(e.dropRange=function(t,e){const n=e.target.ownerDocument,o=e.clientX,i=e.clientY;let r;n.caretRangeFromPoint&&n.caretRangeFromPoint(o,i)?r=n.caretRangeFromPoint(o,i):e.rangeParent&&(r=n.createRange(),r.setStart(e.rangeParent,e.rangeOffset),r.collapse(!0));if(r)return t.domConverter.domRangeToView(r);return null}(this.view,t)),this.fire(t.type,t,e)}}const Og=["figcaption","li"];function Rg(t){let e="";if(t.is("$text")||t.is("$textProxy"))e=t.data;else if(t.is("element","img")&&t.hasAttribute("alt"))e=t.getAttribute("alt");else if(t.is("element","br"))e="\n";else{let n=null;for(const o of t.getChildren()){const t=Rg(o);n&&(n.is("containerElement")||o.is("containerElement"))&&(Og.includes(n.name)||Og.includes(o.name)?e+="\n":e+="\n\n"),e+=t,n=o}}return e}class jg extends F{static get pluginName(){return"ClipboardPipeline"}init(){this.editor.editing.view.addObserver(Lg),this._setupPasteDrop(),this._setupCopyCut()}_setupPasteDrop(){const t=this.editor,n=t.model,o=t.editing.view,i=o.document;this.listenTo(i,"clipboardInput",(e=>{t.isReadOnly&&e.stop()}),{priority:"highest"}),this.listenTo(i,"clipboardInput",((t,n)=>{const i=n.dataTransfer;let r;if(n.content)r=n.content;else{let t="";i.getData("text/html")?t=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e)).replace(//g,"")}(i.getData("text/html")):i.getData("text/plain")&&(((s=(s=i.getData("text/plain")).replace(//g,">").replace(/\r?\n\r?\n/g,"
").replace(/\r?\n/g,"
").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ")).includes("
")||s.includes("
"))&&(s=`
${s}
`),t=s),r=this.editor.data.htmlProcessor.toView(t)}var s;const a=new e(this,"inputTransformation");this.fire(a,{content:r,dataTransfer:i,targetRanges:n.targetRanges,method:n.method}),a.stop.called&&t.stop(),o.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,e)=>{if(e.content.isEmpty)return;const o=this.editor.data.toModel(e.content,"$clipboardHolder");0!=o.childCount&&(t.stop(),n.change((()=>{this.fire("contentInsertion",{content:o,method:e.method,dataTransfer:e.dataTransfer,targetRanges:e.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,e)=>{e.resultRange=n.insertContent(e.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document,o=(o,i)=>{const r=i.dataTransfer;i.preventDefault();const s=t.data.toView(t.model.getSelectedContent(e.selection));n.fire("clipboardOutput",{dataTransfer:r,content:s,method:o.name})};this.listenTo(n,"copy",o,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.isReadOnly?n.preventDefault():o(e,n)}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,o)=>{o.content.isEmpty||(o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content)),o.dataTransfer.setData("text/plain",Rg(o.content))),"cut"==o.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}function*Fg(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class Vg extends U{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n,o){const i=n.isCollapsed,r=n.getFirstRange(),s=r.start.parent,a=r.end.parent;if(o.isLimit(s)||o.isLimit(a))return void(i||s!=a||t.deleteContent(n));if(i){const t=Fg(e.model.schema,n.getAttributes());Ug(e,r.start),e.setSelectionAttribute(t)}else{const o=!(r.start.isAtStart&&r.end.isAtEnd),i=s==a;t.deleteContent(n,{leaveUnmerged:o}),o&&(i?Ug(e,n.focus):e.setSelection(a,0))}}(this.editor.model,n,e.selection,t.schema),this.fire("afterExecute",{writer:n})}))}}function Ug(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}const Hg={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class Wg extends ys{constructor(t){super(t);const e=this.document;e.on("beforeinput",((n,o)=>{if(!this.isEnabled)return;const i=o.domEvent,r=Hg[o.inputType];if(!r)return;const s=new Yi(e,"enter",o.targetRanges[0]);e.fire(s,new Es(t,i,{isSoft:r.isSoft})),s.stop.called&&n.stop()}))}observe(){}}class Gg extends F{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document;e.addObserver(Wg),t.commands.add("enter",new Vg(t)),this.listenTo(n,"enter",((o,i)=>{n.isComposing||i.preventDefault(),i.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"})}}class qg{constructor(t,e=20){this._batch=null,this.model=t,this._size=0,this.limit=e,this._isLocked=!1,this._changeCallback=(t,e)=>{e.isLocal&&e.isUndoable&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(t){this._size+=t,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t=!1){this.isLocked&&!t||(this._batch=null,this._size=0)}}class Yg extends U{constructor(t,e){super(t),this.direction=e,this._buffer=new qg(t.model,t.config.get("typing.undoStep"))}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(o=>{this._buffer.lock();const i=o.createSelection(t.selection||n.selection),r=t.sequence||1,s=i.isCollapsed;if(i.isCollapsed&&e.modifySelection(i,{direction:this.direction,unit:t.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(r))return void this._replaceEntireContentWithParagraph(o);if(this._shouldReplaceFirstBlockWithParagraph(i,r))return void this.editor.execute("paragraph",{selection:i});if(i.isCollapsed)return;let a=0;i.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=Wi(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(i,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),o.setSelection(i),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n);if(!(n.isCollapsed&&n.containsEntireContent(o)))return!1;if(!e.schema.checkChild(o,"paragraph"))return!1;const i=o.getChild(0);return!i||!i.is("element","paragraph")}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n),i=t.createElement("paragraph");t.remove(t.createRangeIn(o)),t.insert(i,o),t.setSelection(i,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const o=t.getFirstPosition(),i=n.schema.getLimitElement(o),r=i.getChild(0);return o.parent==r&&(!!t.containsEntireContent(r)&&(!!n.schema.checkChild(i,"paragraph")&&"paragraph"!=r.name))}}const $g="word",Kg="selection",Qg="backward",Zg="forward",Jg={deleteContent:{unit:Kg,direction:Qg},deleteContentBackward:{unit:"codePoint",direction:Qg},deleteWordBackward:{unit:$g,direction:Qg},deleteHardLineBackward:{unit:Kg,direction:Qg},deleteSoftLineBackward:{unit:Kg,direction:Qg},deleteContentForward:{unit:"character",direction:Zg},deleteWordForward:{unit:$g,direction:Zg},deleteHardLineForward:{unit:Kg,direction:Zg},deleteSoftLineForward:{unit:Kg,direction:Zg}};class Xg extends ys{constructor(t){super(t);const e=t.document;let n=0;e.on("keydown",(()=>{n++})),e.on("keyup",(()=>{n=0})),e.on("beforeinput",((o,i)=>{if(!this.isEnabled)return;const{targetRanges:r,domEvent:s,inputType:a}=i,c=Jg[a];if(!c)return;const l={direction:c.direction,unit:c.unit,sequence:n};l.unit==Kg&&(l.selectionToRemove=t.createSelection(r[0])),cr.isAndroid&&"deleteContentBackward"===a&&(l.sequence=1,1!=r.length||r[0].start.parent==r[0].end.parent&&r[0].start.offset+1==r[0].end.offset||(l.unit=Kg,l.selectionToRemove=t.createSelection(r)));const d=new Yi(e,"delete",r[0]);e.fire(d,new Es(t,s,l)),d.stop.called&&o.stop()})),cr.isBlink&&function(t){const e=t.view,n=e.document;let o=null,i=!1;function r(t){return t==ur.backspace||t==ur.delete}function s(t){return t==ur.backspace?Qg:Zg}n.on("keydown",((t,{keyCode:e})=>{o=e,i=!1})),n.on("keyup",((a,{keyCode:c,domEvent:l})=>{const d=n.selection,h=t.isEnabled&&c==o&&r(c)&&!d.isCollapsed&&!i;if(o=null,h){const t=d.getFirstRange(),o=new Yi(n,"delete",t),i={unit:Kg,direction:s(c),selectionToRemove:d};n.fire(o,new Es(e,l,i))}})),n.on("beforeinput",((t,{inputType:e})=>{const n=Jg[e];r(o)&&n&&n.direction==s(o)&&(i=!0)})),n.on("beforeinput",((t,{inputType:e,data:n})=>{o==ur.delete&&"insertText"==e&&""==n&&t.stop()}),{priority:"high"})}(this)}observe(){}}class tm extends F{static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.model.document;e.addObserver(Xg),this._undoOnBackspace=!1;const i=new Yg(t,"forward");t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Yg(t,"backward")),this.listenTo(n,"delete",((o,i)=>{n.isComposing||i.preventDefault();const{direction:r,sequence:s,selectionToRemove:a,unit:c}=i,l="forward"===r?"deleteForward":"delete",d={sequence:s};if("selection"==c){const e=Array.from(a.getRanges()).map((e=>t.editing.mapper.toModelRange(e)));d.selection=t.model.createSelection(e)}else d.unit=c;t.execute(l,d),e.scrollToTheSelection()}),{priority:"low"}),this.editor.plugins.has("UndoEditing")&&(this.listenTo(n,"delete",((e,n)=>{this._undoOnBackspace&&"backward"==n.direction&&1==n.sequence&&"codePoint"==n.unit&&(this._undoOnBackspace=!1,t.execute("undo"),n.preventDefault(),e.stop())}),{context:"$capture"}),this.listenTo(o,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class em extends w{constructor(){super(),this._stack=[]}add(t,e){const n=this._stack,o=n[0];this._insertDescriptor(t);const i=n[0];o===i||nm(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,o=n[0];this._removeDescriptor(t);const i=n[0];o===i||nm(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(nm(t,e[n]))return;n>-1&&e.splice(n,1);let o=0;for(;e[o]&&om(e[o],t);)o++;e.splice(o,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function nm(t,e){return t&&e&&t.priority==e.priority&&im(t.classes)==im(e.classes)}function om(t,e){return t.priority>e.priority||!(t.priorityim(e.classes)}function im(t){return Array.isArray(t)?t.sort().join(","):t}const rm='',sm="ck-widget_selected";function am(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function cm(t,e,n={}){if(!t.is("containerElement"))throw new c("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass("ck-widget",t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=pm,n.label&&function(t,e,n){n.setCustomProperty("widgetLabel",e,t)}(t,n.label,e),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new su;return n.set("content",rm),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),hm(t,e),t}function lm(t,e,n){if(e.classes&&n.addClass(bo(e.classes),t),e.attributes)for(const o in e.attributes)n.setAttribute(o,e.attributes[o],t)}function dm(t,e,n){if(e.classes&&n.removeClass(bo(e.classes),t),e.attributes)for(const o in e.attributes)n.removeAttribute(o,t)}function hm(t,e,n=lm,o=dm){const i=new em;i.on("change:top",((e,i)=>{i.oldDescriptor&&o(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)}));e.setCustomProperty("addHighlight",((t,e,n)=>i.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>i.remove(e,n)),t)}function um(t){const e=t.getCustomProperty("widgetLabel");return e?"function"==typeof e?e():e:""}function gm(t,e,n={}){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("role","textbox",t),n.label&&e.setAttribute("aria-label",n.label,t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,o,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",((n,o,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),hm(t,e),t}function mm(t,e){const n=t.getSelectedElement();if(n){const o=bm(t);if(o)return e.createRange(e.createPositionAt(n,o))}return $d(t,e)}function pm(){return null}const fm="widget-type-around";function km(t,e,n){return!!t&&am(t)&&!n.isInline(e)}function bm(t){return t.getAttribute(fm)}var wm=n(4921),Am={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(wm.Z,Am);wm.Z.locals;const _m=["before","after"],Cm=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,vm="ck-widget__type-around_disabled";class ym extends F{constructor(t){super(t),this._currentFakeCaretModelElement=null}static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Gg,tm]}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots)i?t.removeClass(vm,n):t.addClass(vm,n)})),i||t.model.change((t=>{t.removeSelectionAttribute(fm)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,o=n.editing.view,i=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",!0);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:i}),o.focus(),o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=bm(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,n,i)=>{const r=i.mapper.toViewElement(n.item);km(r,n.item,e)&&function(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of _m){const o=new sh({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n]},children:[t.ownerDocument.importNode(Cm,!0)]});t.appendChild(o.render())}}(n,e),function(t){const e=new sh({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),o)}(i.writer,o,r)}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,o=e.schema,i=t.editing.view;function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}this._listenToIfEnabled(i.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[am,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute(fm)}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){if(km(t.editing.mapper.toViewElement(e),e,o))return}t.model.change((t=>{t.removeSelectionAttribute(fm)}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(i.removeClass(_m.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!km(a,s,o))return;const c=bm(e.selection);c&&(i.addClass(r(c),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{o||t.model.change((t=>{t.removeSelectionAttribute(fm)}))}))}_handleArrowKeyPress(t,e){const n=this.editor,o=n.model,i=o.document.selection,r=o.schema,s=n.editing.view,a=function(t,e){const n=kr(t,e);return"down"===n||"right"===n}(e.keyCode,n.locale.contentLanguageDirection),c=s.document.selection.getSelectedElement();let l;km(c,n.editing.mapper.toModelElement(c),r)?l=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?l=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):e.shiftKey||(l=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),l&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=bm(e.document.selection);return e.change((e=>{if(!n)return e.setSelectionAttribute(fm,t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute(fm),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,o=n.schema,i=e.plugins.get("Widget"),r=i._getObjectElementNextToSelection(t);return!!km(e.editing.mapper.toViewElement(r),r,o)&&(n.change((e=>{i._setSelectionOverElement(r),e.setSelectionAttribute(fm,t?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor,n=e.model,o=n.schema,i=e.editing.mapper,r=n.document.selection,s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!km(i.toViewElement(s),s,o)&&(n.change((e=>{e.setSelection(s,"on"),e.setSelectionAttribute(fm,t?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=o.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(i,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),o.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,o)=>{if("atTarget"!=n.eventPhase)return;const i=e.getSelectedElement(),r=t.editing.mapper.toViewElement(i),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:km(r,i,s)&&(this._insertParagraph(i,o.isSoft?"before":"after"),a=!0),a&&(o.preventDefault(),n.stop())}),{context:am})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view.document;this._listenToIfEnabled(t,"insertText",((e,n)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(n.selection=t.selection)}),{priority:"high"}),cr.isAndroid?this._listenToIfEnabled(t,"keydown",((t,e)=>{229==e.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(t,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{if("atTarget"!=e.eventPhase)return;const r=bm(n.document.selection);if(!r)return;const s=i.direction,a=n.document.selection.getSelectedElement(),c="forward"==s;if("before"===r===c)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const i=n.createSelection(e.start);if(n.modifySelection(i,{direction:s}),i.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const o of e.getAncestors({parentFirst:!0})){if(o.childCount>1||t.isLimit(o))break;n=o}return n}(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(c?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(c?"deleteForward":"delete")}))}i.preventDefault(),e.stop()}),{context:am})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection"))return;const r=bm(n);return r?(t.stop(),e.change((t=>{const i=n.getSelectedElement(),s=e.createPositionAt(i,r),a=t.createSelection(s),c=e.insertContent(o,a);return t.setSelection(a),c}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,n)=>{const[,o,,i={}]=n;if(o&&!o.is("documentSelection"))return;const r=bm(e);r&&(i.findOptimalPosition=r,n[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{if(n&&!n.is("documentSelection"))return;bm(e)&&t.stop()}),{priority:"high"})}}function xm(t){const e=t.model;return(n,o)=>{const i=o.keyCode==ur.arrowup,r=o.keyCode==ur.arrowdown,s=o.shiftKey,a=e.document.selection;if(!i&&!r)return;const c=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,c))return;const l=function(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=Em(o,t,"forward");if(!n)return null;const i=o.createRange(t,n),r=Dm(o.schema,i,"backward");return r?o.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=Em(o,t,"backward");if(!n)return null;const i=o.createRange(n,t),r=Dm(o.schema,i,"forward");return r?o.createRange(r,t):null}}(t,a,c);if(l){if(l.isCollapsed){if(a.isCollapsed)return;if(s)return}(l.isCollapsed||function(t,e,n){const o=t.model,i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=o.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=i.viewRangeToDom(r),a=Ma.getDomRangeRects(s);let c;for(const t of a)if(void 0!==c){if(Math.round(t.top)>=c)return!1;c=Math.max(c,Math.round(t.bottom))}else c=Math.round(t.bottom);return!0}(t,l,c))&&(e.change((t=>{const n=c?l.end:l.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n),t.setSelection(o)}else t.setSelection(n)})),n.stop(),o.preventDefault(),o.stopPropagation())}}}function Em(t,e,n){const o=t.schema,i=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s))return t;if(a==r&&o.isBlock(s))return null}return null}function Dm(t,e,n){const o="backward"==n?e.end:e.start;if(t.checkChild(o,"$text"))return o;for(const{nextPosition:o}of e.getWalker({direction:n}))if(t.checkChild(o,"$text"))return o;return null}var Im=n(3488),Tm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Im.Z,Tm);Im.Z.locals;class Mm extends F{static get pluginName(){return"Widget"}static get requires(){return[ym,tm]}init(){const t=this.editor,e=t.editing.view,n=e.document;this._previouslySelected=new Set,this.editor.editing.downcastDispatcher.on("selection",((e,n,o)=>{const i=o.writer,r=n.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);am(a)&&o.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:um(a)})})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer,i=o.document.selection;let r=null;for(const t of i.getRanges())for(const e of t){const t=e.item;am(t)&&!Sm(t,r)&&(o.addClass(sm,t),this._previouslySelected.add(t),r=t)}}),{priority:"low"}),e.addObserver(Gd),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[am,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",xm(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"})}_onMousedown(t,e){const n=this.editor,o=n.editing.view,i=o.document;let r=e.target;if(function(t){let e=t;for(;e;){if(e.is("editableElement")&&!e.is("rootElement"))return!0;if(am(e))return!1;e=e.parent}return!1}(r)){if((cr.isSafari||cr.isGecko)&&e.domEvent.detail>=3){const t=n.editing.mapper,o=r.is("attributeElement")?r.findAncestor((t=>!t.is("attributeElement"))):r,i=t.toModelElement(o);e.preventDefault(),this.editor.model.change((t=>{t.setSelection(i,"in")}))}return}if(!am(r)&&(r=r.findAncestor(am),!r))return;cr.isAndroid&&e.preventDefault(),i.isFocused||o.focus();const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,o=this.editor.model,i=o.schema,r=o.document.selection,s=r.getSelectedElement(),a=kr(n,this.editor.locale.contentLanguageDirection),c="down"==a||"right"==a,l="up"==a||"down"==a;if(s&&i.isObject(s)){const n=c?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(n,c?"forward":"backward");return void(s&&(o.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition(),s=r.getLastPosition(),a=n.nodeAfter,l=s.nodeBefore;return void((a&&i.isObject(a)||l&&i.isObject(l))&&(o.change((t=>{t.setSelection(c?s:n)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(c);if(d&&i.isObject(d)){if(i.isInline(d)&&l)return;this._setSelectionOverElement(d),e.preventDefault(),t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,o=n.schema,i=n.document.selection.getSelectedElement();i&&o.isObject(i)&&(e.preventDefault(),t.stop())}_handleDelete(t){if(this.editor.isReadOnly)return;const e=this.editor.model.document.selection;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let o=e.anchor.parent;for(;o.isEmpty;){const e=o;o=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,o=e.document.selection,i=e.createSelection(o);if(e.modifySelection(i,{direction:t?"forward":"backward"}),i.isEqual(o))return null;const r=t?i.focus.nodeBefore:i.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(sm,e);this._previouslySelected.clear()}}function Sm(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}const Nm=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return D(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),Vs(t,e,{leading:o,maxWait:e,trailing:i})};var Bm=n(903),Pm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Bm.Z,Pm);Bm.Z.locals;class zm extends F{static get pluginName(){return"DragDrop"}static get requires(){return[jg,Mm]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,this._updateDropMarkerThrottled=Nm((t=>this._updateDropMarker(t)),40),this._removeDropMarkerDelayed=Rm((()=>this._removeDropMarker()),40),this._clearDraggableAttributesDelayed=Rm((()=>this._clearDraggableAttributes()),40),e.addObserver(Lg),e.addObserver(Gd),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDropMarker(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),cr.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._updateDropMarkerThrottled.cancel(),this._removeDropMarkerDelayed.cancel(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=e.document,o=t.editing.view,i=o.document;this.listenTo(i,"dragstart",((o,s)=>{const a=n.selection;if(s.target&&s.target.is("editableElement"))return void s.preventDefault();const c=s.target?jm(s.target):null;if(c){const n=t.editing.mapper.toModelElement(c);this._draggedRange=fc.fromRange(e.createRangeOn(n)),t.plugins.has("WidgetToolbarRepository")&&t.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}else if(!i.selection.isCollapsed){const t=i.selection.getSelectedElement();t&&am(t)||(this._draggedRange=fc.fromRange(a.getFirstRange()))}if(!this._draggedRange)return void s.preventDefault();this._draggingUid=r(),s.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",s.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const l=e.createSelection(this._draggedRange.toRange()),d=t.data.toView(e.getSelectedContent(l));i.fire("clipboardOutput",{dataTransfer:s.dataTransfer,content:d,method:"dragstart"}),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(i,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this.listenTo(i,"dragenter",(()=>{this.isEnabled&&o.focus()})),this.listenTo(i,"dragleave",(()=>{this._removeDropMarkerDelayed()})),this.listenTo(i,"dragging",((e,n)=>{if(!this.isEnabled)return void(n.dataTransfer.dropEffect="none");this._removeDropMarkerDelayed.cancel();const o=Lm(t,n.targetRanges,n.target);this._draggedRange||(n.dataTransfer.dropEffect="copy"),cr.isGecko||("copy"==n.dataTransfer.effectAllowed?n.dataTransfer.dropEffect="copy":["all","copyMove"].includes(n.dataTransfer.effectAllowed)&&(n.dataTransfer.dropEffect="move")),o&&this._updateDropMarkerThrottled(o)}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"clipboardInput",((e,n)=>{if("drop"!=n.method)return;const o=Lm(t,n.targetRanges,n.target);if(this._removeDropMarker(),!o)return this._finalizeDragging(!1),void e.stop();this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==Om(n.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(o,!0))return this._finalizeDragging(!1),void e.stop();n.targetRanges=[t.editing.mapper.toViewRange(o)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(jg);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==Om(e.dataTransfer),o=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(o&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((o,i)=>{if(cr.isAndroid||!i)return;this._clearDraggableAttributesDelayed.cancel();let r=jm(i.target);if(cr.isBlink&&!t.isReadOnly&&!r&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&am(t)||(r=n.selection.editableElement)}r&&(e.change((t=>{t.setAttribute("draggable","true",r)})),this._draggableElement=t.editing.mapper.toModelElement(r))})),this.listenTo(n,"mouseup",(()=>{cr.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_setupDropMarker(){const t=this.editor;t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return n.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.append("",t.createElement("span"),""),e}))}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_removeDropMarker(){const t=this.editor.model;this._removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_finalizeDragging(t){const e=this.editor,n=e.model;this._removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")&&e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop"),this._draggingUid="",this._draggedRange&&(t&&this.isEnabled&&n.deleteContent(n.createSelection(this._draggedRange),{doNotAutoparagraph:!0}),this._draggedRange.detach(),this._draggedRange=null)}}function Lm(t,e,n){const o=t.model,i=t.editing.mapper;let r=null;const s=e?e[0].start:null;if(n.is("uiElement")&&(n=n.parent),r=function(t,e){const n=t.model,o=t.editing.mapper;if(am(e))return n.createRangeOn(o.toModelElement(e));if(!e.is("editableElement")){const t=e.findAncestor((t=>am(t)||t.is("editableElement")));if(am(t))return n.createRangeOn(o.toModelElement(t))}return null}(t,n),r)return r;const a=function(t,e){const n=t.editing.mapper,o=t.editing.view,i=n.toModelElement(e);if(i)return i;const r=o.createPositionBefore(e),s=n.findMappedViewAncestor(r);return n.toModelElement(s)}(t,n),c=s?i.toModelPosition(s):null;return c?(r=function(t,e,n){const o=t.model;if(!o.schema.checkChild(n,"$block"))return null;const i=o.createPositionAt(n,0),r=e.path.slice(0,i.path.length),s=o.createPositionFromPath(e.root,r).nodeAfter;if(s&&o.schema.isObject(s))return o.createRangeOn(s);return null}(t,c,a),r||(r=o.schema.getNearestSelectionRange(c,cr.isGecko?"forward":"backward"),r||function(t,e){const n=t.model;let o=e;for(;o;){if(n.schema.isObject(o))return n.createRangeOn(o);o=o.parent}return null}(t,c.parent))):function(t,e){const n=t.model,o=n.schema,i=n.createPositionAt(e,0);return o.getNearestSelectionRange(i,"forward")}(t,a)}function Om(t){return cr.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function Rm(t,e){let n;function o(...i){o.cancel(),n=setTimeout((()=>t(...i)),e)}return o.cancel=()=>{clearTimeout(n)},o}function jm(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(am);if(am(t))return t;const e=t.findAncestor((t=>am(t)||t.is("editableElement")));return am(e)?e:null}class Fm extends F{static get pluginName(){return"PastePlainText"}static get requires(){return[jg]}init(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=e.document.selection;let r=!1;n.addObserver(Lg),this.listenTo(o,"keydown",((t,e)=>{r=e.shiftKey})),t.plugins.get(jg).on("contentInsertion",((t,n)=>{(r||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==Array.from(n.getAttributeKeys()).length}(n.content,e.schema))&&e.change((t=>{const o=Array.from(i.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0}),o.push(...i.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems())e.is("$textProxy")&&t.setAttributes(o,e)}))}))}}class Vm extends F{static get pluginName(){return"Clipboard"}static get requires(){return[jg,zm,Fm]}}class Um extends U{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const o=n.isCollapsed,i=n.getFirstRange(),r=i.start.parent,s=i.end.parent,a=r==s;if(o){const o=Fg(t.schema,n.getAttributes());Hm(t,e,i.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(o)}else{const o=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:o}),a?Hm(t,e,n.focus):o&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const o=e.getFirstRange(),i=o.start.parent,r=o.end.parent;if((Wm(i,t)||Wm(r,t))&&i!==r)return!1;return!0}(t.schema,e.selection)}}function Hm(t,e,n){const o=e.createElement("softBreak");t.insertContent(o,n),e.setSelection(o,"after")}function Wm(t,e){return!t.is("rootElement")&&(e.isLimit(t)||Wm(t.parent,e))}class Gm extends F{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,o=t.editing.view,i=o.document;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),o.addObserver(Wg),t.commands.add("shiftEnter",new Um(t)),this.listenTo(i,"enter",((e,n)=>{i.isComposing||n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),o.scrollToTheSelection())}),{priority:"low"})}}class qm extends U{constructor(t){super(t),this.affectsData=!1}execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!Ym(t.schema,n))do{if(n=n.parent,!n)return}while(!Ym(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function Ym(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const $m=pr("Ctrl+A");class Km extends F{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.editing.view.document;t.commands.add("selectAll",new qm(t)),this.listenTo(e,"keydown",((e,n)=>{mr(n)===$m&&(t.execute("selectAll"),n.preventDefault())}))}}class Qm extends F{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll"),o=new lu(e),i=e.t;return o.set({label:i("Select all"),icon:'',keystroke:"Ctrl+A",tooltip:!0}),o.bind("isEnabled").to(n,"isEnabled"),this.listenTo(o,"execute",(()=>{t.execute("selectAll"),t.editing.view.focus()})),o}))}}class Zm extends F{static get requires(){return[Km,Qm]}static get pluginName(){return"SelectAll"}}class Jm extends U{constructor(t,e){super(t),this._buffer=new qg(t.model,e)}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,o=t.text||"",i=o.length;let r=n.selection;t.selection?r=t.selection:t.range&&(r=e.createSelection(t.range));const s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock(),e.deleteContent(r),o&&e.insertContent(t.createText(o,n.selection.getAttributes()),r),s?t.setSelection(s):r.is("documentSelection")||t.setSelection(r),this._buffer.unlock(),this._buffer.input(i)}))}}const Xm=["insertText","insertReplacementText"];class tp extends ys{constructor(t){super(t),cr.isAndroid&&Xm.push("insertCompositionText");const n=t.document;n.on("beforeinput",((o,i)=>{if(!this.isEnabled)return;const{data:r,targetRanges:s,inputType:a,domEvent:c}=i;if(!Xm.includes(a))return;const l=new e(n,"insertText");n.fire(l,new Es(t,c,{text:r,selection:t.createSelection(s)})),l.stop.called&&o.stop()})),n.on("compositionend",((e,{data:o,domEvent:i})=>{this.isEnabled&&!cr.isAndroid&&o&&n.fire("insertText",new Es(t,i,{text:o,selection:n.selection}))}),{priority:"lowest"})}observe(){}}class ep extends F{static get pluginName(){return"Input"}init(){const t=this.editor,e=t.model,n=t.editing.view,o=e.document.selection;n.addObserver(tp);const i=new Jm(t,t.config.get("typing.undoStep")||20);t.commands.add("insertText",i),t.commands.add("input",i),this.listenTo(n.document,"insertText",((o,i)=>{n.document.isComposing||i.preventDefault();const{text:r,selection:s,resultRange:a}=i,c=Array.from(s.getRanges()).map((e=>t.editing.mapper.toModelRange(e)));let l=r;if(cr.isAndroid){const t=Array.from(c[0].getItems()).reduce(((t,e)=>t+(e.is("$textProxy")?e.data:"")),"");t&&(t.length<=l.length?l.startsWith(t)&&(l=l.substring(t.length),c[0].start=c[0].start.getShiftedBy(t.length)):t.startsWith(l)&&(c[0].start=c[0].start.getShiftedBy(l.length),l=""))}const d={text:l,selection:e.createSelection(c)};a&&(d.resultRange=t.editing.mapper.toModelRange(a)),t.execute("insertText",d)})),cr.isAndroid?this.listenTo(n.document,"keydown",((t,r)=>{!o.isCollapsed&&229==r.keyCode&&n.document.isComposing&&np(e,i)})):this.listenTo(n.document,"compositionstart",(()=>{o.isCollapsed||np(e,i)}))}}function np(t,e){if(!e.isEnabled)return;const n=e.buffer;n.lock(),t.enqueueChange(n.batch,(()=>{t.deleteContent(t.document.selection)})),n.unlock()}class op extends F{static get requires(){return[ep,tm]}static get pluginName(){return"Typing"}}function ip(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,o)=>o.is("$text")||o.is("$textProxy")?t+o.data:(n=e.createPositionAfter(o),"")),""),range:e.createRange(n,t.end)}}class rp extends P{constructor(t,e){super(),this.model=t,this.testCallback=e,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{!e.isUndo&&e.isLocal&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,o=n.document.selection,i=n.createRange(n.createPositionAt(o.focus.parent,0),o.focus),{text:r,range:s}=ip(i,n),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const n=Object.assign(e,{text:r,range:s});"object"==typeof a&&Object.assign(n,a),this.fire(`matched:${t}`,n)}}}class sp extends F{constructor(t){super(t),this.attributes=new Set,this._overrideUid=null}static get pluginName(){return"TwoStepCaretMovement"}init(){const t=this.editor,e=t.model,n=t.editing.view,o=t.locale,i=e.document.selection;this.listenTo(n.document,"arrowKey",((t,e)=>{if(!i.isCollapsed)return;if(e.shiftKey||e.altKey||e.ctrlKey)return;const n=e.keyCode==ur.arrowright,r=e.keyCode==ur.arrowleft;if(!n&&!r)return;const s=o.contentLanguageDirection;let a=!1;a="ltr"===s&&n||"rtl"===s&&r?this._handleForwardMovement(e):this._handleBackwardMovement(e),!0===a&&t.stop()}),{context:"$text",priority:"highest"}),this._isNextGravityRestorationSkipped=!1,this.listenTo(i,"change:range",((t,e)=>{this._isNextGravityRestorationSkipped?this._isNextGravityRestorationSkipped=!1:this._isGravityOverridden&&(!e.directChange&&dp(i.getFirstPosition(),this.attributes)||this._restoreGravity())}))}registerAttribute(t){this.attributes.add(t)}_handleForwardMovement(t){const e=this.attributes,n=this.editor.model.document.selection,o=n.getFirstPosition();return!this._isGravityOverridden&&((!o.isAtStart||!ap(n,e))&&(!!dp(o,e)&&(lp(t),this._overrideGravity(),!0)))}_handleBackwardMovement(t){const e=this.attributes,n=this.editor.model,o=n.document.selection,i=o.getFirstPosition();return this._isGravityOverridden?(lp(t),this._restoreGravity(),cp(n,e,i),!0):i.isAtStart?!!ap(o,e)&&(lp(t),cp(n,e,i),!0):!!function(t,e){return dp(t.getShiftedBy(-1),e)}(i,e)&&(i.isAtEnd&&!ap(o,e)&&dp(i,e)?(lp(t),cp(n,e,i),!0):(this._isNextGravityRestorationSkipped=!0,this._overrideGravity(),!1))}get _isGravityOverridden(){return!!this._overrideUid}_overrideGravity(){this._overrideUid=this.editor.model.change((t=>t.overrideSelectionGravity()))}_restoreGravity(){this.editor.model.change((t=>{t.restoreSelectionGravity(this._overrideUid),this._overrideUid=null}))}}function ap(t,e){for(const n of e)if(t.hasAttribute(n))return!0;return!1}function cp(t,e,n){const o=n.nodeBefore;t.change((t=>{o?t.setSelectionAttribute(o.getAttributes()):t.removeSelectionAttribute(e)}))}function lp(t){t.preventDefault()}function dp(t,e){const{nodeBefore:n,nodeAfter:o}=t;for(const t of e){const e=n?n.getAttribute(t):void 0;if((o?o.getAttribute(t):void 0)!==e)return!0}return!1}var hp=/[\\^$.*+?()[\]{}|]/g,up=RegExp(hp.source);const gp=function(t){return(t=Zo(t))&&up.test(t)?t.replace(hp,"\\$&"):t},mp={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:/(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i,to:[null,"½",null]},oneThird:{from:/(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i,to:[null,"⅓",null]},twoThirds:{from:/(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i,to:[null,"⅔",null]},oneForth:{from:/(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i,to:[null,"¼",null]},threeQuarters:{from:/(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i,to:[null,"¾",null]},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:Ap('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:Ap("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:Ap("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:Ap('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:Ap('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:Ap("'"),to:[null,"‚",null,"’"]}},pp={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},fp=["symbols","mathematical","typography","quotes"];function kp(t){return"string"==typeof t?new RegExp(`(${gp(t)})$`):t}function bp(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function wp(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function Ap(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function _p(t,e,n,o){return o.createRange(Cp(t,e,n,!0,o),Cp(t,e,n,!1,o))}function Cp(t,e,n,o,i){let r=t.textNode||(o?t.nodeBefore:t.nodeAfter),s=null;for(;r&&r.getAttribute(e)==n;)s=r,r=o?r.previousSibling:r.nextSibling;return s?i.createPositionAt(s,o?"before":"after"):t}class vp extends U{constructor(t){super(t),this._stack=[],this._createdBatches=new WeakSet,this.refresh(),this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{e[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model,i=o.document,r=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=i.graveyard)).filter((t=>!xp(t,a)));e.length&&(yp(e),r.push(e[0]))}r.length&&o.change((t=>{t.setSelection(r,{backward:e})}))}_undo(t,e){const n=this.editor.model,o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1,r=Array.from(o.history.getOperations(i)),s=Od([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(const i of s)e.addOperation(i),n.applyOperation(i),o.history.setOperationAsUndone(t,i)}}}function yp(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class Ep extends vp{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],o=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t),this.fire("revert",n.batch,o)})),this.refresh()}}class Dp extends vp{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,o=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o),this._undo(t.batch,e)})),this.refresh()}}class Ip extends F{constructor(t){super(t),this._batchRegistry=new WeakSet}static get pluginName(){return"UndoEditing"}init(){const t=this.editor;this._undoCommand=new Ep(t),this._redoCommand=new Dp(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const o=n.batch,i=this._redoCommand._createdBatches.has(o),r=this._undoCommand._createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(i?this._undoCommand.addBatch(o):r||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo")}}const Tp='',Mp='';class Sp extends F{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Tp:Mp,i="ltr"==e.uiLanguageDirection?Mp:Tp;this._addButton("undo",n("Undo"),"CTRL+Z",o),this._addButton("redo",n("Redo"),"CTRL+Y",i)}_addButton(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(r=>{const s=i.commands.get(t),a=new lu(r);return a.set({label:e,icon:o,keystroke:n,tooltip:!0}),a.bind("isEnabled").to(s,"isEnabled"),this.listenTo(a,"execute",(()=>{i.execute(t),i.editing.view.focus()})),a}))}}class Np extends F{static get requires(){return[Ip,Sp]}static get pluginName(){return"Undo"}}class Bp extends P{constructor(){super();const t=new window.FileReader;this._reader=t,this._data=void 0,this.set("loaded",0),t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;return this.total=t.size,new Promise(((n,o)=>{e.onload=()=>{const t=e.result;this._data=t,n(t)},e.onerror=()=>{o("error")},e.onabort=()=>{o("aborted")},this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}class Pp extends F{static get pluginName(){return"FileRepository"}static get requires(){return[Zh]}init(){this.loaders=new fo,this.loaders.on("change",(()=>this._updatePendingAction())),this._loadersMap=new Map,this._pendingAction=null,this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter)return l("filerepository-no-upload-adapter"),null;const e=new zp(Promise.resolve(t),this.createUploadAdapter);return this.loaders.add(e),this._loadersMap.set(t,e),t instanceof Promise&&e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{})),e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders)t+=e.uploaded;this.uploaded=t})),e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders)e.uploadTotal&&(t+=e.uploadTotal);this.uploadTotal=t})),e}destroyLoader(t){const e=t instanceof zp?t:this.getLoader(t);e._destroy(),this.loaders.remove(e),this._loadersMap.forEach(((t,n)=>{t===e&&this._loadersMap.delete(n)}))}_updatePendingAction(){const t=this.editor.plugins.get(Zh);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t,n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent)),this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else t.remove(this._pendingAction),this._pendingAction=null}}class zp extends P{constructor(t,e){super(),this.id=r(),this._filePromiseWrapper=this._createFilePromiseWrapper(t),this._adapter=e(this),this._reader=new Bp,this.set("status","idle"),this.set("uploaded",0),this.set("uploadTotal",null),this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0)),this.set("uploadResponse",null)}get file(){return this._filePromiseWrapper?this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null)):Promise.resolve(null)}get data(){return this._reader.data}read(){if("idle"!=this.status)throw new c("filerepository-read-wrong-status",this);return this.status="reading",this.file.then((t=>this._reader.read(t))).then((t=>{if("reading"!==this.status)throw this.status;return this.status="idle",t})).catch((t=>{if("aborted"===t)throw this.status="aborted","aborted";throw this.status="error",this._reader.error?this._reader.error:t}))}upload(){if("idle"!=this.status)throw new c("filerepository-upload-wrong-status",this);return this.status="uploading",this.file.then((()=>this._adapter.upload())).then((t=>(this.uploadResponse=t,this.status="idle",t))).catch((t=>{if("aborted"===this.status)throw"aborted";throw this.status="error",t}))}abort(){const t=this.status;this.status="aborted",this._filePromiseWrapper.isFulfilled?"reading"==t?this._reader.abort():"uploading"==t&&this._adapter.abort&&this._adapter.abort():(this._filePromiseWrapper.promise.catch((()=>{})),this._filePromiseWrapper.rejecter("aborted")),this._destroy()}_destroy(){this._filePromiseWrapper=void 0,this._reader=void 0,this._adapter=void 0,this.uploadResponse=void 0}_createFilePromiseWrapper(t){const e={};return e.promise=new Promise(((n,o)=>{e.rejecter=o,e.isFulfilled=!1,t.then((t=>{e.isFulfilled=!0,n(t)})).catch((t=>{e.isFulfilled=!0,o(t)}))})),e}}class Lp extends Th{constructor(t){super(t),this.buttonView=new lu(t),this._fileInputView=new Op(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.setTemplate({tag:"span",attributes:{class:"ck-file-dialog-button"},children:[this.buttonView,this._fileInputView]}),this.buttonView.on("execute",(()=>{this._fileInputView.open()}))}focus(){this.buttonView.focus()}}class Op extends Th{constructor(t){super(t),this.set("acceptedType",void 0),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}const Rp="ckCsrfToken",jp="abcdefghijklmnopqrstuvwxyz0123456789";function Fp(){let t=function(t){t=t.toLowerCase();const e=document.cookie.split(";");for(const n of e){const e=n.split("=");if(decodeURIComponent(e[0].trim().toLowerCase())===t)return decodeURIComponent(e[1])}return null}(Rp);var e,n;return t&&40==t.length||(t=function(t){let e="";const n=new Uint8Array(t);window.crypto.getRandomValues(n);for(let t=0;t.5?o.toUpperCase():o}return e}(40),e=Rp,n=t,document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(n)+";path=/"),t}class Vp{constructor(t,e,n){this.loader=t,this.url=e,this.t=n}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest(),this._initListeners(e,n,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.url,!0),t.responseType="json"}_initListeners(t,e,n){const o=this.xhr,i=this.loader,r=(0,this.t)("Cannot upload file:")+` ${n.name}.`;o.addEventListener("error",(()=>e(r))),o.addEventListener("abort",(()=>e())),o.addEventListener("load",(()=>{const n=o.response;if(!n||!n.uploaded)return e(n&&n.error&&n.error.message?n.error.message:r);t({default:n.url})})),o.upload&&o.upload.addEventListener("progress",(t=>{t.lengthComputable&&(i.uploadTotal=t.total,i.uploaded=t.loaded)}))}_sendRequest(t){const e=new FormData;e.append("upload",t),e.append("ckCsrfToken",Fp()),this.xhr.send(e)}}function Up(t,e,n,o){let i,r=null;"function"==typeof o?i=o:(r=t.commands.get(o),i=()=>{t.execute(o)}),t.model.document.on("change:data",((s,a)=>{if(r&&!r.isEnabled||!e.isEnabled)return;const c=Ca(t.model.document.selection.getRanges());if(!c.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const l=Array.from(t.model.document.differ.getChanges()),d=l[0];if(1!=l.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const h=d.position.parent;if(h.is("element","codeBlock"))return;if(h.is("element","listItem")&&"function"!=typeof o&&!["numberedList","bulletedList","todoList"].includes(o))return;if(r&&!0===r.value)return;const u=h.getChild(0),g=t.model.createRangeOn(u);if(!g.containsRange(c)&&!c.end.isEqual(g.end))return;const m=n.exec(u.data.substr(0,c.end.offset));m&&t.model.enqueueChange((e=>{const n=e.createPositionAt(h,0),o=e.createPositionAt(h,m[0].length),r=new fc(n,o);if(!1!==i({match:m})){e.remove(r);const n=t.model.document.selection.getFirstRange(),o=e.createRangeIn(h);!h.isEmpty||o.isEqual(n)||o.containsRange(n,!0)||e.remove(h)}r.detach(),t.model.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function Hp(t,e,n,o){let i,r;n instanceof RegExp?i=n:r=n,r=r||(t=>{let e;const n=[],o=[];for(;null!==(e=i.exec(t))&&!(e&&e.length<4);){let{index:t,1:i,2:r,3:s}=e;const a=i+r+s;t+=e[0].length-a.length;const c=[t,t+i.length],l=[t+i.length+r.length,t+i.length+r.length+s.length];n.push(c),n.push(l),o.push([t+i.length,t+i.length+r.length])}return{remove:n,format:o}}),t.model.document.on("change:data",((n,i)=>{if(i.isUndo||!i.isLocal||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const c=Array.from(s.document.differ.getChanges()),l=c[0];if(1!=c.length||"insert"!==l.type||"$text"!=l.name||1!=l.length)return;const d=a.focus,h=d.parent,{text:u,range:g}=function(t,e){let n=t.start;return{text:Array.from(t.getItems()).reduce(((t,o)=>!o.is("$text")&&!o.is("$textProxy")||o.getAttribute("code")?(n=e.createPositionAfter(o),""):t+o.data),""),range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(h,0),d),s),m=r(u),p=Wp(g.start,m.format,s),f=Wp(g.start,m.remove,s);p.length&&f.length&&s.enqueueChange((e=>{if(!1!==o(e,p)){for(const t of f.reverse())e.remove(t);s.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function Wp(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function Gp(t,e){return(n,o)=>{if(!t.commands.get(e).isEnabled)return!1;const i=t.model.schema.getValidRanges(o,e);for(const t of i)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class qp extends U{constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}const Yp="bold";class $p extends F{static get pluginName(){return"BoldEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Yp}),t.model.schema.setAttributeProperties(Yp,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Yp,view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e?"bold"==e||Number(e)>=600?{name:!0,styles:["font-weight"]}:void 0:null}]}),t.commands.add(Yp,new qp(t,Yp)),t.keystrokes.set("CTRL+B",Yp)}}const Kp="bold";class Qp extends F{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Kp,(n=>{const o=t.commands.get(Kp),i=new lu(n);return i.set({label:e("Bold"),icon:Xh.bold,keystroke:"CTRL+B",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(Kp),t.editing.view.focus()})),i}))}}const Zp="italic";class Jp extends F{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:Zp}),t.model.schema.setAttributeProperties(Zp,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Zp,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Zp,new qp(t,Zp)),t.keystrokes.set("CTRL+I",Zp)}}const Xp="italic";class tf extends F{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add(Xp,(n=>{const o=t.commands.get(Xp),i=new lu(n);return i.set({label:e("Italic"),icon:'',keystroke:"CTRL+I",tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute(Xp),t.editing.view.focus()})),i}))}}class ef extends U{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,o=e.document.selection,i=Array.from(o.getSelectedBlocks()),r=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(r){const e=i.filter((t=>nf(t)||rf(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,i.filter(nf))}))}_getValue(){const t=Ca(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!nf(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Ca(t.getSelectedBlocks());return!!n&&rf(e,n)}_removeQuote(t,e){of(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];of(t,e).reverse().forEach((e=>{let o=nf(e.start);o||(o=t.createElement("blockQuote"),t.wrap(e,o)),n.push(o)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function nf(t){return"blockQuote"==t.parent.name?t.parent:null}function of(t,e){let n,o=0;const i=[];for(;o{const o=t.model.document.differ.getChanges();for(const t of o)if("insert"==t.type){const o=t.position.nodeAfter;if(!o)continue;if(o.is("element","blockQuote")&&o.isEmpty)return n.remove(o),!0;if(o.is("element","blockQuote")&&!e.checkChild(t.position,o))return n.unwrap(o),!0;if(o.is("element")){const t=n.createRangeIn(o);for(const o of t.getItems())if(o.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(o),o))return n.unwrap(o),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,o=t.model.document.selection,i=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{if(!o.isCollapsed||!i.value)return;o.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!o.isCollapsed||!i.value)return;const r=o.getLastPosition().parent;r.isEmpty&&!r.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}var af=n(3062),cf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(af.Z,cf);af.Z.locals;class lf extends F{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.t;t.ui.componentFactory.add("blockQuote",(n=>{const o=t.commands.get("blockQuote"),i=new lu(n);return i.set({label:e("Block quote"),icon:Xh.quote,tooltip:!0,isToggleable:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",(()=>{t.execute("blockQuote"),t.editing.view.focus()})),i}))}}class df extends F{static get pluginName(){return"CKBoxUI"}afterInit(){const t=this.editor;if(!t.commands.get("ckbox"))return;const e=t.t;t.ui.componentFactory.add("ckbox",(n=>{const o=t.commands.get("ckbox"),i=new lu(n);return i.set({label:e("Open file manager"),icon:'',tooltip:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),i.on("execute",(()=>{t.execute("ckbox")})),i}))}}function hf({token:t,id:e,origin:n,width:o,extension:i}){const r=uf(t),s=function(t){const e=[10*t/100,80],n=Math.floor(Math.max(...e)),o=[Math.min(t,4e3)];let i=o[0];for(;i-n>=n;)i-=n,o.unshift(i);return o}(o),a=function(t){if("bmp"===t||"tiff"===t||"jpg"===t)return"jpeg";return t}(i);return{imageFallbackUrl:gf({environmentId:r,id:e,origin:n,width:o,extension:a}),imageSources:[{srcset:s.map((t=>`${gf({environmentId:r,id:e,origin:n,width:t,extension:"webp"})} ${t}w`)).join(","),sizes:`(max-width: ${o}px) 100vw, ${o}px`,type:"image/webp"}]}}function uf(t){const[,e]=t.value.split(".");return JSON.parse(atob(e)).aud}function gf({environmentId:t,id:e,origin:n,width:o,extension:i}){return new URL(`${t}/assets/${e}/images/${o}.${i}`,n).toString()}class mf extends U{constructor(t){super(t),this._chosenAssets=new Set,this._wrapper=null,this._initListeners()}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(){this.fire("ckbox:open")}_getValue(){return null!==this._wrapper}_checkEnabled(){const t=this.editor.commands.get("insertImage"),e=this.editor.commands.get("link");return!(!t.isEnabled&&!e.isEnabled)}_prepareOptions(){const t=this.editor.config.get("ckbox");return{theme:t.theme,language:t.language,tokenUrl:t.tokenUrl,serviceOrigin:t.serviceOrigin,assetsOrigin:t.assetsOrigin,dialog:{onClose:()=>this.fire("ckbox:close")},assets:{onChoose:t=>this.fire("ckbox:choose",t)}}}_initListeners(){const t=this.editor,e=t.model,n=!t.config.get("ckbox.ignoreDataId");this.on("ckbox",(()=>{this.refresh()}),{priority:"low"}),this.on("ckbox:open",(()=>{this.isEnabled&&!this.value&&(this._wrapper=wa(document,"div",{class:"ck ckbox-wrapper"}),document.body.appendChild(this._wrapper),window.CKBox.mount(this._wrapper,this._prepareOptions()))})),this.on("ckbox:close",(()=>{this.value&&(this._wrapper.remove(),this._wrapper=null)})),this.on("ckbox:choose",((o,i)=>{if(!this.isEnabled)return;const r=t.commands.get("insertImage"),s=t.commands.get("link"),a=t.plugins.get("CKBoxEditing"),c=function({assets:t,origin:e,token:n,isImageAllowed:o,isLinkAllowed:i}){return t.map((t=>({id:t.data.id,type:ff(t)?"image":"link",attributes:pf(t,n,e)}))).filter((t=>"image"===t.type?o:i))}({assets:i,origin:t.config.get("ckbox.assetsOrigin"),token:a.getToken(),isImageAllowed:r.isEnabled,isLinkAllowed:s.isEnabled});0!==c.length&&e.change((t=>{for(const e of c){const o=e===c[c.length-1];this._insertAsset(e,o,t),n&&(setTimeout((()=>this._chosenAssets.delete(e)),1e3),this._chosenAssets.add(e))}}))})),this.listenTo(t,"destroy",(()=>{this.fire("ckbox:close"),this._chosenAssets.clear()}))}_insertAsset(t,e,n){const o=this.editor.model.document.selection;n.removeSelectionAttribute("linkHref"),"image"===t.type?this._insertImage(t):this._insertLink(t,n),e||n.setSelection(o.getLastPosition())}_insertImage(t){const e=this.editor,{imageFallbackUrl:n,imageSources:o,imageTextAlternative:i}=t.attributes;e.execute("insertImage",{source:{src:n,sources:o,alt:i}})}_insertLink(t,e){const n=this.editor,o=n.model,i=o.document.selection,{linkName:r,linkHref:s}=t.attributes;if(i.isCollapsed){const t=Bo(i.getAttributes()),n=e.createText(r,t),s=o.insertContent(n);e.setSelection(s)}n.execute("link",s)}}function pf(t,e,n){if(ff(t)){const{imageFallbackUrl:o,imageSources:i}=hf({token:e,origin:n,id:t.data.id,width:t.data.metadata.width,extension:t.data.extension});return{imageFallbackUrl:o,imageSources:i,imageTextAlternative:t.data.metadata.description||""}}return{linkName:t.data.name,linkHref:kf(t,e,n)}}function ff(t){const e=t.data.metadata;return!!e&&(e.width&&e.height)}function kf(t,e,n){const o=uf(e),i=new URL(`${o}/assets/${t.data.id}/file`,n);return i.searchParams.set("download","true"),i.toString()}class bf extends F{static get requires(){return["ImageUploadEditing","ImageUploadProgress",Pp,_f]}static get pluginName(){return"CKBoxUploadAdapter"}async afterInit(){const t=this.editor,e=!!t.config.get("ckbox"),n=!!window.CKBox;if(!e&&!n)return;const o=t.plugins.get(Pp),i=t.plugins.get(_f);o.createUploadAdapter=e=>new wf(e,i.getToken(),t);const r=!t.config.get("ckbox.ignoreDataId"),s=t.plugins.get("ImageUploadEditing");r&&s.on("uploadComplete",((e,{imageElement:n,data:o})=>{t.model.change((t=>{t.setAttribute("ckboxImageId",o.ckboxImageId,n)}))}))}}class wf{constructor(t,e,n){this.loader=t,this.token=e,this.editor=n,this.controller=new AbortController,this.serviceOrigin=n.config.get("ckbox.serviceOrigin"),this.assetsOrigin=n.config.get("ckbox.assetsOrigin")}async getAvailableCategories(t=0){const e=new URL("categories",this.serviceOrigin);return e.searchParams.set("limit",50..toString()),e.searchParams.set("offset",t.toString()),this._sendHttpRequest({url:e}).then((async e=>{if(e.totalCount-(t+50)>0){const n=await this.getAvailableCategories(t+50);return[...e.items,...n]}return e.items})).catch((()=>{this.controller.signal.throwIfAborted(),d("ckbox-fetch-category-http-error")}))}async getCategoryIdForFile(t){const e=Af(t.name),n=await this.getAvailableCategories();if(!n)return null;const o=this.editor.config.get("ckbox.defaultUploadCategories");if(o){const t=Object.keys(o).find((t=>o[t].includes(e)));if(t){const e=n.find((e=>e.id===t||e.name===t));return e?e.id:null}}const i=n.find((t=>t.extensions.includes(e)));return i?i.id:null}async upload(){const t=this.editor.t,e=t("Cannot determine a category for the uploaded file."),n=await this.loader.file,o=await this.getCategoryIdForFile(n);if(!o)return Promise.reject(e);const i=new URL("assets",this.serviceOrigin),r=new FormData;r.append("categoryId",o),r.append("file",n);const s={method:"POST",url:i,data:r,onUploadProgress:t=>{t.lengthComputable&&(this.loader.uploadTotal=t.total,this.loader.uploaded=t.loaded)}};return this._sendHttpRequest(s).then((async t=>{const e=await this._getImageWidth(),o=Af(n.name),i=hf({token:this.token,id:t.id,origin:this.assetsOrigin,width:e,extension:o});return{ckboxImageId:t.id,default:i.imageFallbackUrl,sources:i.imageSources}})).catch((()=>{const e=t("Cannot upload file:")+` ${n.name}.`;return Promise.reject(e)}))}abort(){this.controller.abort()}_sendHttpRequest(t){const{url:e,data:n,onUploadProgress:o}=t,i=t.method||"GET",r=this.controller.signal,s=new XMLHttpRequest;s.open(i,e.toString(),!0),s.setRequestHeader("Authorization",this.token.value),s.setRequestHeader("CKBox-Version","CKEditor 5"),s.responseType="json";const a=()=>{s.abort()};return new Promise(((t,e)=>{r.addEventListener("abort",a),s.addEventListener("loadstart",(()=>{r.addEventListener("abort",a)})),s.addEventListener("loadend",(()=>{r.removeEventListener("abort",a)})),s.addEventListener("error",(()=>{e()})),s.addEventListener("abort",(()=>{e()})),s.addEventListener("load",(async()=>{const n=s.response;return!n||n.statusCode>=400?e(n&&n.message):t(n)})),o&&s.upload.addEventListener("progress",(t=>{o(t)})),s.send(n)}))}_getImageWidth(){return new Promise((t=>{const e=new Image;e.onload=()=>{URL.revokeObjectURL(e.src),t(e.width)},e.src=this.loader.data}))}}function Af(t){return t.match(/\.(?[^.]+)$/).groups.ext}class _f extends F{static get pluginName(){return"CKBoxEditing"}static get requires(){return["CloudServices","LinkEditing","PictureEditing",bf]}async init(){const t=this.editor,e=!!t.config.get("ckbox"),n=!!window.CKBox;if(!e&&!n)return;this._initConfig();const o=t.plugins.get("CloudServicesCore"),i=t.config.get("ckbox.tokenUrl"),r=t.config.get("cloudServices.tokenUrl");this._token=i===r?t.plugins.get("CloudServices").token:await o.createToken(i).init(),t.config.get("ckbox.ignoreDataId")||(this._initSchema(),this._initConversion(),this._initFixers()),n&&t.commands.add("ckbox",new mf(t))}getToken(){return this._token}_initConfig(){const t=this.editor;t.config.define("ckbox",{serviceOrigin:"https://api.ckbox.io",assetsOrigin:"https://ckbox.cloud",defaultUploadCategories:null,ignoreDataId:!1,language:t.locale.uiLanguage,theme:"default",tokenUrl:t.config.get("cloudServices.tokenUrl")});if(!t.config.get("ckbox.tokenUrl"))throw new c("ckbox-plugin-missing-token-url",this);t.plugins.has("ImageBlockEditing")||t.plugins.has("ImageInlineEditing")||d("ckbox-plugin-image-feature-missing",t)}_initSchema(){const t=this.editor.model.schema;t.extend("$text",{allowAttributes:"ckboxLinkId"}),t.isRegistered("imageBlock")&&t.extend("imageBlock",{allowAttributes:["ckboxImageId","ckboxLinkId"]}),t.isRegistered("imageInline")&&t.extend("imageInline",{allowAttributes:["ckboxImageId","ckboxLinkId"]}),t.addAttributeCheck(((t,e)=>{if(!!!t.last.getAttribute("linkHref")&&"ckboxLinkId"===e)return!1}))}_initConversion(){const t=this.editor;t.conversion.for("downcast").add((t=>{t.on("attribute:ckboxLinkId:imageBlock",((t,e,n)=>{const{writer:o,mapper:i,consumable:r}=n;if(!r.consume(e.item,t.name))return;const s=[...i.toViewElement(e.item).getChildren()].find((t=>"a"===t.name));s&&(e.item.hasAttribute("ckboxLinkId")?o.setAttribute("data-ckbox-resource-id",e.item.getAttribute("ckboxLinkId"),s):o.removeAttribute("data-ckbox-resource-id",s))}),{priority:"low"}),t.on("attribute:ckboxLinkId",((t,e,n)=>{const{writer:o,mapper:i,consumable:r}=n;if(r.consume(e.item,t.name)){if(e.attributeOldValue){const t=vf(o,e.attributeOldValue);o.unwrap(i.toViewRange(e.range),t)}if(e.attributeNewValue){const t=vf(o,e.attributeNewValue);if(e.item.is("selection")){const e=o.document.selection;o.wrap(e.getFirstRange(),t)}else o.wrap(i.toViewRange(e.range),t)}}}),{priority:"low"})})),t.conversion.for("upcast").add((t=>{t.on("element:a",((t,e,n)=>{const{writer:o,consumable:i}=n;if(!e.viewItem.getAttribute("href"))return;if(!i.consume(e.viewItem,{attributes:["data-ckbox-resource-id"]}))return;const r=e.viewItem.getAttribute("data-ckbox-resource-id");if(r)if(e.modelRange)for(let t of e.modelRange.getItems())t.is("$textProxy")&&(t=t.textNode),yf(t)&&o.setAttribute("ckboxLinkId",r,t);else{const t=e.modelCursor.nodeBefore||e.modelCursor.parent;o.setAttribute("ckboxLinkId",r,t)}}),{priority:"low"})})),t.conversion.for("downcast").attributeToAttribute({model:"ckboxImageId",view:"data-ckbox-resource-id"}),t.conversion.for("upcast").elementToAttribute({model:{key:"ckboxImageId",value:t=>t.getAttribute("data-ckbox-resource-id")},view:{attributes:{"data-ckbox-resource-id":/[\s\S]+/}}})}_initFixers(){const t=this.editor,e=t.model,n=e.document.selection;e.document.registerPostFixer(function(t){return e=>{let n=!1;const o=t.model,i=t.commands.get("ckbox");if(!i)return n;for(const t of o.document.differ.getChanges()){if("insert"!==t.type&&"attribute"!==t.type)continue;const o="insert"===t.type?new ic(t.position,t.position.getShiftedBy(t.length)):t.range,r="attribute"===t.type&&"linkHref"===t.attributeKey&&null===t.attributeNewValue;for(const t of o.getItems()){if(r&&t.hasAttribute("ckboxLinkId")){e.removeAttribute("ckboxLinkId",t),n=!0;continue}const o=Cf(t,i._chosenAssets);for(const i of o){const o="image"===i.type?"ckboxImageId":"ckboxLinkId";i.id!==t.getAttribute(o)&&(e.setAttribute(o,i.id,t),n=!0)}}}return n}}(t)),e.document.registerPostFixer(function(t){return e=>{!t.hasAttribute("linkHref")&&t.hasAttribute("ckboxLinkId")&&e.removeSelectionAttribute("ckboxLinkId")}}(n))}}function Cf(t,e){const n=t.is("element","imageInline")||t.is("element","imageBlock"),o=t.hasAttribute("linkHref");return[...e].filter((e=>"image"===e.type&&n?e.attributes.imageFallbackUrl===t.getAttribute("src"):"link"===e.type&&o?e.attributes.linkHref===t.getAttribute("linkHref"):void 0))}function vf(t,e){const n=t.createAttributeElement("a",{"data-ckbox-resource-id":e},{priority:5});return t.setCustomProperty("link",!0,n),n}function yf(t){return!!t.is("$text")||!(!t.is("element","imageInline")&&!t.is("element","imageBlock"))}class xf extends F{static get pluginName(){return"CKFinderUI"}init(){const t=this.editor,e=t.ui.componentFactory,n=t.t;e.add("ckfinder",(e=>{const o=t.commands.get("ckfinder"),i=new lu(e);return i.set({label:n("Insert image or file"),icon:'',tooltip:!0}),i.bind("isEnabled").to(o),i.on("execute",(()=>{t.execute("ckfinder"),t.editing.view.focus()})),i}))}}class Ef extends U{constructor(t){super(t),this.stopListening(this.editor.model.document,"change"),this.listenTo(this.editor.model.document,"change",(()=>this.refresh()),{priority:"low"})}refresh(){const t=this.editor.commands.get("insertImage"),e=this.editor.commands.get("link");this.isEnabled=t.isEnabled||e.isEnabled}execute(){const t=this.editor,e=this.editor.config.get("ckfinder.openerMethod")||"modal";if("popup"!=e&&"modal"!=e)throw new c("ckfinder-unknown-openermethod",t);const n=this.editor.config.get("ckfinder.options")||{};n.chooseFiles=!0;const o=n.onInit;n.language||(n.language=t.locale.uiLanguage),n.onInit=e=>{o&&o(e),e.on("files:choose",(n=>{const o=n.data.files.toArray(),i=o.filter((t=>!t.isImage())),r=o.filter((t=>t.isImage()));for(const e of i)t.execute("link",e.getUrl());const s=[];for(const t of r){const n=t.getUrl();s.push(n||e.request("file:getProxyUrl",{file:t}))}s.length&&Df(t,s)})),e.on("file:choose:resizedImage",(e=>{const n=e.data.resizedUrl;if(n)Df(t,[n]);else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not obtain resized image URL."),{title:n("Selecting resized image failed"),namespace:"ckfinder"})}}))},window.CKFinder[e](n)}}function Df(t,e){if(t.commands.get("insertImage").isEnabled)t.execute("insertImage",{source:e});else{const e=t.plugins.get("Notification"),n=t.locale.t;e.showWarning(n("Could not insert image at the current position."),{title:n("Inserting image failed"),namespace:"ckfinder"})}}class If extends F{static get pluginName(){return"CKFinderEditing"}static get requires(){return[mg,"LinkEditing"]}init(){const t=this.editor;if(!t.plugins.has("ImageBlockEditing")&&!t.plugins.has("ImageInlineEditing"))throw new c("ckfinder-missing-image-plugin",t);t.commands.add("ckfinder",new Ef(t))}}class Tf extends F{static get pluginName(){return"CloudServicesUploadAdapter"}static get requires(){return["CloudServices",Pp]}init(){const t=this.editor,e=t.plugins.get("CloudServices"),n=e.token,o=e.uploadUrl;n&&(this._uploadGateway=t.plugins.get("CloudServicesCore").createUploadGateway(n,o),t.plugins.get(Pp).createUploadAdapter=t=>new Mf(this._uploadGateway,t))}}class Mf{constructor(t,e){this.uploadGateway=t,this.loader=e}upload(){return this.loader.file.then((t=>(this.fileUploader=this.uploadGateway.upload(t),this.fileUploader.on("progress",((t,e)=>{this.loader.uploadTotal=e.total,this.loader.uploaded=e.uploaded})),this.fileUploader.send())))}abort(){this.fileUploader.abort()}}class Sf extends U{refresh(){const t=this.editor.model,e=Ca(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&Nf(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document;e.change((o=>{const i=(t.selection||n.selection).getSelectedBlocks();for(const t of i)!t.is("element","paragraph")&&Nf(t,e.schema)&&o.rename(t,"paragraph")}))}}function Nf(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class Bf extends U{execute(t){const e=this.editor.model,n=t.attributes;let o=t.position;e.change((t=>{const i=t.createElement("paragraph");if(n&&e.schema.setAllowedAttributes(i,n,t),!e.schema.checkChild(o.parent,i)){const n=e.schema.findAllowedParent(o,i);if(!n)return;o=t.split(o,n).position}e.insertContent(i,o),t.setSelection(i,"in")}))}}class Pf extends F{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new Sf(t)),t.commands.add("insertParagraph",new Bf(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>Pf.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}}Pf.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);class zf extends U{constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Ca(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>Lf(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>Lf(t,o,e.schema)));for(const e of i)e.is("element",o)||t.rename(e,o)}))}}function Lf(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const Of="paragraph";class Rf extends F{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[Pf]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const o of e)o.model!==Of&&(t.model.schema.register(o.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(o),n.push(o.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new zf(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some((t=>i.is("element",t.model)))&&!i.is("element",Of)&&0===i.childCount&&o.writer.rename(i,Of)}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:s.get("low")+1})}}var jf=n(8733),Ff={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(jf.Z,Ff);jf.Z.locals;class Vf extends F{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),o=e("Choose heading"),i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={},s=new fo,a=t.commands.get("heading"),c=t.commands.get("paragraph"),l=[a];for(const t of n){const e={type:"button",model:new pg({label:t.title,class:t.class,withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(c,"value"),e.model.set("commandName","paragraph"),l.push(c)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=qu(e);return $u(d,s),d.buttonView.set({isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some((t=>t)))),d.buttonView.bind("label").to(a,"value",c,"value",((t,e)=>{const n=t||e&&"paragraph";return r[n]?r[n]:o})),this.listenTo(d,"execute",(e=>{t.execute(e.source.commandName,e.source.commandValue?{value:e.source.commandValue}:void 0),t.editing.view.focus()})),d}))}}class Uf extends F{static get requires(){return[_g]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!am(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._toolbarDefinitions=new Map,this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length)return void l("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new Bu(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new c("widget-toolbar-duplicated",this,{toolbarId:t});a.fillFromConfig(n,r.ui.componentFactory);const d={view:a,getRelatedElement:o,balloonClassName:i};r.ui.addToolbar(a,{isContextual:!0,beforeFocus:()=>{const t=o(r.editing.view.document.selection);t&&this._showToolbar(d,t)},afterBlur:()=>{this._hideToolbar(d)}}),this._toolbarDefinitions.set(t,d)}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>t&&(t=r,e=i,n=o)}else this._isToolbarVisible(o)&&this._hideToolbar(o);else this._isToolbarInBalloon(o)&&this._hideToolbar(o)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?Hf(this.editor,e):this._isToolbarInBalloon(t)||(this._balloon.add({view:t.view,position:Wf(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);Hf(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function Hf(t,e){const n=t.plugins.get("ContextualBalloon"),o=Wf(t,e);n.updatePosition(o)}function Wf(t,e){const n=t.editing.view,o=Rh.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}var Gf=n(8506),qf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Gf.Z,qf);Gf.Z.locals;class Yf extends U{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o=e.model,i=n.getClosestSelectedImageElement(o.document.selection);o.change((e=>{e.setAttribute("alt",t.newValue,i)}))}}function $f(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot()])}function Kf(t,e){const n=t.plugins.get("ImageUtils"),o=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t))return null;if(!o)return i(t);return(t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:i(t)};function i(t){const e={name:!0};return t.hasAttribute("src")&&(e.attributes=["src"]),e}}function Qf(t,e){const n=Ca(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}class Zf extends F{static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null){const o=this.editor,i=o.model,r=i.document.selection;n=Jf(o,e||r,n),t={...Object.fromEntries(r.getAttributes()),...t};for(const e in t)i.schema.checkAttribute(n,e)||delete t[e];return i.change((o=>{const r=o.createElement(n,t);return i.insertObject(r,e,null,{setSelection:"on",findOptimalPosition:!e&&"imageInline"!=n}),r.parent?r:null}))}getClosestSelectedImageWidget(t){const e=t.getFirstPosition();if(!e)return null;const n=t.getSelectedElement();if(n&&this.isImageWidget(n))return n;let o=e.parent;for(;o;){if(o.is("element")&&this.isImageWidget(o))return o;o=o.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){if("imageBlock"==Jf(t,e)){const n=function(t,e){const n=mm(t,e).start.parent;if(n.isEmpty&&!n.is("element","$root"))return n.parent;return n}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){e.setCustomProperty("image",!0,t);return cm(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&am(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}}function Jf(t,e,n){const o=t.model.schema,i=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===i?"imageInline":"block"===i?"imageBlock":e.is("selection")?Qf(o,e):o.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}class Xf extends F{static get requires(){return[Zf]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new Yf(this.editor))}}var tk=n(1905),ek={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(tk.Z,ek);tk.Z.locals;var nk=n(6764),ok={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(nk.Z,ok);nk.Z.locals;class ik extends Th{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new va,this.keystrokes=new ya,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Xh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Xh.cancel,"ck-button-cancel","cancel"),this._focusables=new rh,this._focusCycler=new yu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),eu(this)}render(){super.render(),this.keystrokes.listenTo(this.element),nu({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new lu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new ug(this.locale,gg);return e.label=t("Text alternative"),e}}function rk(t){const e=t.editing.view,n=Rh.defaultPositions,o=t.plugins.get("ImageUtils");return{target:e.domConverter.mapViewToDom(o.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class sk extends F{static get requires(){return[_g]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),i=new lu(n);return i.set({label:e("Change image text alternative"),icon:Xh.lowVision,tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>!!t)),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new ik(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=rk(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),tu({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:rk(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class ak extends F{static get requires(){return[Xf,sk]}static get pluginName(){return"ImageTextAlternative"}}function ck(t,e){return t=>{t.on(`attribute:srcset:${e}`,n)};function n(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);if(null===n.attributeNewValue){const t=n.attributeOldValue;t.data&&(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s),t.width&&i.removeAttribute("width",s))}else{const t=n.attributeNewValue;t.data&&(i.setAttribute("srcset",t.data,s),i.setAttribute("sizes","100vw",s),t.width&&i.setAttribute("width",t.width,s))}}}function lk(t,e,n){return t=>{t.on(`attribute:${n}:${e}`,o)};function o(e,n,o){if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);i.setAttribute(n.attributeKey,n.attributeNewValue||"",s)}}class dk extends ys{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class hk extends U{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&l("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&l("image-inline-plugin-required")}refresh(){this.isEnabled=this.editor.plugins.get("ImageUtils").isImageAllowed()}execute(t){const e=bo(t.source),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);o.insertImage({...t,...i},e)}else o.insertImage({...t,...i})}))}}class uk extends F{static get requires(){return[Zf]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(dk),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:{key:"srcset",value:t=>{const e={data:t.getAttribute("srcset")};return t.hasAttribute("width")&&(e.width=t.getAttribute("width")),e}}});const n=new hk(t);t.commands.add("insertImage",n),t.commands.add("imageInsert",n)}}class gk extends U{constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(){const t=this.editor,e=this.editor.model,n=t.plugins.get("ImageUtils"),o=n.getClosestSelectedImageElement(e.document.selection),i=Object.fromEntries(o.getAttributes());return i.src||i.uploadId?e.change((t=>{const r=Array.from(e.markers).filter((t=>t.getRange().containsItem(o))),s=n.insertImage(i,e.createSelection(o,"on"),this._modelElementName);if(!s)return null;const a=t.createRangeOn(s);for(const e of r){const n=e.getRange(),o="$graveyard"!=n.root.rootName?n.getJoined(a,!0):a;t.updateMarker(e,{range:o})}return{oldElement:o,newElement:s}})):null}}class mk extends F{static get requires(){return[uk,Zf,jg]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new gk(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>$f(e)}),n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>o.toImageWidget($f(n),n,e("image widget"))}),n.for("downcast").add(lk(o,"imageBlock","src")).add(lk(o,"imageBlock","alt")).add(ck(o,"imageBlock")),n.for("upcast").elementToElement({view:Kf(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)}).add(function(t){return t=>{t.on("element:figure",e)};function e(e,n,o){if(!o.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const i=t.findViewImgElement(n.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(n.viewItem,{name:!0,classes:"image"});const r=Ca(o.convertItem(i,n.modelCursor).modelRange.getItems());r?(o.convertChildren(n.viewItem,r),o.updateConversionResult(r,n)):o.consumable.revert(n.viewItem,{name:!0,classes:"image"})}}(o))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isInlineImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const c=e.createSelection(a);if("imageBlock"===Qf(e.schema,c)){const t=new qd(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}}))}}var pk=n(3508),fk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(pk.Z,fk);pk.Z.locals;class kk extends F{static get requires(){return[mk,Mm,ak]}static get pluginName(){return"ImageBlock"}}class bk extends F{static get requires(){return[uk,Zf,jg]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new gk(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>o.toImageWidget(function(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}(n),n,e("image widget"))}),n.for("downcast").add(lk(o,"imageInline","src")).add(lk(o,"imageInline","alt")).add(ck(o,"imageInline")),n.for("upcast").elementToElement({view:Kf(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:null)})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils");this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isBlockImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const c=e.createSelection(a);if("imageInline"===Qf(e.schema,c)){const t=new qd(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,o.findViewImgElement(e)))),e.getChild(0)):e));r.content=t.createDocumentFragment(e)}}))}}class wk extends F{static get requires(){return[bk,Mm,ak]}static get pluginName(){return"ImageInline"}}class Ak extends U{refresh(){const t=this.editor,e=t.plugins.get("ImageCaptionUtils");if(!t.plugins.has(mk))return this.isEnabled=!1,void(this.value=!1);const n=t.model.document.selection,o=n.getSelectedElement();if(!o){const t=e.getCaptionFromModelSelection(n);return this.isEnabled=!!t,void(this.value=!!t)}this.isEnabled=this.editor.plugins.get("ImageUtils").isImage(o),this.isEnabled?this.value=!!e.getCaptionFromImageModelElement(o):this.value=!1}execute(t={}){const{focusCaptionOnShow:e}=t;this.editor.model.change((t=>{this.value?this._hideImageCaption(t):this._showImageCaption(t,e)}))}_showImageCaption(t,e){const n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageCaptionEditing");let i=n.getSelectedElement();const r=o._getSavedCaption(i);this.editor.plugins.get("ImageUtils").isInlineImage(i)&&(this.editor.execute("imageTypeBlock"),i=n.getSelectedElement());const s=r||t.createElement("caption");t.append(s,i),e&&t.setSelection(s,"in")}_hideImageCaption(t){const e=this.editor,n=e.model.document.selection,o=e.plugins.get("ImageCaptionEditing"),i=e.plugins.get("ImageCaptionUtils");let r,s=n.getSelectedElement();s?r=i.getCaptionFromImageModelElement(s):(r=i.getCaptionFromModelSelection(n),s=r.parent),o._saveCaption(s,r),t.setSelection(s,"on"),t.remove(r)}}class _k extends F{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[Zf]}getCaptionFromImageModelElement(t){for(const e of t.getChildren())if(e&&e.is("element","caption"))return e;return null}getCaptionFromModelSelection(t){const e=this.editor.plugins.get("ImageUtils"),n=t.getFirstPosition().findAncestor("caption");return n&&e.isBlockImage(n.parent)?n:null}matchImageCaptionViewElement(t){const e=this.editor.plugins.get("ImageUtils");return"figcaption"==t.name&&e.isBlockImageView(t.parent)?{name:!0}:null}}class Ck extends F{static get requires(){return[Zf,_k]}static get pluginName(){return"ImageCaptionEditing"}constructor(t){super(t),this._savedCaptionsMap=new WeakMap}init(){const t=this.editor,e=t.model.schema;e.isRegistered("caption")?e.extend("caption",{allowIn:"imageBlock"}):e.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),t.commands.add("toggleImageCaption",new Ak(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),o=t.plugins.get("ImageCaptionUtils"),i=t.t;t.conversion.for("upcast").elementToElement({view:t=>o.matchImageCaptionViewElement(t),model:"caption"}),t.conversion.for("dataDowncast").elementToElement({model:"caption",view:(t,{writer:e})=>n.isBlockImage(t.parent)?e.createContainerElement("figcaption"):null}),t.conversion.for("editingDowncast").elementToElement({model:"caption",view:(t,{writer:o})=>{if(!n.isBlockImage(t.parent))return null;const r=o.createEditableElement("figcaption");o.setCustomProperty("imageCaption",!0,r),Id({view:e,element:r,text:i("Enter image caption"),keepOnFocus:!0});const s=t.parent.getAttribute("alt");return gm(r,o,{label:s?i("Caption for image: %0",[s]):i("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.plugins.get("ImageCaptionUtils"),o=t.commands.get("imageTypeInline"),i=t.commands.get("imageTypeBlock"),r=t=>{if(!t.return)return;const{oldElement:o,newElement:i}=t.return;if(!o)return;if(e.isBlockImage(o)){const t=n.getCaptionFromImageModelElement(o);if(t)return void this._saveCaption(i,t)}const r=this._getSavedCaption(o);r&&this._saveCaption(i,r)};o&&this.listenTo(o,"execute",r,{priority:"low"}),i&&this.listenTo(i,"execute",r,{priority:"low"})}_getSavedCaption(t){const e=this._savedCaptionsMap.get(t);return e?Ka.fromJSON(e):null}_saveCaption(t,e){this._savedCaptionsMap.set(t,e.toJSON())}_registerCaptionReconversion(){const t=this.editor,e=t.model,n=t.plugins.get("ImageUtils"),o=t.plugins.get("ImageCaptionUtils");e.document.on("change:data",(()=>{const i=e.document.differ.getChanges();for(const e of i){if("alt"!==e.attributeKey)continue;const i=e.range.start.nodeAfter;if(n.isBlockImage(i)){const e=o.getCaptionFromImageModelElement(i);if(!e)return;t.editing.reconvertItem(e)}}}))}}class vk extends F{static get requires(){return[_k]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageCaptionUtils"),o=t.t;t.ui.componentFactory.add("toggleImageCaption",(i=>{const r=t.commands.get("toggleImageCaption"),s=new lu(i);return s.set({icon:Xh.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.bind("label").to(r,"value",(t=>o(t?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:!0});const o=n.getCaptionFromModelSelection(t.model.document.selection);if(o){const n=t.editing.mapper.toViewElement(o);e.scrollToTheSelection(),e.change((t=>{t.addClass("image__caption_highlighted",n)}))}t.editing.view.focus()})),s}))}}var yk=n(2640),xk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(yk.Z,xk);yk.Z.locals;class Ek extends U{constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils");n.change((e=>{const i=t.value;let r=o.getClosestSelectedImageElement(n.document.selection);i&&this.shouldConvertImageType(i,r)&&(this.editor.execute(o.isBlockImage(r)?"imageTypeInline":"imageTypeBlock"),r=o.getClosestSelectedImageElement(n.document.selection)),!i||this._styles.get(i).isDefault?e.removeAttribute("imageStyle",r):e.setAttribute("imageStyle",i,r)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:Dk,objectInline:Ik,objectLeft:Tk,objectRight:Mk,objectCenter:Sk,objectBlockLeft:Nk,objectBlockRight:Bk}=Xh,Pk={get inline(){return{name:"inline",title:"In line",icon:Ik,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Tk,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Nk,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Sk,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Mk,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:Bk,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Sk,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Mk,modelElements:["imageBlock"],className:"image-style-side"}}},zk={full:Dk,left:Nk,right:Bk,center:Sk,inlineLeft:Tk,inlineRight:Mk,inline:Ik},Lk=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Ok(t){l("image-style-configuration-definition-invalid",t)}const Rk={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){t="string"==typeof t?Pk[t]?{...Pk[t]}:{name:t}:function(t,e){const n={...e};for(const o in t)Object.prototype.hasOwnProperty.call(e,o)||(n[o]=t[o]);return n}(Pk[t.name],t);"string"==typeof t.icon&&(t.icon=zk[t.icon]||t.icon);return t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:o,name:i}=t;if(!(o&&o.length&&i))return Ok({style:t}),!1;{const i=[e?"imageBlock":null,n?"imageInline":null];if(!o.some((t=>i.includes(t))))return l("image-style-missing-dependency",{style:t,missingPlugins:o.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Lk]:[]},warnInvalidStyle:Ok,DEFAULT_OPTIONS:Pk,DEFAULT_ICONS:zk,DEFAULT_DROPDOWN_DEFINITIONS:Lk};function jk(t,e){for(const n of e)if(n.name===t)return n}class Fk extends F{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[Zf]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Rk,n=this.editor,o=n.plugins.has("ImageBlockEditing"),i=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(o,i)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:o,isInlinePluginLoaded:i}),this._setupConversion(o,i),this._setupPostFixer(),n.commands.add("imageStyle",new Ek(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,o=n.model.schema,i=(r=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=jk(e.attributeNewValue,r),i=jk(e.attributeOldValue,r),s=n.mapper.toViewElement(e.item),a=n.writer;i&&a.removeClass(i.className,s),o&&a.addClass(o.className,s)});var r;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,o)=>{if(!n.modelRange)return;const i=n.viewItem,r=Ca(n.modelRange.getItems());if(r&&o.schema.checkAttribute(r,"imageStyle"))for(const t of e[r.name])o.consumable.consume(i,{classes:t.className})&&o.writer.setAttribute("imageStyle",t.name,r)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",i),n.data.downcastDispatcher.on("attribute:imageStyle",i),t&&(o.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(o.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(Zf),o=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let i=!1;for(const r of e.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let e="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=o.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),i=!0)}return i}))}}var Vk=n(5083),Uk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Vk.Z,Uk);Vk.Z.locals;class Hk extends F{static get requires(){return[Fk]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=Wk(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const o=Wk([...e.filter(D),...Rk.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(o=>{let i;const{defaultItem:r,items:s,title:a}=t,c=s.filter((t=>e.find((({name:e})=>Gk(e)===t)))).map((t=>{const e=n.create(t);return t===r&&(i=e),e}));s.length!==c.length&&Rk.warnInvalidStyle({dropdown:t});const l=qu(o,wu),d=l.buttonView,h=d.arrowView;return Yu(l,c,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:qk(a,i.label),class:null,tooltip:!0}),h.unbind("label"),h.set({label:a}),d.bind("icon").toMany(c,"isOn",((...t)=>{const e=t.findIndex(mi);return e<0?i.icon:c[e].icon})),d.bind("label").toMany(c,"isOn",((...t)=>{const e=t.findIndex(mi);return qk(a,e<0?i.label:c[e].label)})),d.bind("isOn").toMany(c,"isOn",((...t)=>t.some(mi))),d.bind("class").toMany(c,"isOn",((...t)=>t.some(mi)?"ck-splitbutton_flatten":null)),d.on("execute",(()=>{c.some((({isOn:t})=>t))?l.isOpen=!l.isOpen:i.fire("execute")})),l.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some(mi))),this.listenTo(l,"execute",(()=>{this.editor.editing.view.focus()})),l}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add(Gk(e),(n=>{const o=this.editor.commands.get("imageStyle"),i=new lu(n);return i.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>t===e)),i.on("execute",this._executeCommand.bind(this,e)),i}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function Wk(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function Gk(t){return`imageStyle:${t}`}function qk(t,e){return(t?t+": ":"")+e}function Yk(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function $k(t){return new Promise(((e,n)=>{const o=t.getAttribute("src");fetch(o).then((t=>t.blob())).then((t=>{const n=Kk(t,o),i=n.replace("image/",""),r=new File([t],`image.${i}`,{type:n});e(r)})).catch((t=>t&&"TypeError"===t.name?function(t){return function(t){return new Promise(((e,n)=>{const o=Ao.document.createElement("img");o.addEventListener("load",(()=>{const t=Ao.document.createElement("canvas");t.width=o.width,t.height=o.height;t.getContext("2d").drawImage(o,0,0),t.toBlob((t=>t?e(t):n()))})),o.addEventListener("error",(()=>n())),o.src=t}))}(t).then((e=>{const n=Kk(e,t),o=n.replace("image/","");return new File([e],`image.${o}`,{type:n})}))}(o).then(e).catch(n):n(t)))}))}function Kk(t,e){return t.type?t.type:e.match(/data:(image\/\w+);base64/)?e.match(/data:(image\/\w+);base64/)[1].toLowerCase():"image/jpeg"}class Qk extends F{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor,e=t.t,n=n=>{const o=new Lp(n),i=t.commands.get("uploadImage"),r=t.config.get("image.upload.types"),s=Yk(r);return o.set({acceptedType:r.map((t=>`image/${t}`)).join(","),allowMultipleFiles:!0}),o.buttonView.set({label:e("Insert image"),icon:Xh.image,tooltip:!0}),o.buttonView.bind("isEnabled").to(i),o.on("done",((e,n)=>{const o=Array.from(n).filter((t=>s.test(t.type)));o.length&&(t.execute("uploadImage",{file:o}),t.editing.view.focus())})),o};t.ui.componentFactory.add("uploadImage",n),t.ui.componentFactory.add("imageUpload",n)}}var Zk=n(3689),Jk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Zk.Z,Jk);Zk.Z.locals;var Xk=n(4036),tb={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Xk.Z,tb);Xk.Z.locals;var eb=n(3773),nb={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(eb.Z,nb);eb.Z.locals;class ob extends F{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t),this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const t=this.editor;t.plugins.has("ImageBlockEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",((...t)=>this.uploadStatusChange(...t))),t.plugins.has("ImageInlineEditing")&&t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",((...t)=>this.uploadStatusChange(...t)))}uploadStatusChange(t,e,n){const o=this.editor,i=e.item,r=i.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name))return;const s=o.plugins.get("ImageUtils"),a=o.plugins.get(Pp),c=r?e.attributeNewValue:null,l=this.placeholder,d=o.editing.mapper.toViewElement(i),h=n.writer;if("reading"==c)return ib(d,h),void rb(s,l,d,h);if("uploading"==c){const t=a.loaders.get(r);return ib(d,h),void(t?(sb(d,h),function(t,e,n,o){const i=function(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});return t.setCustomProperty("progressBar",!0,e),e}(e);e.insert(e.createPositionAt(t,"end"),i),n.on("change:uploadedPercent",((t,e,n)=>{o.change((t=>{t.setStyle("width",n+"%",i)}))}))}(d,h,t,o.editing.view),function(t,e,n,o){if(o.data){const i=t.findViewImgElement(e);n.setAttribute("src",o.data,i)}}(s,d,h,t)):rb(s,l,d,h))}"complete"==c&&a.loaders.get(r)&&function(t,e,n){const o=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),o),setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(o))))}),3e3)}(d,h,o.editing.view),function(t,e){cb(t,e,"progressBar")}(d,h),sb(d,h),function(t,e){e.removeClass("ck-appear",t)}(d,h)}}function ib(t,e){t.hasClass("ck-appear")||e.addClass("ck-appear",t)}function rb(t,e,n,o){n.hasClass("ck-image-upload-placeholder")||o.addClass("ck-image-upload-placeholder",n);const i=t.findViewImgElement(n);i.getAttribute("src")!==e&&o.setAttribute("src",e,i),ab(n,"placeholder")||o.insert(o.createPositionAfter(i),function(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});return t.setCustomProperty("placeholder",!0,e),e}(o))}function sb(t,e){t.hasClass("ck-image-upload-placeholder")&&e.removeClass("ck-image-upload-placeholder",t),cb(t,e,"placeholder")}function ab(t,e){for(const n of t.getChildren())if(n.getCustomProperty(e))return n}function cb(t,e,n){const o=ab(t,n);o&&e.remove(e.createRangeOn(o))}class lb extends U{refresh(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=bo(t.file),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if(e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);this._uploadImage(t,i,e)}else this._uploadImage(t,i)}))}_uploadImage(t,e,n){const o=this.editor,i=o.plugins.get(Pp).createLoader(t),r=o.plugins.get("ImageUtils");i&&r.insertImage({...e,uploadId:i.id},n)}}class db extends F{static get requires(){return[Pp,mg,jg,Zf]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t),t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}}),this._uploadImageElements=new Map}init(){const t=this.editor,e=t.model.document,n=t.conversion,o=t.plugins.get(Pp),i=t.plugins.get("ImageUtils"),r=Yk(t.config.get("image.upload.types")),s=new lb(t);t.commands.add("uploadImage",s),t.commands.add("imageUpload",s),n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"}),this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(o=n.dataTransfer,Array.from(o.types).includes("text/html")&&""!==o.getData("text/html"))return;var o;const i=Array.from(n.dataTransfer.files).filter((t=>!!t&&r.test(t.type)));i.length&&(e.stop(),t.model.change((e=>{n.targetRanges&&e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e)))),t.model.enqueueChange((()=>{t.execute("uploadImage",{file:i})}))})))})),this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",((e,n)=>{const r=Array.from(t.editing.view.createRangeIn(n.content)).filter((t=>function(t,e){return!(!t.isInlineImageView(e)||!e.getAttribute("src"))&&(e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||e.getAttribute("src").match(/^blob:/g))}(i,t.item)&&!t.item.getAttribute("uploadProcessed"))).map((t=>({promise:$k(t.item),imageElement:t.item})));if(!r.length)return;const s=new qd(t.editing.view.document);for(const t of r){s.setAttribute("uploadProcessed",!0,t.imageElement);const e=o.createLoader(t.promise);e&&(s.setAttribute("src","",t.imageElement),s.setAttribute("uploadId",e.id,t.imageElement))}})),t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()})),e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:!0}).reverse(),i=new Set;for(const e of n)if("insert"==e.type&&"$text"!=e.name){const n=e.position.nodeAfter,r="$graveyard"==e.position.root.rootName;for(const e of hb(t,n)){const t=e.getAttribute("uploadId");if(!t)continue;const n=o.loaders.get(t);n&&(r?i.has(t)||n.abort():(i.add(t),this._uploadImageElements.set(t,e),"idle"==n.status&&this._readAndUpload(n)))}}})),this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const o=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",o.default,e),this._parseAndSetSrcsetAttributeOnImage(o,e,t)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;this.editor.plugins.has("ImageBlockEditing")&&t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]}),this.editor.plugins.has("ImageInlineEditing")&&t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}_readAndUpload(t){const e=this.editor,n=e.model,o=e.locale.t,i=e.plugins.get(Pp),r=e.plugins.get(mg),s=e.plugins.get("ImageUtils"),a=this._uploadImageElements;return n.enqueueChange({isUndoable:!1},(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))})),t.read().then((()=>{const o=t.upload(),i=a.get(t.id);if(cr.isSafari){const t=e.editing.mapper.toViewElement(i),n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent)return;const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t)return;const o=t.style.display;t.style.display="none",t._ckHack=t.offsetHeight,t.style.display=o}))}return n.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("uploadStatus","uploading",i)})),o})).then((e=>{n.enqueueChange({isUndoable:!1},(n=>{const o=a.get(t.id);n.setAttribute("uploadStatus","complete",o),this.fire("uploadComplete",{data:e,imageElement:o})})),c()})).catch((e=>{if("error"!==t.status&&"aborted"!==t.status)throw e;"error"==t.status&&e&&r.showWarning(e,{title:o("Upload failed"),namespace:"upload"}),n.enqueueChange({isUndoable:!1},(e=>{e.remove(a.get(t.id))})),c()}));function c(){n.enqueueChange({isUndoable:!1},(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n),e.removeAttribute("uploadStatus",n),a.delete(t.id)})),i.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let o=0;const i=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e))return o=Math.max(o,e),!0})).map((e=>`${t[e]} ${e}w`)).join(", ");""!=i&&n.setAttribute("srcset",{data:i,width:o},e)}}function hb(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class ub extends F{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new W(t)),t.commands.add("outdent",new W(t))}}const gb='',mb='';class pb extends F{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?gb:mb,i="ltr"==e.uiLanguageDirection?mb:gb;this._defineButton("indent",n("Increase indent"),o),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(i=>{const r=o.commands.get(t),s=new lu(i);return s.set({label:e,icon:n,tooltip:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),this.listenTo(s,"execute",(()=>{o.execute(t),o.editing.view.focus()})),s}))}}class fb{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){Array.isArray(t)?t.forEach((t=>this._definitions.add(t))):this._definitions.add(t)}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref"))return;if(!e.item.is("selection")&&!n.schema.isInline(e.item))return;const o=n.writer,i=o.document.selection;for(const t of this._definitions){const r=o.createAttributeElement("a",t.attributes,{priority:5});t.classes&&o.addClass(t.classes,r);for(const e in t.styles)o.setStyle(e,t.styles[e],r);o.setCustomProperty("link",!0,r),t.callback(e.attributeNewValue)?e.item.is("selection")?o.wrap(i.getFirstRange(),r):o.wrap(n.mapper.toViewRange(e.range),r):o.unwrap(n.mapper.toViewRange(e.range),r)}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:o})=>{const i=o.toViewElement(e.item),r=Array.from(i.getChildren()).find((t=>"a"===t.name));for(const t of this._definitions){const o=Bo(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of o)"class"===t?n.addClass(e,r):n.setAttribute(t,e,r);t.classes&&n.addClass(t.classes,r);for(const e in t.styles)n.setStyle(e,t.styles[e],r)}else{for(const[t,e]of o)"class"===t?n.removeClass(e,r):n.removeAttribute(t,r);t.classes&&n.removeClass(t.classes,r);for(const e in t.styles)n.removeStyle(e,r)}}}))}}}const kb=function(t,e,n){var o=t.length;return n=void 0===n?o:n,!e&&n>=o?t:ni(t,e,n)};var bb=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");const wb=function(t){return bb.test(t)};const Ab=function(t){return t.split("")};var _b="[\\ud800-\\udfff]",Cb="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",vb="\\ud83c[\\udffb-\\udfff]",yb="[^\\ud800-\\udfff]",xb="(?:\\ud83c[\\udde6-\\uddff]){2}",Eb="[\\ud800-\\udbff][\\udc00-\\udfff]",Db="(?:"+Cb+"|"+vb+")"+"?",Ib="[\\ufe0e\\ufe0f]?",Tb=Ib+Db+("(?:\\u200d(?:"+[yb,xb,Eb].join("|")+")"+Ib+Db+")*"),Mb="(?:"+[yb+Cb+"?",Cb,xb,Eb,_b].join("|")+")",Sb=RegExp(vb+"(?="+vb+")|"+Mb+Tb,"g");const Nb=function(t){return t.match(Sb)||[]};const Bb=function(t){return wb(t)?Nb(t):Ab(t)};const Pb=function(t){return function(e){e=Zo(e);var n=wb(e)?Bb(e):void 0,o=n?n[0]:e.charAt(0),i=n?kb(n,1).join(""):e.slice(1);return o[t]()+i}}("toUpperCase"),zb=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,Lb=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i,Ob=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i,Rb=/^((\w+:(\/{2,})?)|(\W))/i,jb="Ctrl+K";function Fb(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});return e.setCustomProperty("link",!0,n),n}function Vb(t){return function(t){return t.replace(zb,"").match(Lb)}(t=String(t))?t:"#"}function Ub(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}function Hb(t,e){const n=(o=t,Ob.test(o)?"mailto:":e);var o;const i=!!n&&!Wb(t);return t&&i?n+t:t}function Wb(t){return Rb.test(t)}function Gb(t){window.open(t,"_blank","noopener")}class qb extends U{constructor(t){super(t),this.manualDecorators=new fo,this.automaticDecorators=new fb}restoreManualDecoratorStates(){for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement()||Ca(e.getSelectedBlocks());Ub(n,t.schema)?(this.value=n.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttribute(n,"linkHref")):(this.value=e.getAttribute("linkHref"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"));for(const t of this.manualDecorators)t.value=this._getDecoratorStateFromModel(t.id)}execute(t,e={}){const n=this.editor.model,o=n.document.selection,i=[],r=[];for(const t in e)e[t]?i.push(t):r.push(t);n.change((e=>{if(o.isCollapsed){const s=o.getFirstPosition();if(o.hasAttribute("linkHref")){const a=_p(s,"linkHref",o.getAttribute("linkHref"),n);e.setAttribute("linkHref",t,a),i.forEach((t=>{e.setAttribute(t,!0,a)})),r.forEach((t=>{e.removeAttribute(t,a)})),e.setSelection(e.createPositionAfter(a.end.nodeBefore))}else if(""!==t){const r=Bo(o.getAttributes());r.set("linkHref",t),i.forEach((t=>{r.set(t,!0)}));const{end:a}=n.insertContent(e.createText(t,r),s);e.setSelection(a)}["linkHref",...i,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(o.getRanges(),"linkHref"),a=[];for(const t of o.getSelectedBlocks())n.schema.checkAttribute(t,"linkHref")&&a.push(e.createRangeOn(t));const c=a.slice();for(const t of s)this._isRangeToUpdate(t,a)&&c.push(t);for(const n of c)e.setAttribute("linkHref",t,n),i.forEach((t=>{e.setAttribute(t,!0,n)})),r.forEach((t=>{e.removeAttribute(t,n)}))}}))}_getDecoratorStateFromModel(t){const e=this.editor.model,n=e.document.selection,o=n.getSelectedElement();return Ub(o,e.schema)?o.getAttribute(t):n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e)if(n.containsRange(t))return!1;return!0}}class Yb extends U{refresh(){const t=this.editor.model,e=t.document.selection,n=e.getSelectedElement();Ub(n,t.schema)?this.isEnabled=t.schema.checkAttribute(n,"linkHref"):this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}execute(){const t=this.editor,e=this.editor.model,n=e.document.selection,o=t.commands.get("link");e.change((t=>{const i=n.isCollapsed?[_p(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of i)if(t.removeAttribute("linkHref",e),o)for(const n of o.manualDecorators)t.removeAttribute(n.id,e)}))}}class $b{constructor({id:t,label:e,attributes:n,classes:o,styles:i,defaultValue:r}){this.id=t,this.set("value"),this.defaultValue=r,this.label=e,this.attributes=n,this.classes=o,this.styles=i}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}ka($b,B);var Kb=n(9773),Qb={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Kb.Z,Qb);Kb.Z.locals;const Zb="automatic",Jb=/^(https?:)?\/\//;class Xb extends F{static get pluginName(){return"LinkEditing"}static get requires(){return[sp,ep,jg]}constructor(t){super(t),t.config.define("link",{addTargetToExternalLinks:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"}),t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:Fb}),t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>Fb(Vb(t),e)}),t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:!0}},model:{key:"linkHref",value:t=>t.getAttribute("href")}}),t.commands.add("link",new qb(t)),t.commands.add("unlink",new Yb(t));const e=function(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};return e.forEach((t=>(t.label&&n[t.label]&&(t.label=n[t.label]),t))),e}(t.t,function(t){const e=[];if(t)for(const[n,o]of Object.entries(t)){const t=Object.assign({},o,{id:`link${Pb(n)}`});e.push(t)}return e}(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>t.mode===Zb))),this._enableManualDecorators(e.filter((t=>"manual"===t.mode)));t.plugins.get(sp).registerAttribute("linkHref"),function(t,e,n,o){const i=t.editing.view,r=new Set;i.document.registerPostFixer((i=>{const s=t.model.document.selection;let a=!1;if(s.hasAttribute(e)){const c=_p(s.getFirstPosition(),e,s.getAttribute(e),t.model),l=t.editing.mapper.toViewRange(c);for(const t of l.getItems())t.is("element",n)&&!t.hasClass(o)&&(i.addClass(o,t),r.add(t),a=!0)}return a})),t.conversion.for("editingDowncast").add((t=>{function e(){i.change((t=>{for(const e of r.values())t.removeClass(o,e),r.delete(e)}))}t.on("insert",e,{priority:"highest"}),t.on("remove",e,{priority:"highest"}),t.on("attribute",e,{priority:"highest"}),t.on("selection",e,{priority:"highest"})}))}(t,"linkHref","a","ck-link_selected"),this._enableLinkOpen(),this._enableInsertContentSelectionAttributesFixer(),this._enableClickingAfterLink(),this._enableTypingOverLink(),this._handleDeleteContentAfterLink()}_enableAutomaticDecorators(t){const e=this.editor,n=e.commands.get("link").automaticDecorators;e.config.get("link.addTargetToExternalLinks")&&n.add({id:"linkIsExternal",mode:Zb,callback:t=>Jb.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}}),n.add(t),n.length&&e.conversion.for("downcast").add(n.getDispatcher())}_enableManualDecorators(t){if(!t.length)return;const e=this.editor,n=e.commands.get("link").manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id}),t=new $b(t),n.add(t),e.conversion.for("downcast").attributeToElement({model:t.id,view:(e,{writer:n,schema:o},{item:i})=>{if((i.is("selection")||o.isInline(i))&&e){const e=n.createAttributeElement("a",t.attributes,{priority:5});t.classes&&n.addClass(t.classes,e);for(const o in t.styles)n.setStyle(o,t.styles[o],e);return n.setCustomProperty("link",!0,e),e}}}),e.conversion.for("upcast").elementToAttribute({view:{name:"a",...t._createPattern()},model:{key:t.id}})}))}_enableLinkOpen(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"click",((t,e)=>{if(!(cr.isMac?e.domEvent.metaKey:e.domEvent.ctrlKey))return;let n=e.domTarget;if("a"!=n.tagName.toLowerCase()&&(n=n.closest("a")),!n)return;const o=n.getAttribute("href");o&&(t.stop(),e.preventDefault(),Gb(o))}),{context:"$capture"}),this.listenTo(e,"keydown",((e,n)=>{const o=t.commands.get("link").value;o&&n.keyCode===ur.enter&&n.altKey&&(e.stop(),Gb(o))}))}_enableInsertContentSelectionAttributesFixer(){const t=this.editor.model,e=t.document.selection;this.listenTo(t,"insertContent",(()=>{const n=e.anchor.nodeBefore,o=e.anchor.nodeAfter;e.hasAttribute("linkHref")&&n&&n.hasAttribute("linkHref")&&(o&&o.hasAttribute("linkHref")||t.change((e=>{tw(e,nw(t.schema))})))}),{priority:"low"})}_enableClickingAfterLink(){const t=this.editor,e=t.model;t.editing.view.addObserver(Gd);let n=!1;this.listenTo(t.editing.view.document,"mousedown",(()=>{n=!0})),this.listenTo(t.editing.view.document,"selectionChange",(()=>{if(!n)return;n=!1;const t=e.document.selection;if(!t.isCollapsed)return;if(!t.hasAttribute("linkHref"))return;const o=t.getFirstPosition(),i=_p(o,"linkHref",t.getAttribute("linkHref"),e);(o.isTouching(i.start)||o.isTouching(i.end))&&e.change((t=>{tw(t,nw(e.schema))}))}))}_enableTypingOverLink(){const t=this.editor,e=t.editing.view;let n,o;this.listenTo(e.document,"delete",(()=>{o=!0}),{priority:"high"}),this.listenTo(t.model,"deleteContent",(()=>{const e=t.model.document.selection;e.isCollapsed||(o?o=!1:ew(t)&&function(t){const e=t.document.selection,n=e.getFirstPosition(),o=e.getLastPosition(),i=n.nodeAfter;if(!i)return!1;if(!i.is("$text"))return!1;if(!i.hasAttribute("linkHref"))return!1;const r=o.textNode||o.nodeBefore;if(i===r)return!0;return _p(n,"linkHref",i.getAttribute("linkHref"),t).containsRange(t.createRange(n,o),!0)}(t.model)&&(n=e.getAttributes()))}),{priority:"high"}),this.listenTo(t.model,"insertContent",((e,[i])=>{o=!1,ew(t)&&n&&(t.model.change((t=>{for(const[e,o]of n)t.setAttribute(e,o,i)})),n=null)}),{priority:"high"})}_handleDeleteContentAfterLink(){const t=this.editor,e=t.model,n=e.document.selection,o=t.editing.view;let i=!1,r=!1;this.listenTo(o.document,"delete",((t,e)=>{r="backward"===e.direction}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{i=!1;const t=n.getFirstPosition(),o=n.getAttribute("linkHref");if(!o)return;const r=_p(t,"linkHref",o,e);i=r.containsPosition(t)||r.end.isEqual(t)}),{priority:"high"}),this.listenTo(e,"deleteContent",(()=>{r&&(r=!1,i||t.model.enqueueChange((t=>{tw(t,nw(e.schema))})))}),{priority:"low"})}}function tw(t,e){t.removeSelectionAttribute("linkHref");for(const n of e)t.removeSelectionAttribute(n)}function ew(t){return t.model.change((t=>t.batch)).isTyping}function nw(t){return t.getDefinition("$text").allowAttributes.filter((t=>t.startsWith("link")))}var ow=n(7754),iw={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(ow.Z,iw);ow.Z.locals;class rw extends Th{constructor(t,e){super(t);const n=t.t;this.focusTracker=new va,this.keystrokes=new ya,this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Xh.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(n("Cancel"),Xh.cancel,"ck-button-cancel","cancel"),this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e),this.children=this._createFormChildren(e.manualDecorators),this._focusables=new rh,this._focusCycler=new yu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const o=["ck","ck-link-form","ck-responsive-form"];e.manualDecorators.length&&o.push("ck-link-form_layout-vertical","ck-vertical-form"),this.setTemplate({tag:"form",attributes:{class:o,tabindex:"-1"},children:this.children}),eu(this)}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>(t[e.name]=e.isOn,t)),{})}render(){super.render(),nu({view:this});[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t,e=new ug(this.locale,gg);return e.label=t("Link URL"),e}_createButton(t,e,n,o){const i=new lu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const o=new uu(this.locale);o.set({name:n.id,label:n.label,withText:!0}),o.bind("isOn").toMany([n,t],"value",((t,e)=>void 0===e&&void 0===t?n.defaultValue:t)),o.on("execute",(()=>{n.set("value",!o.isOn)})),e.add(o)}return e}_createFormChildren(t){const e=this.createCollection();if(e.add(this.urlInputView),t.length){const t=new Th;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}}),e.add(t)}return e.add(this.saveButtonView),e.add(this.cancelButtonView),e}}var sw=n(2347),aw={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(sw.Z,aw);sw.Z.locals;class cw extends Th{constructor(t){super(t);const e=t.t;this.focusTracker=new va,this.keystrokes=new ya,this.previewButtonView=this._createPreviewButton(),this.unlinkButtonView=this._createButton(e("Unlink"),'',"unlink"),this.editButtonView=this._createButton(e("Edit link"),Xh.pencil,"edit"),this.set("href"),this._focusables=new rh,this._focusCycler=new yu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();[this.previewButtonView,this.editButtonView,this.unlinkButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const o=new lu(this.locale);return o.set({label:t,icon:e,tooltip:!0}),o.delegate("execute").to(this,n),o}_createPreviewButton(){const t=new lu(this.locale),e=this.bindTemplate,n=this.t;return t.set({withText:!0,tooltip:n("Open link in new tab")}),t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&Vb(t))),target:"_blank",rel:"noopener noreferrer"}}),t.bind("label").to(this,"href",(t=>t||n("This link has no URL"))),t.bind("isEnabled").to(this,"href",(t=>!!t)),t.template.tag="a",t.template.eventListeners={},t}}const lw="link-ui";class dw extends F{static get requires(){return[_g]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(Wd),this.actionsView=this._createActionsView(),this.formView=this._createFormView(),this._balloon=t.plugins.get(_g),this._createToolbarLinkButton(),this._enableUserBalloonInteractions(),t.conversion.for("editingDowncast").markerToHighlight({model:lw,view:{classes:["ck-fake-link-selection"]}}),t.conversion.for("editingDowncast").markerToElement({model:lw,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy(),this.formView.destroy()}_createActionsView(){const t=this.editor,e=new cw(t.locale),n=t.commands.get("link"),o=t.commands.get("unlink");return e.bind("href").to(n,"value"),e.editButtonView.bind("isEnabled").to(n),e.unlinkButtonView.bind("isEnabled").to(o),this.listenTo(e,"edit",(()=>{this._addFormView()})),this.listenTo(e,"unlink",(()=>{t.execute("unlink"),this._hideUI()})),e.keystrokes.set("Esc",((t,e)=>{this._hideUI(),e()})),e.keystrokes.set(jb,((t,e)=>{this._addFormView(),e()})),e}_createFormView(){const t=this.editor,e=t.commands.get("link"),n=t.config.get("link.defaultProtocol"),o=new rw(t.locale,e);return o.urlInputView.fieldView.bind("value").to(e,"value"),o.urlInputView.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),o.saveButtonView.bind("isEnabled").to(e),this.listenTo(o,"submit",(()=>{const{value:e}=o.urlInputView.fieldView.element,i=Hb(e,n);t.execute("link",i,o.getDecoratorSwitchesState()),this._closeFormView()})),this.listenTo(o,"cancel",(()=>{this._closeFormView()})),o.keystrokes.set("Esc",((t,e)=>{this._closeFormView(),e()})),o}_createToolbarLinkButton(){const t=this.editor,e=t.commands.get("link"),n=t.t;t.keystrokes.set(jb,((t,n)=>{n(),e.isEnabled&&this._showUI(!0)})),t.ui.componentFactory.add("link",(t=>{const o=new lu(t);return o.isEnabled=!0,o.label=n("Link"),o.icon='',o.keystroke=jb,o.tooltip=!0,o.isToggleable=!0,o.bind("isEnabled").to(e,"isEnabled"),o.bind("isOn").to(e,"value",(t=>!!t)),this.listenTo(o,"execute",(()=>this._showUI(!0))),o}))}_enableUserBalloonInteractions(){const t=this.editor.editing.view.document;this.listenTo(t,"click",(()=>{this._getSelectedLinkElement()&&this._showUI()})),this.editor.keystrokes.set("Tab",((t,e)=>{this._areActionsVisible&&!this.actionsView.focusTracker.isFocused&&(this.actionsView.focus(),e())}),{priority:"high"}),this.editor.keystrokes.set("Esc",((t,e)=>{this._isUIVisible&&(this._hideUI(),e())})),tu({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){this._areActionsInPanel||this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(this._isFormInPanel)return;const t=this.editor.commands.get("link");this.formView.disableCssTransitions(),this._balloon.add({view:this.formView,position:this._getBalloonPositionData()}),this._balloon.visibleView===this.formView&&this.formView.urlInputView.fieldView.select(),this.formView.enableCssTransitions(),this.formView.urlInputView.fieldView.element.value=t.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates(),void 0!==t.value?this._removeFormView():this._hideUI()}_removeFormView(){this._isFormInPanel&&(this.formView.saveButtonView.focus(),this._balloon.remove(this.formView),this.editor.editing.view.focus(),this._hideFakeVisualSelection())}_showUI(t=!1){this._getSelectedLinkElement()?(this._areActionsVisible?this._addFormView():this._addActionsView(),t&&this._balloon.showStack("main")):(this._showFakeVisualSelection(),this._addActionsView(),t&&this._balloon.showStack("main"),this._addFormView()),this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel)return;const t=this.editor;this.stopListening(t.ui,"update"),this.stopListening(this._balloon,"change:visibleView"),t.editing.view.focus(),this._removeFormView(),this._balloon.remove(this.actionsView),this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor,e=t.editing.view.document;let n=this._getSelectedLinkElement(),o=r();const i=()=>{const t=this._getSelectedLinkElement(),e=r();n&&!t||!n&&e!==o?this._hideUI():this._isUIVisible&&this._balloon.updatePosition(this._getBalloonPositionData()),n=t,o=e};function r(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",i),this.listenTo(this._balloon,"change:visibleView",i)}get _isFormInPanel(){return this._balloon.hasView(this.formView)}get _areActionsInPanel(){return this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){return this._balloon.visibleView==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view,e=this.editor.model,n=t.document;let o=null;if(e.markers.has(lw)){const e=Array.from(this.editor.editing.mapper.markerNameToElements(lw)),n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));o=t.domConverter.viewRangeToDom(n)}else o=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())};return{target:o}}_getSelectedLinkElement(){const t=this.editor.editing.view,e=t.document.selection,n=e.getSelectedElement();if(e.isCollapsed||n&&am(n))return hw(e.getFirstPosition());{const n=e.getFirstRange().getTrimmed(),o=hw(n.start),i=hw(n.end);return o&&o==i&&t.createRangeIn(o).getTrimmed().isEqual(n)?o:null}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has(lw))e.updateMarker(lw,{range:n});else if(n.start.isAtEnd){const o=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker(lw,{usingOperation:!1,affectsData:!1,range:e.createRange(o,n.end)})}else e.addMarker(lw,{usingOperation:!1,affectsData:!1,range:n})}))}_hideFakeVisualSelection(){const t=this.editor.model;t.markers.has(lw)&&t.change((t=>{t.removeMarker(lw)}))}}function hw(t){return t.getAncestors().find((t=>{return(e=t).is("attributeElement")&&!!e.getCustomProperty("link");var e}))}const uw=new RegExp("(^|\\s)(((?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(((?!www\\.)|(www\\.))(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+(?:[a-z\\u00a1-\\uffff]{2,63})))(?::\\d{2,5})?(?:[/?#]\\S*)?)|((www.|(\\S+@))((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+(?:[a-z\\u00a1-\\uffff]{2,63})))$","i");class gw extends F{static get requires(){return[tm]}static get pluginName(){return"AutoLink"}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTypingHandling()}afterInit(){this._enableEnterHandling(),this._enableShiftEnterHandling()}_enableTypingHandling(){const t=this.editor,e=new rp(t.model,(t=>{if(!function(t){return t.length>4&&" "===t[t.length-1]&&" "!==t[t.length-2]}(t))return;const e=mw(t.substr(0,t.length-1));return e?{url:e}:void 0}));e.on("matched:data",((e,n)=>{const{batch:o,range:i,url:r}=n;if(!o.isTyping)return;const s=i.end.getShiftedBy(-1),a=s.getShiftedBy(-r.length),c=t.model.createRange(a,s);this._applyAutoLink(r,c)})),e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("enter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling)return;const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor,e=t.model,n=t.commands.get("shiftEnter");n&&n.on("execute",(()=>{const t=e.document.selection.getFirstPosition(),n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model,{text:n,range:o}=ip(t,e),i=mw(n);if(i){const t=e.createRange(o.end.getShiftedBy(-i.length),o.end);this._applyAutoLink(i,t)}}_applyAutoLink(t,e){const n=this.editor.model,o=Hb(t,this.editor.config.get("link.defaultProtocol"));this.isEnabled&&function(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}(e,n)&&Wb(o)&&!function(t){const e=t.start.nodeAfter;return e&&e.hasAttribute("linkHref")}(e)&&this._persistAutoLink(o,e)}_persistAutoLink(t,e){const n=this.editor.model,o=this.editor.plugins.get("Delete");n.enqueueChange((i=>{i.setAttribute("linkHref",t,e),n.enqueueChange((()=>{o.requestUndoOnBackspace()}))}))}}function mw(t){const e=uw.exec(t);return e?e[2]:null}class pw extends U{constructor(t,e){super(t),this.type=e}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,o=Array.from(n.selection.getSelectedBlocks()).filter((t=>kw(t,e.schema))),i=void 0!==t.forceValue?!t.forceValue:this.value;e.change((t=>{if(i){let e=o[o.length-1].nextSibling,n=Number.POSITIVE_INFINITY,i=[];for(;e&&"listItem"==e.name&&0!==e.getAttribute("listIndent");){const t=e.getAttribute("listIndent");t=n;)r>i.getAttribute("listIndent")&&(r=i.getAttribute("listIndent")),i.getAttribute("listIndent")==r&&t[e?"unshift":"push"](i),i=i[e?"previousSibling":"nextSibling"]}}function kw(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class bw extends U{constructor(t,e){super(t),this._indentBy="forward"==e?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let o=e.nextSibling;for(;o&&"listItem"==o.name&&o.getAttribute("listIndent")>e.getAttribute("listIndent");)n.push(o),o=o.nextSibling;this._indentBy<0&&(n=n.reverse());for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;n<0?t.rename(e,"paragraph"):t.setAttribute("listIndent",n,e)}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=Ca(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem"))return!1;if(this._indentBy>0){const e=t.getAttribute("listIndent"),n=t.getAttribute("listType");let o=t.previousSibling;for(;o&&o.is("element","listItem")&&o.getAttribute("listIndent")>=e;){if(o.getAttribute("listIndent")==e)return o.getAttribute("listType")==n;o=o.previousSibling}return!1}return!0}}function ww(t,e){const n=e.mapper,o=e.writer,i="numbered"==t.getAttribute("listType")?"ol":"ul",r=function(t){const e=t.createContainerElement("li");return e.getFillerOffset=xw,e}(o),s=o.createContainerElement(i,null);return o.insert(o.createPositionAt(s,0),r),n.bindElements(t,r),r}function Aw(t,e,n,o){const i=e.parent,r=n.mapper,s=n.writer;let a=r.toViewPosition(o.createPositionBefore(t));const c=vw(t.previousSibling,{sameIndent:!0,smallerIndent:!0,listIndent:t.getAttribute("listIndent")}),l=t.previousSibling;if(c&&c.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(c);a=s.breakContainer(s.createPositionAfter(t))}else if(l&&"listItem"==l.name){a=r.toViewPosition(o.createPositionAt(l,"end"));const t=r.findMappedViewAncestor(a),e=function(t){for(const e of t.getChildren())if("ul"==e.name||"ol"==e.name)return e;return null}(t);a=e?s.createPositionBefore(e):s.createPositionAt(t,"end")}else a=r.toViewPosition(o.createPositionBefore(t));if(a=Cw(a),s.insert(a,i),l&&"listItem"==l.name){const t=r.toViewElement(l),n=s.createRange(s.createPositionAt(t,0),a).getWalker({ignoreElementEnd:!0});for(const t of n)if(t.item.is("element","li")){const o=s.breakContainer(s.createPositionBefore(t.item)),i=t.item.parent,r=s.createPositionAt(e,"end");_w(s,r.nodeBefore,r.nodeAfter),s.move(s.createRangeOn(i),r),n.position=o}}else{const n=i.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let o=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(!(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")))break;o=e}o&&(s.breakContainer(s.createPositionAfter(o)),s.move(s.createRangeOn(o.parent),s.createPositionAt(e,"end")))}}_w(s,i,i.nextSibling),_w(s,i.previousSibling,i)}function _w(t,e,n){return!e||!n||"ul"!=e.name&&"ol"!=e.name||e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")?null:t.mergeContainers(t.createPositionAfter(e))}function Cw(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function vw(t,e){const n=!!e.sameIndent,o=!!e.smallerIndent,i=e.listIndent;let r=t;for(;r&&"listItem"==r.name;){const t=r.getAttribute("listIndent");if(n&&i==t||o&&i>t)return r;r="forward"===e.direction?r.nextSibling:r.previousSibling}return null}function yw(t,e,n,o){t.ui.componentFactory.add(e,(i=>{const r=t.commands.get(e),s=new lu(i);return s.set({label:n,icon:o,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{t.execute(e),t.editing.view.focus()})),s}))}function xw(){const t=!this.isEmpty&&("ul"==this.getChild(0).name||"ol"==this.getChild(0).name);return this.isEmpty||t?0:Li.call(this)}function Ew(t){return(e,n,o)=>{const i=o.consumable;if(!i.test(n.item,"insert")||!i.test(n.item,"attribute:listType")||!i.test(n.item,"attribute:listIndent"))return;i.consume(n.item,"insert"),i.consume(n.item,"attribute:listType"),i.consume(n.item,"attribute:listIndent");const r=n.item;Aw(r,ww(r,o),o,t)}}function Dw(t,e,n){if(!n.consumable.test(e.item,t.name))return;const o=n.mapper.toViewElement(e.item),i=n.writer;i.breakContainer(i.createPositionBefore(o)),i.breakContainer(i.createPositionAfter(o));const r=o.parent,s="numbered"==e.attributeNewValue?"ol":"ul";i.rename(s,r)}function Iw(t,e,n){n.consumable.consume(e.item,t.name);const o=n.mapper.toViewElement(e.item).parent,i=n.writer;_w(i,o,o.nextSibling),_w(i,o.previousSibling,o)}function Tw(t,e,n){if(n.consumable.test(e.item,t.name)&&"listItem"!=e.item.name){let t=n.mapper.toViewPosition(e.range.start);const o=n.writer,i=[];for(;("ul"==t.parent.name||"ol"==t.parent.name)&&(t=o.breakContainer(t),"li"==t.parent.name);){const e=t,n=o.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=o.remove(o.createRange(e,n));i.push(t)}t=o.createPositionAfter(t.parent)}if(i.length>0){for(let e=0;e0){const e=_w(o,n,n.nextSibling);e&&e.parent==n&&t.offset--}}_w(o,t.nodeBefore,t.nodeAfter)}}}function Mw(t,e,n){const o=n.mapper.toViewPosition(e.position),i=o.nodeBefore,r=o.nodeAfter;_w(n.writer,i,r)}function Sw(t,e,n){if(n.consumable.consume(e.viewItem,{name:!0})){const t=n.writer,o=t.createElement("listItem"),i=function(t){let e=0,n=t.parent;for(;n;){if(n.is("element","li"))e++;else{const t=n.previousSibling;t&&t.is("element","li")&&e++}n=n.parent}return e}(e.viewItem);t.setAttribute("listIndent",i,o);const r=e.viewItem.parent&&"ol"==e.viewItem.parent.name?"numbered":"bulleted";if(t.setAttribute("listType",r,o),!n.safeInsert(o,e.modelCursor))return;const s=function(t,e,n){const{writer:o,schema:i}=n;let r=o.createPositionAfter(t);for(const s of e)if("ul"==s.name||"ol"==s.name)r=n.convertItem(s,r).modelCursor;else{const e=n.convertItem(s,o.createPositionAt(t,"end")),a=e.modelRange.start.nodeAfter;a&&a.is("element")&&!i.checkChild(t,a.name)&&(t=e.modelCursor.parent.is("element","listItem")?e.modelCursor.parent:Lw(e.modelCursor),r=o.createPositionAfter(t))}return r}(o,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s),n.updateConversionResult(o,e)}}function Nw(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){const t=Array.from(e.viewItem.getChildren());for(const e of t){!(e.is("element","li")||Rw(e))&&e._remove()}}}function Bw(t,e,n){if(n.consumable.test(e.viewItem,{name:!0})){if(0===e.viewItem.childCount)return;const t=[...e.viewItem.getChildren()];let n=!1;for(const e of t)n&&!Rw(e)&&e._remove(),Rw(e)&&(n=!0)}}function Pw(t){return(e,n)=>{if(n.isPhantom)return;const o=n.modelPosition.nodeBefore;if(o&&o.is("element","listItem")){const e=n.mapper.toViewElement(o),i=e.getAncestors().find(Rw),r=t.createPositionAt(e,0).getWalker();for(const t of r){if("elementStart"==t.type&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}if("elementEnd"==t.type&&t.item==i){n.viewPosition=t.nextPosition;break}}}}}function zw(t,[e,n,o]){let i,r=e.is("documentFragment")?e.getChild(0):e;if(i=n?this.createSelection(n,o):this.document.selection,r&&r.is("element","listItem")){const t=i.getFirstPosition();let e=null;if(t.parent.is("element","listItem")?e=t.parent:t.nodeBefore&&t.nodeBefore.is("element","listItem")&&(e=t.nodeBefore),e){const t=e.getAttribute("listIndent");if(t>0)for(;r&&r.is("element","listItem");)r._setAttribute("listIndent",r.getAttribute("listIndent")+t),r=r.nextSibling}}}function Lw(t){const e=new Qa({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function Ow(t,e,n,o,i,r){const s=vw(e.nodeBefore,{sameIndent:!0,smallerIndent:!0,listIndent:t,foo:"b"}),a=i.mapper,c=i.writer,l=s?s.getAttribute("listIndent"):null;let d;if(s)if(l==t){const t=a.toViewElement(s).parent;d=c.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}else d=n;d=Cw(d);for(const t of[...o.getChildren()])Rw(t)&&(d=c.move(c.createRangeOn(t),d).end,_w(c,t,t.nextSibling),_w(c,t.previousSibling,t))}function Rw(t){return t.is("element","ol")||t.is("element","ul")}class jw extends F{static get pluginName(){return"ListEditing"}static get requires(){return[Gg,tm]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data,n=t.editing;var o;t.model.document.registerPostFixer((e=>function(t,e){const n=t.document.differ.getChanges(),o=new Map;let i=!1;for(const o of n)if("insert"==o.type&&"listItem"==o.name)r(o.position);else if("insert"==o.type&&"listItem"!=o.name){if("$text"!=o.name){const n=o.position.nodeAfter;n.hasAttribute("listIndent")&&(e.removeAttribute("listIndent",n),i=!0),n.hasAttribute("listType")&&(e.removeAttribute("listType",n),i=!0),n.hasAttribute("listStyle")&&(e.removeAttribute("listStyle",n),i=!0),n.hasAttribute("listReversed")&&(e.removeAttribute("listReversed",n),i=!0),n.hasAttribute("listStart")&&(e.removeAttribute("listStart",n),i=!0);for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem"))))r(e.previousPosition)}r(o.position.getShiftedBy(o.length))}else"remove"==o.type&&"listItem"==o.name?r(o.position):("attribute"==o.type&&"listIndent"==o.attributeKey||"attribute"==o.type&&"listType"==o.attributeKey)&&r(o.range.start);for(const t of o.values())s(t),a(t);return i;function r(t){const e=t.nodeBefore;if(e&&e.is("element","listItem")){let t=e;if(o.has(t))return;for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling)if(t=e,o.has(t))return;o.set(e,t)}else{const e=t.nodeAfter;e&&e.is("element","listItem")&&o.set(e,e)}}function s(t){let n=0,o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(r>n){let s;null===o?(o=r-n,s=n):(o>r&&(o=r),s=r-o),e.setAttribute("listIndent",s,t),i=!0}else o=null,n=t.getAttribute("listIndent")+1;t=t.nextSibling}}function a(t){let n=[],o=null;for(;t&&t.is("element","listItem");){const r=t.getAttribute("listIndent");if(o&&o.getAttribute("listIndent")>r&&(n=n.slice(0,r+1)),0!=r)if(n[r]){const o=n[r];t.getAttribute("listType")!=o&&(e.setAttribute("listType",o,t),i=!0)}else n[r]=t.getAttribute("listType");o=t,t=t.nextSibling}}}(t.model,e))),n.mapper.registerViewToModelLength("li",Fw),e.mapper.registerViewToModelLength("li",Fw),n.mapper.on("modelToViewPosition",Pw(n.view)),n.mapper.on("viewToModelPosition",(o=t.model,(t,e)=>{const n=e.viewPosition,i=n.parent,r=e.mapper;if("ul"==i.name||"ol"==i.name){if(n.isAtEnd){const t=r.toModelElement(n.nodeBefore),i=r.getModelLength(n.nodeBefore);e.modelPosition=o.createPositionBefore(t).getShiftedBy(i)}else{const t=r.toModelElement(n.nodeAfter);e.modelPosition=o.createPositionBefore(t)}t.stop()}else if("li"==i.name&&n.nodeBefore&&("ul"==n.nodeBefore.name||"ol"==n.nodeBefore.name)){const s=r.toModelElement(i);let a=1,c=n.nodeBefore;for(;c&&Rw(c);)a+=r.getModelLength(c),c=c.previousSibling;e.modelPosition=o.createPositionBefore(s).getShiftedBy(a),t.stop()}})),e.mapper.on("modelToViewPosition",Pw(n.view)),t.conversion.for("editingDowncast").add((e=>{e.on("insert",Tw,{priority:"high"}),e.on("insert:listItem",Ew(t.model)),e.on("attribute:listType:listItem",Dw,{priority:"high"}),e.on("attribute:listType:listItem",Iw,{priority:"low"}),e.on("attribute:listIndent:listItem",function(t){return(e,n,o)=>{if(!o.consumable.consume(n.item,"attribute:listIndent"))return;const i=o.mapper.toViewElement(n.item),r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,c=r.createRangeOn(s);r.remove(c),a&&a.nextSibling&&_w(r,a,a.nextSibling),Ow(n.attributeOldValue+1,n.range.start,c.start,i,o,t),Aw(n.item,i,o,t);for(const t of n.item.getChildren())o.consumable.consume(t,"insert")}}(t.model)),e.on("remove:listItem",function(t){return(e,n,o)=>{const i=o.mapper.toViewPosition(n.position).getLastMatchingPosition((t=>!t.item.is("element","li"))).nodeAfter,r=o.writer;r.breakContainer(r.createPositionBefore(i)),r.breakContainer(r.createPositionAfter(i));const s=i.parent,a=s.previousSibling,c=r.createRangeOn(s),l=r.remove(c);a&&a.nextSibling&&_w(r,a,a.nextSibling),Ow(o.mapper.toModelElement(i).getAttribute("listIndent")+1,n.position,c.start,i,o,t);for(const t of r.createRangeIn(l).getItems())o.mapper.unbindViewElement(t);e.stop()}}(t.model)),e.on("remove",Mw,{priority:"low"})})),t.conversion.for("dataDowncast").add((e=>{e.on("insert",Tw,{priority:"high"}),e.on("insert:listItem",Ew(t.model))})),t.conversion.for("upcast").add((t=>{t.on("element:ul",Nw,{priority:"high"}),t.on("element:ol",Nw,{priority:"high"}),t.on("element:li",Bw,{priority:"high"}),t.on("element:li",Sw)})),t.model.on("insertContent",zw,{priority:"high"}),t.commands.add("numberedList",new pw(t,"numbered")),t.commands.add("bulletedList",new pw(t,"bulleted")),t.commands.add("indentList",new bw(t,"forward")),t.commands.add("outdentList",new bw(t,"backward"));const i=n.view.document;this.listenTo(i,"enter",((t,e)=>{const n=this.editor.model.document,o=n.selection.getLastPosition().parent;n.selection.isCollapsed&&"listItem"==o.name&&o.isEmpty&&(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(i,"delete",((t,e)=>{if("backward"!==e.direction)return;const n=this.editor.model.document.selection;if(!n.isCollapsed)return;const o=n.getFirstPosition();if(!o.isAtStart)return;const i=o.parent;if("listItem"!==i.name)return;i.previousSibling&&"listItem"===i.previousSibling.name||(this.editor.execute("outdentList"),e.preventDefault(),t.stop())}),{context:"li"}),this.listenTo(t.editing.view.document,"tab",((e,n)=>{const o=n.shiftKey?"outdentList":"indentList";this.editor.commands.get(o).isEnabled&&(t.execute(o),n.stopPropagation(),n.preventDefault(),e.stop())}),{context:"li"})}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList")),n&&n.registerChildCommand(t.get("outdentList"))}}function Fw(t){let e=1;for(const n of t.getChildren())if("ul"==n.name||"ol"==n.name)for(const t of n.getChildren())e+=Fw(t);return e}class Vw extends F{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;yw(this.editor,"numberedList",t("Numbered List"),''),yw(this.editor,"bulletedList",t("Bulleted List"),'')}}function Uw(t,e){return t=>{t.on("attribute:url:media",n)};function n(n,o,i){if(!i.consumable.consume(o.item,n.name))return;const r=o.attributeNewValue,s=i.writer,a=i.mapper.toViewElement(o.item),c=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(c);const l=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),l)}}function Hw(t,e,n,o){return t.createContainerElement("figure",{class:"media"},[e.getMediaViewElement(t,n,o),t.createSlot()])}function Ww(t){const e=t.getSelectedElement();return e&&e.is("element","media")?e:null}function Gw(t,e,n,o){t.change((i=>{const r=i.createElement("media",{url:e});t.insertObject(r,n,null,{setSelection:"on",findOptimalPosition:o})}))}class qw extends U{refresh(){const t=this.editor.model,e=t.document.selection,n=Ww(e);this.value=n?n.getAttribute("url"):null,this.isEnabled=function(t){const e=t.getSelectedElement();return!!e&&"media"===e.name}(e)||function(t,e){let n=mm(t,e).start.parent;n.isEmpty&&!e.schema.isLimit(n)&&(n=n.parent);return e.schema.checkChild(n,"media")}(e,t)}execute(t){const e=this.editor.model,n=e.document.selection,o=Ww(n);o?e.change((e=>{e.setAttribute("url",t,o)})):Gw(e,t,n,!0)}}class Yw{constructor(t,e){const n=e.providers,o=e.extraProviders||[],i=new Set(e.removeProviders),r=n.concat(o).filter((t=>{const e=t.name;return e?!i.has(e):(l("media-embed-no-provider-name",{provider:t}),!1)}));this.locale=t,this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t)return new $w(this.locale);t=t.trim();for(const e of this.providerDefinitions){const n=e.html,o=bo(e.url);for(const e of o){const o=this._getUrlMatches(t,e);if(o)return new $w(this.locale,t,o,n)}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n)return n;let o=t.replace(/^https?:\/\//,"");return n=o.match(e),n||(o=o.replace(/^www\./,""),n=o.match(e),n||null)}}class $w{constructor(t,e,n,o){this.url=this._getValidUrl(e),this._locale=t,this._match=n,this._previewRenderer=o}getViewElement(t,e){const n={};let o;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){this.url&&(n["data-oembed-url"]=this.url),e.renderForEditingView&&(n.class="ck-media__wrapper");const i=this._getPreviewHtml(e);o=t.createRawElement("div",n,((t,e)=>{e.setContentOf(t,i)}))}else this.url&&(n.url=this.url),o=t.createEmptyElement(e.elementName,n);return t.setCustomProperty("media-content",!0,o),o}_getPreviewHtml(t){return this._previewRenderer?this._previewRenderer(this._match):this.url&&t.renderForEditingView?this._getPlaceholderHtml():""}_getPlaceholderHtml(){const t=new su,e=this._locale.t;t.content='',t.viewBox="0 0 64 42";return new sh({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[t]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url,"data-cke-tooltip-text":e("Open media in new tab")},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]}]}]}).render().outerHTML}_getValidUrl(t){return t?t.match(/^https?/)?t:"https://"+t:null}}var Kw=n(7442),Qw={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(Kw.Z,Qw);Kw.Z.locals;class Zw extends F{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t),t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:/^dailymotion\.com\/video\/(\w+)/,html:t=>``},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>``},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)(?:&t=(\d+))?/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)(?:\?t=(\d+))?/,/^youtube\.com\/embed\/([\w-]+)(?:\?start=(\d+))?/,/^youtu\.be\/([\w-]+)(?:\?t=(\d+))?/],html:t=>{const e=t[1],n=t[2];return``}},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>``},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]}),this.registry=new Yw(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion,i=t.config.get("mediaEmbed.previewsInData"),r=t.config.get("mediaEmbed.elementName"),s=this.registry;t.commands.add("mediaEmbed",new qw(t)),e.register("media",{inheritAllFrom:"$blockObject",allowAttributes:["url"]}),o.for("dataDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return Hw(e,s,n,{elementName:r,renderMediaPreview:n&&i})}}),o.for("dataDowncast").add(Uw(s,{elementName:r,renderMediaPreview:i})),o.for("editingDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const o=t.getAttribute("url");return function(t,e,n){return e.setCustomProperty("media",!0,t),cm(t,e,{label:n})}(Hw(e,s,o,{elementName:r,renderForEditingView:!0}),e,n("media widget"))}}),o.for("editingDowncast").add(Uw(s,{elementName:r,renderForEditingView:!0})),o.for("upcast").elementToElement({view:t=>["oembed",r].includes(t.name)&&t.getAttribute("url")?{name:!0}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":!0}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n))return e.createElement("media",{url:n})}}).add((t=>{t.on("element:figure",(function(t,e,n){if(!n.consumable.consume(e.viewItem,{name:!0,classes:"media"}))return;const{modelRange:o,modelCursor:i}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=o,e.modelCursor=i;Ca(o.getItems())||n.consumable.revert(e.viewItem,{name:!0,classes:"media"})}))}))}}const Jw=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class Xw extends F{static get requires(){return[Vm,tm,Np]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t),this._timeoutId=null,this._positionToInsert=null}init(){const t=this.editor,e=t.model.document;this.listenTo(t.plugins.get("ClipboardPipeline"),"inputTransformation",(()=>{const t=e.selection.getFirstRange(),n=pd.fromPosition(t.start);n.stickiness="toPrevious";const o=pd.fromPosition(t.end);o.stickiness="toNext",e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,o),n.detach(),o.detach()}),{priority:"high"})})),t.commands.get("undo").on("execute",(()=>{this._timeoutId&&(Ao.window.clearTimeout(this._timeoutId),this._positionToInsert.detach(),this._timeoutId=null,this._positionToInsert=null)}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor,o=n.plugins.get(Zw).registry,i=new fc(t,e),r=i.getWalker({ignoreElementEnd:!0});let s="";for(const t of r)t.item.is("$textProxy")&&(s+=t.item.data);if(s=s.trim(),!s.match(Jw))return void i.detach();if(!o.hasMedia(s))return void i.detach();n.commands.get("mediaEmbed").isEnabled?(this._positionToInsert=pd.fromPosition(t),this._timeoutId=Ao.window.setTimeout((()=>{n.model.change((t=>{let e;this._timeoutId=null,t.remove(i),i.detach(),"$graveyard"!==this._positionToInsert.root.rootName&&(e=this._positionToInsert),Gw(n.model,s,e,!1),this._positionToInsert.detach(),this._positionToInsert=null})),n.plugins.get("Delete").requestUndoOnBackspace()}),100)):i.detach()}}var tA=n(9292),eA={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(tA.Z,eA);tA.Z.locals;class nA extends Th{constructor(t,e){super(e);const n=e.t;this.focusTracker=new va,this.keystrokes=new ya,this.set("mediaURLInputValue",""),this.urlInputView=this._createUrlInput(),this.saveButtonView=this._createButton(n("Save"),Xh.check,"ck-button-save"),this.saveButtonView.type="submit",this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t)),this.cancelButtonView=this._createButton(n("Cancel"),Xh.cancel,"ck-button-cancel","cancel"),this._focusables=new rh,this._focusCycler=new yu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this._validators=t,this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]}),eu(this)}render(){super.render(),nu({view:this});[this.urlInputView,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t),this.listenTo(this.urlInputView.element,"selectstart",((t,e)=>{e.stopPropagation()}),{priority:"high"})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.urlInputView.errorText=e,!1}return!0}resetFormStatus(){this.urlInputView.errorText=null,this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t,e=new ug(this.locale,gg),n=e.fieldView;return this._urlInputViewInfoDefault=t("Paste the media URL in the input."),this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster."),e.label=t("Media URL"),e.infoText=this._urlInputViewInfoDefault,n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault,this.mediaURLInputValue=n.element.value.trim()})),e}_createButton(t,e,n,o){const i=new lu(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}}class oA extends F{static get requires(){return[Zw]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor,e=t.commands.get("mediaEmbed"),n=t.plugins.get(Zw).registry;t.ui.componentFactory.add("mediaEmbed",(o=>{const i=qu(o),r=new nA(function(t,e){return[e=>{if(!e.url.length)return t("The URL must not be empty.")},n=>{if(!e.hasMedia(n.url))return t("This media URL is not supported.")}]}(t.t,n),t.locale);return this._setUpDropdown(i,r,e,t),this._setUpForm(i,r,e),i}))}_setUpDropdown(t,e,n){const o=this.editor,i=o.t,r=t.buttonView;t.bind("isEnabled").to(n),t.panelView.children.add(e),r.set({label:i("Insert media"),icon:'',tooltip:!0}),r.on("open",(()=>{e.disableCssTransitions(),e.url=n.value||"",e.urlInputView.fieldView.select(),e.enableCssTransitions()}),{priority:"low"}),t.on("submit",(()=>{e.isValid()&&(o.execute("mediaEmbed",e.url),o.editing.view.focus())})),t.on("change:isOpen",(()=>e.resetFormStatus())),t.on("cancel",(()=>{o.editing.view.focus()}))}_setUpForm(t,e,n){e.delegate("submit","cancel").to(t),e.urlInputView.bind("value").to(n,"value"),e.urlInputView.bind("isReadOnly").to(n,"isEnabled",(t=>!t))}}var iA=n(4652),rA={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Xr()(iA.Z,rA);iA.Z.locals;function sA(t,e,n,{blockElements:o,inlineObjectElements:i}){let r=n.createPositionAt(t,"forward"==e?"after":"before");return r=r.getLastMatchingPosition((({item:t})=>t.is("element")&&!o.includes(t.name)&&!i.includes(t.name)),{direction:e}),"forward"==e?r.nodeAfter:r.nodeBefore}function aA(t,e){return!!t&&t.is("element")&&e.includes(t.name)}function cA(t,e){if(!t.childCount)return;const n=new qd(t.document),o=function(t,e){const n=e.createRangeIn(t),o=new Po({name:/^p|h\d+$/,styles:{"mso-list":/.*/}}),i=[];for(const t of n)if("elementStart"===t.type&&o.match(t.item)){const e=hA(t.item);i.push({element:t.item,id:e.id,order:e.order,indent:e.indent})}return i}(t,n);if(!o.length)return;let i=null,r=1;o.forEach(((t,s)=>{const a=function(t,e){if(!t)return!0;if(t.id!==e.id)return e.indent-t.indent!=1;const n=e.element.previousSibling;if(!n)return!0;return o=n,!(o.is("element","ol")||o.is("element","ul"));var o}(o[s-1],t),c=a?null:o[s-1],l=(h=t,(d=c)?h.indent-d.indent:h.indent-1);var d,h;if(a&&(i=null,r=1),!i||0!==l){const o=function(t,e){const n=new RegExp(`@list l${t.id}:level${t.indent}\\s*({[^}]*)`,"gi"),o=/mso-level-number-format:([^;]{0,100});/gi,i=/mso-level-start-at:\s{0,100}([0-9]{0,10})\s{0,100};/gi,r=n.exec(e);let s="decimal",a="ol",c=null;if(r&&r[1]){const e=o.exec(r[1]);if(e&&e[1]&&(s=e[1].trim(),a="bullet"!==s&&"image"!==s?"ol":"ul"),"bullet"===s){const e=function(t){const e=function(t){if(t.getChild(0).is("$text"))return null;for(const e of t.getChildren()){if(!e.is("element","span"))continue;const t=e.getChild(0);return t.is("$text")?t:t.getChild(0)}}(t);if(!e)return null;const n=e._data;if("o"===n)return"circle";if("·"===n)return"disc";if("§"===n)return"square";return null}(t.element);e&&(s=e)}else{const t=i.exec(r[1]);t&&t[1]&&(c=parseInt(t[1]))}}return{type:a,startIndex:c,style:lA(s)}}(t,e);if(i){if(t.indent>r){const t=i.getChild(i.childCount-1),e=t.getChild(t.childCount-1);i=dA(o,e,n),r+=1}else if(t.indent1&&n.setAttribute("start",t.startIndex,i),i}function hA(t){const e={},n=t.getStyle("mso-list");if(n){const t=n.match(/(^|\s{1,100})l(\d+)/i),o=n.match(/\s{0,100}lfo(\d+)/i),i=n.match(/\s{0,100}level(\d+)/i);t&&o&&i&&(e.id=t[2],e.order=o[1],e.indent=i[1])}return e}const uA=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class gA{constructor(t){this.document=t}isActive(t){return uA.test(t)}execute(t){const e=new qd(this.document),{body:n}=t._parsedData;!function(t,e){for(const n of t.getChildren())if(n.is("element","b")&&"normal"===n.getStyle("font-weight")){const o=t.getChildIndex(n);e.remove(n),e.insertChild(o,n.getChildren(),t)}}(n,e),function(t,e){for(const n of e.createRangeIn(t)){const t=n.item;if(t.is("element","li")){const n=t.getChild(0);n&&n.is("element","p")&&e.unwrapElement(n)}}}(n,e),function(t,e){const n=new tr(e.document.stylesProcessor),o=new ps(n,{renderingMode:"data"}),i=o.blockElements,r=o.inlineObjectElements,s=[];for(const n of e.createRangeIn(t)){const t=n.item;if(t.is("element","br")){const n=sA(t,"forward",e,{blockElements:i,inlineObjectElements:r}),o=sA(t,"backward",e,{blockElements:i,inlineObjectElements:r}),a=aA(n,i);(aA(o,i)||a)&&s.push(t)}}for(const t of s)t.hasClass("Apple-interchange-newline")?e.remove(t):e.replace(t,e.createElement("p"))}(n,e),t.content=n}}function mA(t,e){if(!t.childCount)return;const n=new qd,o=function(t,e){const n=e.createRangeIn(t),o=new Po({name:/v:(.+)/}),i=[];for(const t of n){if("elementStart"!=t.type)continue;const e=t.item,n=e.previousSibling&&e.previousSibling.name||null;o.match(e)&&e.getAttribute("o:gfxdata")&&"v:shapetype"!==n&&i.push(t.item.getAttribute("id"))}return i}(t,n);!function(t,e,n){const o=n.createRangeIn(e),i=new Po({name:"img"}),r=[];for(const e of o)if(i.match(e.item)){const n=e.item,o=n.getAttribute("v:shapes")?n.getAttribute("v:shapes").split(" "):[];o.length&&o.every((e=>t.indexOf(e)>-1))?r.push(n):n.getAttribute("src")||r.push(n)}for(const t of r)n.remove(t)}(o,t,n),function(t,e){const n=e.createRangeIn(t),o=new Po({name:/v:(.+)/}),i=[];for(const t of n)"elementStart"==t.type&&o.match(t.item)&&i.push(t.item);for(const t of i)e.remove(t)}(t,n);const i=function(t,e){const n=e.createRangeIn(t),o=new Po({name:"img"}),i=[];for(const t of n)o.match(t.item)&&t.item.getAttribute("src").startsWith("file://")&&i.push(t.item);return i}(t,n);i.length&&function(t,e,n){if(t.length===e.length)for(let o=0;oString.fromCharCode(parseInt(t,16)))).join(""))}const fA=//i,kA=/xmlns:o="urn:schemas-microsoft-com/i;class bA{constructor(t){this.document=t}isActive(t){return fA.test(t)||kA.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;cA(e,n),mA(e,t.dataTransfer.getData("text/rtf")),t.content=e}}function wA(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1===e.length?" ":Array(e.length+1).join(" ").substr(0,e.length)))}function AA(t,e){const n=new DOMParser,o=function(t){return wA(wA(t)).replace(/([^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/ <\//g," ").replace(/ <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}(function(t){const e="