diff --git a/app/Http/Controllers/RefundController.php b/app/Http/Controllers/RefundController.php
deleted file mode 100644
index dc8fe468..00000000
--- a/app/Http/Controllers/RefundController.php
+++ /dev/null
@@ -1,66 +0,0 @@
- "INV-1234",
- "customer" => "Okta",
- "seller" => "dodo",
- "total" => "Rp. 15000",
- "date" => "July 19, 2023 ",
- "status"=>"Process Refund"
- ],
- [
- "orderId" => "INV-0000",
- "customer" => "Selvi",
- "seller" => "dedo",
- "total" => "Rp. 11000",
- "date" => "August 19, 2023 ",
- "status"=>"Process Refund"
- ],
- [
- "orderId" => "INV-2313",
- "customer" => "Septa",
- "seller" => "dido",
- "total" => "Rp. 15000",
- "date" => "July 29, 2023 ",
- "status"=>"Process Refund"
- ],
- [
- "orderId" => "INV-5664",
- "customer" => "Padia",
- "seller" => "dedo",
- "total" => "Rp. 14000",
- "date" => "July 18, 2023 ",
- "status"=>"Process Refund"
- ],
- [
- "orderId" => "INV-9090",
- "customer" => "hantu",
- "seller" => "dado",
- "total" => "Rp. 45000",
- "date" => "June 19, 2023 ",
- "status"=>"Process Refund"
- ]
- ];
-
- public static $detail_refund=[
- [
- "orderId" => "INV-9090",
- "customer" => "hantu",
- "seller" => "dado",
- "total" => "Rp. 45000",
- "date" => "June 19, 2023 ",
- "complaint" =>" Lorem ipsum dolor sit, amet consectetur adipisicing elit. Aliquam inventore, sit enim iure itaque fuga voluptates alias, eveniet quos ex reiciendis! Dolore mollitia ea inventore, excepturi hic fugiat id, magnam molestias sint ut enim repellendus, cum dolorum dolores sapiente adipisci tempora nihil omnis! Accusantium, non perspiciatis? Molestias modi debitis perferendis reprehenderit excepturi voluptates? Sit incidunt consequuntur iusto odit sapiente inventore nemo commodi, quam vero magnam temporibus ducimus praesentium assumenda blanditiis possimus perferendis totam placeat maiores. Quae ut id libero atque pariatur veritatis rerum culpa tempore consequatur quod corrupti corporis nobis quia repellendus iste quidem illum, voluptates aspernatur cumque officia. Tenetur.",
- "image"=>"assets/images/dashboard/img_2.jpg"
- ]
- ];
- public static function HistoryRefund(){
- return self::$history_refund;
-
- }
- public static function DetailRefund(){
- return self::$detail_refund;
- }
-}
\ No newline at end of file
diff --git a/app/Models/transaction.php b/app/Models/transaction.php
deleted file mode 100644
index 3a3ab8f3..00000000
--- a/app/Models/transaction.php
+++ /dev/null
@@ -1,74 +0,0 @@
- 'INV-1234',
- 'customer' => 'Jilhan',
- 'seller' => 'dodo',
- 'total' => 'Rp. 15000',
- 'date' => 'July 19, 2023 ',
- 'status' => 'paid',
- ],
- [
- 'orderId' => 'INV-0000',
- 'customer' => 'hmmm',
- 'seller' => 'dodo',
- 'total' => 'Rp. 11000',
- 'date' => 'August 19, 2023 ',
- 'status' => 'pending',
- ],
- [
- 'orderId' => 'INV-2313',
- 'customer' => 'nurul',
- 'seller' => 'dido',
- 'total' => 'Rp. 15000',
- 'date' => 'July 29, 2023 ',
- 'status' => 'unpaid',
- ],
- [
- 'orderId' => 'INV-5664',
- 'customer' => 'raihan',
- 'seller' => 'dedo',
- 'total' => 'Rp. 14000',
- 'date' => 'July 18, 2023 ',
- 'status' => 'pending',
- ],
- [
- 'orderId' => 'INV-9090',
- 'customer' => 'testing',
- 'seller' => 'dado',
- 'total' => 'Rp. 45000',
- 'date' => 'June 19, 2023 ',
- 'status' => 'paid',
- ],
- ];
-
- private static $detail_transaction = [
- [
- 'tracking_number' => '09102919209',
- 'orderId' => 'INV-9090',
- 'status' => 'Pending',
- 'estimated' => 'June 20, 2023',
- 'tracking_detail1' => 'August 10: processed payment',
- 'tracking_detail2' => 'August 12: payment in system',
- 'tracking_detail3' => 'August 14: payment has been received by the seller',
- ],
- ];
-
- public static function allTransactions()
- {
- return self::$list_transaction;
- }
-
- public static function allDetailTransactions()
- {
- return self::$detail_transaction;
- }
-}
diff --git a/composer.json b/composer.json
index e1fb4493..181dfc70 100644
--- a/composer.json
+++ b/composer.json
@@ -9,7 +9,8 @@
"guzzlehttp/guzzle": "^7.2",
"laravel/framework": "^10.10",
"laravel/sanctum": "^3.2",
- "laravel/tinker": "^2.8"
+ "laravel/tinker": "^2.8",
+ "realrashid/sweet-alert": "^7.1"
},
"require-dev": {
"fakerphp/faker": "^1.9.1",
diff --git a/composer.lock b/composer.lock
index d817faa3..aa33680c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "aa322c53454393ed775cfe4807d54a50",
+ "content-hash": "a47c4c4dd117ce52e4b5d03d7487513b",
"packages": [
{
"name": "brick/math",
@@ -3042,6 +3042,96 @@
],
"time": "2023-04-15T23:01:58+00:00"
},
+ {
+ "name": "realrashid/sweet-alert",
+ "version": "v7.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/realrashid/sweet-alert.git",
+ "reference": "769f951053cd3363fd7fb7a1dd30f9828b619b44"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/realrashid/sweet-alert/zipball/769f951053cd3363fd7fb7a1dd30f9828b619b44",
+ "reference": "769f951053cd3363fd7fb7a1dd30f9828b619b44",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/framework": "^5.6|^6.0|^7.0|^8.0|^9.0|^9.11|9.14.*|^10.0",
+ "php": "^7.2|^8.0|^8.1"
+ },
+ "require-dev": {
+ "symfony/thanks": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "RealRashid\\SweetAlert\\SweetAlertServiceProvider"
+ ],
+ "aliases": {
+ "Alert": "RealRashid\\SweetAlert\\Facades\\Alert"
+ }
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "RealRashid\\SweetAlert\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Rashid Ali",
+ "email": "realrashid05@gmail.com",
+ "homepage": "https://realrashid.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "Laravel Sweet Alert Is A Package For Laravel Provides An Easy Way To Display Alert Messages Using The SweetAlert2 Library.",
+ "homepage": "https://github.com/realrashid/sweet-alert",
+ "keywords": [
+ "alert",
+ "laravel",
+ "laravel-package",
+ "notifier",
+ "noty",
+ "sweet-alert",
+ "sweet-alert2",
+ "toast"
+ ],
+ "support": {
+ "docs": "https://realrashid.github.io/sweet-alert/",
+ "email": "realrashid05@gmail.com",
+ "issues": "https://github.com/realrashid/sweet-alert/issues",
+ "source": "https://github.com/realrashid/sweet-alert"
+ },
+ "funding": [
+ {
+ "url": "https://ko-fi.com/realrashid",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.buymeacoffee.com/realrashid",
+ "type": "custom"
+ },
+ {
+ "url": "https://issuehunt.io/r/realrashid",
+ "type": "issuehunt"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/realrashid/sweet-alert",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-08-07T19:23:17+00:00"
+ },
{
"name": "symfony/console",
"version": "v6.3.2",
@@ -8001,5 +8091,5 @@
"php": "^8.1"
},
"platform-dev": [],
- "plugin-api-version": "2.6.0"
+ "plugin-api-version": "2.2.0"
}
diff --git a/config/app.php b/config/app.php
index 4c231b47..c944f046 100644
--- a/config/app.php
+++ b/config/app.php
@@ -159,6 +159,7 @@ return [
/*
* Package Service Providers...
*/
+ RealRashid\SweetAlert\SweetAlertServiceProvider::class,
/*
* Application Service Providers...
@@ -184,5 +185,6 @@ return [
'aliases' => Facade::defaultAliases()->merge([
// 'Example' => App\Facades\Example::class,
])->toArray(),
+ 'Alert' => RealRashid\SweetAlert\Facades\Alert::class,
];
diff --git a/config/sweetalert.php b/config/sweetalert.php
new file mode 100644
index 00000000..5f938310
--- /dev/null
+++ b/config/sweetalert.php
@@ -0,0 +1,269 @@
+ env('SWEET_ALERT_THEME', 'default'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | CDN LINK
+ |--------------------------------------------------------------------------
+ | By default SweetAlert2 use its local sweetalert.all.js
+ | file.
+ | However, you can use its cdn if you want.
+ |
+ */
+
+ 'cdn' => env('SWEET_ALERT_CDN'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Always load the sweetalert.all.js
+ |--------------------------------------------------------------------------
+ | There might be situations where you will always want the sweet alert
+ | js package to be there for you. (for eg. you might use it heavily to
+ | show notifications or you might want to use the native js) then this
+ | might be handy.
+ |
+ */
+
+ 'alwaysLoadJS' => env('SWEET_ALERT_ALWAYS_LOAD_JS', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Never load the sweetalert.all.js
+ |--------------------------------------------------------------------------
+ | If you want to handle the sweet alert js package by yourself
+ | (for eg. you might want to use laravel mix) then this can be
+ | handy.
+ | If you set always load js to true & never load js to false,
+ | it's going to prioritize the never load js.
+ |
+ | alwaysLoadJs = true & neverLoadJs = true => js will not be loaded
+ | alwaysLoadJs = true & neverLoadJs = false => js will be loaded
+ | alwaysLoadJs = false & neverLoadJs = false => js will be loaded when
+ | you set alert/toast by using the facade/helper functions.
+ */
+
+ 'neverLoadJS' => env('SWEET_ALERT_NEVER_LOAD_JS', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | AutoClose Timer
+ |--------------------------------------------------------------------------
+ |
+ | This is for the all Modal windows.
+ | For specific modal just use the autoClose() helper method.
+ |
+ */
+
+ 'timer' => env('SWEET_ALERT_TIMER', 5000),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Width
+ |--------------------------------------------------------------------------
+ |
+ | Modal window width, including paddings (box-sizing: border-box).
+ | Can be in px or %.
+ | The default width is 32rem.
+ | This is for the all Modal windows.
+ | for particular modal just use the width() helper method.
+ */
+
+ 'width' => env('SWEET_ALERT_WIDTH', '32rem'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Height Auto
+ |--------------------------------------------------------------------------
+ | By default, SweetAlert2 sets html's and body's CSS height to auto !important.
+ | If this behavior isn't compatible with your project's layout,
+ | set heightAuto to false.
+ |
+ */
+
+ 'height_auto' => env('SWEET_ALERT_HEIGHT_AUTO', true),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Padding
+ |--------------------------------------------------------------------------
+ |
+ | Modal window padding.
+ | Can be in px or %.
+ | The default padding is 1.25rem.
+ | This is for the all Modal windows.
+ | for particular modal just use the padding() helper method.
+ */
+
+ 'padding' => env('SWEET_ALERT_PADDING', '1.25rem'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Background
+ |--------------------------------------------------------------------------
+ |
+ | Modal window background
+ | (CSS background property).
+ | The default background is '#fff'.
+ */
+
+ 'background' => env('SWEET_ALERT_BACKGROUND', '#fff'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Animation
+ |--------------------------------------------------------------------------
+ | Custom animation with [Animate.css](https://daneden.github.io/animate.css/)
+ | If set to false, modal CSS animation will be use default ones.
+ | For specific modal just use the animation() helper method.
+ |
+ */
+
+ 'animation' => [
+ 'enable' => env('SWEET_ALERT_ANIMATION_ENABLE', false),
+ ],
+
+ 'animatecss' => env('SWEET_ALERT_ANIMATECSS', 'https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | ShowConfirmButton
+ |--------------------------------------------------------------------------
+ | If set to false, a "Confirm"-button will not be shown.
+ | It can be useful when you're using custom HTML description.
+ | This is for the all Modal windows.
+ | For specific modal just use the showConfirmButton() helper method.
+ |
+ */
+
+ 'show_confirm_button' => env('SWEET_ALERT_CONFIRM_BUTTON', true),
+
+ /*
+ |--------------------------------------------------------------------------
+ | ShowCloseButton
+ |--------------------------------------------------------------------------
+ | If set to true, a "Close"-button will be shown,
+ | which the user can click on to dismiss the modal.
+ | This is for the all Modal windows.
+ | For specific modal just use the showCloseButton() helper method.
+ |
+ */
+
+ 'show_close_button' => env('SWEET_ALERT_CLOSE_BUTTON', false),
+
+ /*
+ |-----------------------------------------------------------------------
+ | Confirm/Cancel Button Text
+ |-----------------------------------------------------------------------
+ | Change the default text of the modal buttons.
+ | The texts translations will be handled by Laravel at runtime.
+ | This is for the all Modal windows.
+ | For specific modal just use the confirmButtonText() and
+ | cancelButtonText() helper methods.
+ */
+
+ 'button_text' => [
+ 'confirm' => env('SWEET_ALERT_CONFIRM_BUTTON_TEXT', 'OK'),
+ 'cancel' => env('SWEET_ALERT_CANCEL_BUTTON_TEXT', 'Cancel'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Toast position
+ |--------------------------------------------------------------------------
+ | Modal window or toast position, can be 'top',
+ | 'top-start', 'top-end', 'center', 'center-start',
+ | 'center-end', 'bottom', 'bottom-start', or 'bottom-end'.
+ | For specific modal just use the position() helper method.
+ |
+ */
+
+ 'toast_position' => env('SWEET_ALERT_TOAST_POSITION', 'top-end'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Progress Bar
+ |--------------------------------------------------------------------------
+ | If set to true, a progress bar at the bottom of a popup will be shown.
+ | It can be useful with toasts.
+ |
+ */
+
+ 'timer_progress_bar' => env('SWEET_ALERT_TIMER_PROGRESS_BAR', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Middleware
+ |--------------------------------------------------------------------------
+ | Modal window or toast, config for the Middleware
+ |
+ */
+
+ 'middleware' => [
+
+ 'autoClose' => env('SWEET_ALERT_MIDDLEWARE_AUTO_CLOSE', false),
+
+ 'toast_position' => env('SWEET_ALERT_MIDDLEWARE_TOAST_POSITION', 'top-end'),
+
+ 'toast_close_button' => env('SWEET_ALERT_MIDDLEWARE_TOAST_CLOSE_BUTTON', true),
+
+ 'timer' => env('SWEET_ALERT_MIDDLEWARE_ALERT_CLOSE_TIME', 6000),
+
+ 'auto_display_error_messages' => env('SWEET_ALERT_AUTO_DISPLAY_ERROR_MESSAGES', true),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Class
+ |--------------------------------------------------------------------------
+ | A custom CSS class for the modal:
+ |
+ */
+
+ 'customClass' => [
+
+ 'container' => env('SWEET_ALERT_CONTAINER_CLASS'),
+ 'popup' => env('SWEET_ALERT_POPUP_CLASS'),
+ 'header' => env('SWEET_ALERT_HEADER_CLASS'),
+ 'title' => env('SWEET_ALERT_TITLE_CLASS'),
+ 'closeButton' => env('SWEET_ALERT_CLOSE_BUTTON_CLASS'),
+ 'icon' => env('SWEET_ALERT_ICON_CLASS'),
+ 'image' => env('SWEET_ALERT_IMAGE_CLASS'),
+ 'content' => env('SWEET_ALERT_CONTENT_CLASS'),
+ 'input' => env('SWEET_ALERT_INPUT_CLASS'),
+ 'actions' => env('SWEET_ALERT_ACTIONS_CLASS'),
+ 'confirmButton' => env('SWEET_ALERT_CONFIRM_BUTTON_CLASS'),
+ 'cancelButton' => env('SWEET_ALERT_CANCEL_BUTTON_CLASS'),
+ 'footer' => env('SWEET_ALERT_FOOTER_CLASS'),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | confirmDelete
+ |--------------------------------------------------------------------------
+ | customize the configuration options of the confirmation popup.
+ |
+ */
+
+ 'confirm_delete_confirm_button_text' => env('SWEET_ALERT_CONFIRM_DELETE_CONFIRM_BUTTON_TEXT', 'Yes, delete it!'),
+ 'confirm_delete_confirm_button_color' => env('SWEET_ALERT_CONFIRM_DELETE_CONFIRM_BUTTON_COLOR'),
+ 'confirm_delete_cancel_button_color' => env('SWEET_ALERT_CONFIRM_DELETE_CANCEL_BUTTON_COLOR', '#d33'),
+ 'confirm_delete_cancel_button_text' => env('SWEET_ALERT_CONFIRM_DELETE_CANCEL_BUTTON_TEXT', 'Cancel'),
+ 'confirm_delete_show_cancel_button' => env('SWEET_ALERT_CONFIRM_DELETE_SHOW_CANCEL_BUTTON', true),
+ 'confirm_delete_show_close_button' => env('SWEET_ALERT_CONFIRM_DELETE_SHOW_CLOSE_BUTTON', false),
+ 'confirm_delete_icon' => env('SWEET_ALERT_CONFIRM_DELETE_ICON', 'warning'),
+ 'confirm_delete_show_loader_on_confirm' => env('SWEET_ALERT_CONFIRM_DELETE_SHOW_LOADER_ON_CONFIRM', true),
+
+
+];
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..90dc4868
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,11 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "sweetalert2": {
+ "version": "11.7.27",
+ "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.7.27.tgz",
+ "integrity": "sha512-QbRXGQn1sb7HEhzA/K2xtWIwQHh/qkSbb1w6jYcTql2xy17876lTREEt1D4X6Q0x2wHtfUjKJ+Cb8IVkRoq7DQ=="
+ }
+ }
+}
diff --git a/package.json b/package.json
index e543e0d1..89bf51fb 100644
--- a/package.json
+++ b/package.json
@@ -9,5 +9,8 @@
"axios": "^1.1.2",
"laravel-vite-plugin": "^0.7.5",
"vite": "^4.0.0"
+ },
+ "dependencies": {
+ "sweetalert2": "^11.7.27"
}
}
diff --git a/public/assets/css/main.css b/public/assets/css/main.css
new file mode 100644
index 00000000..e29ef200
--- /dev/null
+++ b/public/assets/css/main.css
@@ -0,0 +1,54 @@
+
+/*--------------------------------------------------------------
+# Profie Page
+--------------------------------------------------------------*/
+.profile .profile-card img {
+ max-width: 120px;
+}
+
+.profile .profile-card h2 {
+ font-size: 24px;
+ font-weight: 700;
+ color: #2c384e;
+ margin: 10px 0 0 0;
+}
+
+.profile .profile-card h3 {
+ font-size: 18px;
+}
+
+.profile .profile-card .social-links a {
+ font-size: 20px;
+ display: inline-block;
+ color: rgba(1, 41, 112, 0.5);
+ line-height: 0;
+ margin-right: 10px;
+ transition: 0.3s;
+}
+
+.profile .profile-card .social-links a:hover {
+ color: #012970;
+}
+
+.profile .profile-overview .row {
+ margin-bottom: 20px;
+ font-size: 15px;
+}
+
+.profile .profile-overview .card-title {
+ color: #012970;
+}
+
+.profile .profile-overview .label {
+ font-weight: 600;
+ color: rgba(1, 41, 112, 0.6);
+}
+
+.profile .profile-edit label {
+ font-weight: 600;
+ color: rgba(1, 41, 112, 0.6);
+}
+
+.profile .profile-edit img {
+ max-width: 120px;
+}
diff --git a/public/assets/css/style.css b/public/assets/css/style.css
index f646474a..68961532 100644
--- a/public/assets/css/style.css
+++ b/public/assets/css/style.css
@@ -4206,4 +4206,9 @@ body:not(.sidebar-mini) .sidebar-style-2 .sidebar-menu li.active ul.dropdown-men
top: 0;
width: 20px;
height: 20px;
-}
\ No newline at end of file
+}
+
+.flex-container {
+ display: flex;
+ justify-content: space-between; /* Menggeser elemen ke kanan */
+}
diff --git a/public/assets/img/avatar/ok.jpg b/public/assets/img/avatar/ok.jpg
new file mode 100644
index 00000000..64a268ac
Binary files /dev/null and b/public/assets/img/avatar/ok.jpg differ
diff --git a/public/assets/js/main.js b/public/assets/js/main.js
new file mode 100644
index 00000000..5cdf2676
--- /dev/null
+++ b/public/assets/js/main.js
@@ -0,0 +1,321 @@
+/**
+* Template Name: NiceAdmin
+* Updated: Aug 30 2023 with Bootstrap v5.3.1
+* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
+* Author: BootstrapMade.com
+* License: https://bootstrapmade.com/license/
+*/
+(function() {
+ "use strict";
+
+ /**
+ * Easy selector helper function
+ */
+ const select = (el, all = false) => {
+ el = el.trim()
+ if (all) {
+ return [...document.querySelectorAll(el)]
+ } else {
+ return document.querySelector(el)
+ }
+ }
+
+ /**
+ * Easy event listener function
+ */
+ const on = (type, el, listener, all = false) => {
+ if (all) {
+ select(el, all).forEach(e => e.addEventListener(type, listener))
+ } else {
+ select(el, all).addEventListener(type, listener)
+ }
+ }
+
+ /**
+ * Easy on scroll event listener
+ */
+ const onscroll = (el, listener) => {
+ el.addEventListener('scroll', listener)
+ }
+
+ /**
+ * Sidebar toggle
+ */
+ if (select('.toggle-sidebar-btn')) {
+ on('click', '.toggle-sidebar-btn', function(e) {
+ select('body').classList.toggle('toggle-sidebar')
+ })
+ }
+
+ /**
+ * Search bar toggle
+ */
+ if (select('.search-bar-toggle')) {
+ on('click', '.search-bar-toggle', function(e) {
+ select('.search-bar').classList.toggle('search-bar-show')
+ })
+ }
+
+ /**
+ * Navbar links active state on scroll
+ */
+ let navbarlinks = select('#navbar .scrollto', true)
+ const navbarlinksActive = () => {
+ let position = window.scrollY + 200
+ navbarlinks.forEach(navbarlink => {
+ if (!navbarlink.hash) return
+ let section = select(navbarlink.hash)
+ if (!section) return
+ if (position >= section.offsetTop && position <= (section.offsetTop + section.offsetHeight)) {
+ navbarlink.classList.add('active')
+ } else {
+ navbarlink.classList.remove('active')
+ }
+ })
+ }
+ window.addEventListener('load', navbarlinksActive)
+ onscroll(document, navbarlinksActive)
+
+ /**
+ * Toggle .header-scrolled class to #header when page is scrolled
+ */
+ let selectHeader = select('#header')
+ if (selectHeader) {
+ const headerScrolled = () => {
+ if (window.scrollY > 100) {
+ selectHeader.classList.add('header-scrolled')
+ } else {
+ selectHeader.classList.remove('header-scrolled')
+ }
+ }
+ window.addEventListener('load', headerScrolled)
+ onscroll(document, headerScrolled)
+ }
+
+ /**
+ * Back to top button
+ */
+ let backtotop = select('.back-to-top')
+ if (backtotop) {
+ const toggleBacktotop = () => {
+ if (window.scrollY > 100) {
+ backtotop.classList.add('active')
+ } else {
+ backtotop.classList.remove('active')
+ }
+ }
+ window.addEventListener('load', toggleBacktotop)
+ onscroll(document, toggleBacktotop)
+ }
+
+ /**
+ * Initiate tooltips
+ */
+ var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
+ var tooltipList = tooltipTriggerList.map(function(tooltipTriggerEl) {
+ return new bootstrap.Tooltip(tooltipTriggerEl)
+ })
+
+ /**
+ * Initiate quill editors
+ */
+ if (select('.quill-editor-default')) {
+ new Quill('.quill-editor-default', {
+ theme: 'snow'
+ });
+ }
+
+ if (select('.quill-editor-bubble')) {
+ new Quill('.quill-editor-bubble', {
+ theme: 'bubble'
+ });
+ }
+
+ if (select('.quill-editor-full')) {
+ new Quill(".quill-editor-full", {
+ modules: {
+ toolbar: [
+ [{
+ font: []
+ }, {
+ size: []
+ }],
+ ["bold", "italic", "underline", "strike"],
+ [{
+ color: []
+ },
+ {
+ background: []
+ }
+ ],
+ [{
+ script: "super"
+ },
+ {
+ script: "sub"
+ }
+ ],
+ [{
+ list: "ordered"
+ },
+ {
+ list: "bullet"
+ },
+ {
+ indent: "-1"
+ },
+ {
+ indent: "+1"
+ }
+ ],
+ ["direction", {
+ align: []
+ }],
+ ["link", "image", "video"],
+ ["clean"]
+ ]
+ },
+ theme: "snow"
+ });
+ }
+
+ /**
+ * Initiate TinyMCE Editor
+ */
+ const useDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
+ const isSmallScreen = window.matchMedia('(max-width: 1023.5px)').matches;
+
+ tinymce.init({
+ selector: 'textarea.tinymce-editor',
+ plugins: 'preview importcss searchreplace autolink autosave save directionality code visualblocks visualchars fullscreen image link media template codesample table charmap pagebreak nonbreaking anchor insertdatetime advlist lists wordcount help charmap quickbars emoticons',
+ editimage_cors_hosts: ['picsum.photos'],
+ menubar: 'file edit view insert format tools table help',
+ toolbar: 'undo redo | bold italic underline strikethrough | fontfamily fontsize blocks | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | forecolor backcolor removeformat | pagebreak | charmap emoticons | fullscreen preview save print | insertfile image media template link anchor codesample | ltr rtl',
+ toolbar_sticky: true,
+ toolbar_sticky_offset: isSmallScreen ? 102 : 108,
+ autosave_ask_before_unload: true,
+ autosave_interval: '30s',
+ autosave_prefix: '{path}{query}-{id}-',
+ autosave_restore_when_empty: false,
+ autosave_retention: '2m',
+ image_advtab: true,
+ link_list: [{
+ title: 'My page 1',
+ value: 'https://www.tiny.cloud'
+ },
+ {
+ title: 'My page 2',
+ value: 'http://www.moxiecode.com'
+ }
+ ],
+ image_list: [{
+ title: 'My page 1',
+ value: 'https://www.tiny.cloud'
+ },
+ {
+ title: 'My page 2',
+ value: 'http://www.moxiecode.com'
+ }
+ ],
+ image_class_list: [{
+ title: 'None',
+ value: ''
+ },
+ {
+ title: 'Some class',
+ value: 'class-name'
+ }
+ ],
+ importcss_append: true,
+ file_picker_callback: (callback, value, meta) => {
+ /* Provide file and text for the link dialog */
+ if (meta.filetype === 'file') {
+ callback('https://www.google.com/logos/google.jpg', {
+ text: 'My text'
+ });
+ }
+
+ /* Provide image and alt text for the image dialog */
+ if (meta.filetype === 'image') {
+ callback('https://www.google.com/logos/google.jpg', {
+ alt: 'My alt text'
+ });
+ }
+
+ /* Provide alternative source and posted for the media dialog */
+ if (meta.filetype === 'media') {
+ callback('movie.mp4', {
+ source2: 'alt.ogg',
+ poster: 'https://www.google.com/logos/google.jpg'
+ });
+ }
+ },
+ templates: [{
+ title: 'New Table',
+ description: 'creates a new table',
+ content: '
'
+ },
+ {
+ title: 'Starting my story',
+ description: 'A cure for writers block',
+ content: 'Once upon a time...'
+ },
+ {
+ title: 'New list with dates',
+ description: 'New List with dates',
+ content: ''
+ }
+ ],
+ template_cdate_format: '[Date Created (CDATE): %m/%d/%Y : %H:%M:%S]',
+ template_mdate_format: '[Date Modified (MDATE): %m/%d/%Y : %H:%M:%S]',
+ height: 600,
+ image_caption: true,
+ quickbars_selection_toolbar: 'bold italic | quicklink h2 h3 blockquote quickimage quicktable',
+ noneditable_class: 'mceNonEditable',
+ toolbar_mode: 'sliding',
+ contextmenu: 'link image table',
+ skin: useDarkMode ? 'oxide-dark' : 'oxide',
+ content_css: useDarkMode ? 'dark' : 'default',
+ content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }'
+ });
+
+ /**
+ * Initiate Bootstrap validation check
+ */
+ var needsValidation = document.querySelectorAll('.needs-validation')
+
+ Array.prototype.slice.call(needsValidation)
+ .forEach(function(form) {
+ form.addEventListener('submit', function(event) {
+ if (!form.checkValidity()) {
+ event.preventDefault()
+ event.stopPropagation()
+ }
+
+ form.classList.add('was-validated')
+ }, false)
+ })
+
+ /**
+ * Initiate Datatables
+ */
+ const datatables = select('.datatable', true)
+ datatables.forEach(datatable => {
+ new simpleDatatables.DataTable(datatable);
+ })
+
+ /**
+ * Autoresize echart charts
+ */
+ const mainContainer = select('#main');
+ if (mainContainer) {
+ setTimeout(() => {
+ new ResizeObserver(function() {
+ select('.echart', true).forEach(getEchart => {
+ echarts.getInstanceByDom(getEchart).resize();
+ })
+ }).observe(mainContainer);
+ }, 200);
+ }
+
+ })();
\ No newline at end of file
diff --git a/public/vendor/sweetalert/sweetalert.all.js b/public/vendor/sweetalert/sweetalert.all.js
new file mode 100644
index 00000000..39b5c3bd
--- /dev/null
+++ b/public/vendor/sweetalert/sweetalert.all.js
@@ -0,0 +1,6 @@
+/*!
+* sweetalert2 v11.7.20
+* Released under the MIT License.
+*/
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Sweetalert2=t()}(this,(function(){"use strict";const e={},t=t=>new Promise((o=>{if(!t)return o();const n=window.scrollX,i=window.scrollY;e.restoreFocusTimeout=setTimeout((()=>{e.previousActiveElement instanceof HTMLElement?(e.previousActiveElement.focus(),e.previousActiveElement=null):document.body&&document.body.focus(),o()}),100),window.scrollTo(n,i)}));var o={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const n="swal2-",i=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"].reduce(((e,t)=>(e[t]=n+t,e)),{}),s=["success","warning","info","question","error"].reduce(((e,t)=>(e[t]=n+t,e)),{}),r="SweetAlert2:",a=e=>e.charAt(0).toUpperCase()+e.slice(1),l=e=>{console.warn(`${r} ${"object"==typeof e?e.join(" "):e}`)},c=e=>{console.error(`${r} ${e}`)},u=[],d=(e,t)=>{var o;o=`"${e}" is deprecated and will be removed in the next major release. Please use "${t}" instead.`,u.includes(o)||(u.push(o),l(o))},p=e=>"function"==typeof e?e():e,m=e=>e&&"function"==typeof e.toPromise,g=e=>m(e)?e.toPromise():Promise.resolve(e),h=e=>e&&Promise.resolve(e)===e,f=()=>document.body.querySelector(`.${i.container}`),b=e=>{const t=f();return t?t.querySelector(e):null},y=e=>b(`.${e}`),w=()=>y(i.popup),v=()=>y(i.icon),C=()=>y(i.title),A=()=>y(i["html-container"]),k=()=>y(i.image),B=()=>y(i["progress-steps"]),$=()=>y(i["validation-message"]),E=()=>b(`.${i.actions} .${i.confirm}`),x=()=>b(`.${i.actions} .${i.cancel}`),P=()=>b(`.${i.actions} .${i.deny}`),T=()=>b(`.${i.loader}`),L=()=>y(i.actions),S=()=>y(i.footer),O=()=>y(i["timer-progress-bar"]),M=()=>y(i.close),j=()=>{const e=w();if(!e)return[];const t=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),o=Array.from(t).sort(((e,t)=>{const o=parseInt(e.getAttribute("tabindex")||"0"),n=parseInt(t.getAttribute("tabindex")||"0");return o>n?1:o"-1"!==e.getAttribute("tabindex")));return[...new Set(o.concat(i))].filter((e=>X(e)))},I=()=>q(document.body,i.shown)&&!q(document.body,i["toast-shown"])&&!q(document.body,i["no-backdrop"]),H=()=>{const e=w();return!!e&&q(e,i.toast)},D=(e,t)=>{if(e.textContent="",t){const o=(new DOMParser).parseFromString(t,"text/html"),n=o.querySelector("head");n&&Array.from(n.childNodes).forEach((t=>{e.appendChild(t)}));const i=o.querySelector("body");i&&Array.from(i.childNodes).forEach((t=>{t instanceof HTMLVideoElement||t instanceof HTMLAudioElement?e.appendChild(t.cloneNode(!0)):e.appendChild(t)}))}},q=(e,t)=>{if(!t)return!1;const o=t.split(/\s+/);for(let t=0;t{if(((e,t)=>{Array.from(e.classList).forEach((o=>{Object.values(i).includes(o)||Object.values(s).includes(o)||Object.values(t.showClass||{}).includes(o)||e.classList.remove(o)}))})(e,t),t.customClass&&t.customClass[o]){if("string"!=typeof t.customClass[o]&&!t.customClass[o].forEach)return void l(`Invalid type of customClass.${o}! Expected string or iterable object, got "${typeof t.customClass[o]}"`);R(e,t.customClass[o])}},N=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(`.${i.popup} > .${i[t]}`);case"checkbox":return e.querySelector(`.${i.popup} > .${i.checkbox} input`);case"radio":return e.querySelector(`.${i.popup} > .${i.radio} input:checked`)||e.querySelector(`.${i.popup} > .${i.radio} input:first-child`);case"range":return e.querySelector(`.${i.popup} > .${i.range} input`);default:return e.querySelector(`.${i.popup} > .${i.input}`)}},F=e=>{if(e.focus(),"file"!==e.type){const t=e.value;e.value="",e.value=t}},_=(e,t,o)=>{e&&t&&("string"==typeof t&&(t=t.split(/\s+/).filter(Boolean)),t.forEach((t=>{Array.isArray(e)?e.forEach((e=>{o?e.classList.add(t):e.classList.remove(t)})):o?e.classList.add(t):e.classList.remove(t)})))},R=(e,t)=>{_(e,t,!0)},U=(e,t)=>{_(e,t,!1)},z=(e,t)=>{const o=Array.from(e.children);for(let e=0;e{o===`${parseInt(o)}`&&(o=parseInt(o)),o||0===parseInt(o)?e.style[t]="number"==typeof o?`${o}px`:o:e.style.removeProperty(t)},K=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flex";e&&(e.style.display=t)},Y=e=>{e&&(e.style.display="none")},Z=(e,t,o,n)=>{const i=e.querySelector(t);i&&(i.style[o]=n)},J=function(e,t){t?K(e,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"flex"):Y(e)},X=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),G=e=>!!(e.scrollHeight>e.clientHeight),Q=e=>{const t=window.getComputedStyle(e),o=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return o>0||n>0},ee=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const o=O();X(o)&&(t&&(o.style.transition="none",o.style.width="100%"),setTimeout((()=>{o.style.transition=`width ${e/1e3}s linear`,o.style.width="0%"}),10))},te=()=>"undefined"==typeof window||"undefined"==typeof document,oe=`\n \n`.replace(/(^|\n)\s*/g,""),ne=()=>{e.currentInstance.resetValidationMessage()},ie=e=>{const t=(()=>{const e=f();return!!e&&(e.remove(),U([document.documentElement,document.body],[i["no-backdrop"],i["toast-shown"],i["has-column"]]),!0)})();if(te())return void c("SweetAlert2 requires document to initialize");const o=document.createElement("div");o.className=i.container,t&&R(o,i["no-transition"]),D(o,oe);const n="string"==typeof(s=e.target)?document.querySelector(s):s;var s;n.appendChild(o),(e=>{const t=w();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&R(f(),i.rtl)})(n),(()=>{const e=w(),t=z(e,i.input),o=z(e,i.file),n=e.querySelector(`.${i.range} input`),s=e.querySelector(`.${i.range} output`),r=z(e,i.select),a=e.querySelector(`.${i.checkbox} input`),l=z(e,i.textarea);t.oninput=ne,o.onchange=ne,r.onchange=ne,a.onchange=ne,l.oninput=ne,n.oninput=()=>{ne(),s.value=n.value},n.onchange=()=>{ne(),s.value=n.value}})()},se=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?re(e,t):e&&D(t,e)},re=(e,t)=>{e.jquery?ae(t,e):D(t,e.toString())},ae=(e,t)=>{if(e.textContent="",0 in t)for(let o=0;o in t;o++)e.appendChild(t[o].cloneNode(!0));else e.appendChild(t.cloneNode(!0))},le=(()=>{if(te())return!1;const e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&void 0!==e.style[o])return t[o];return!1})(),ce=(e,t)=>{const o=L(),n=T();o&&n&&(t.showConfirmButton||t.showDenyButton||t.showCancelButton?K(o):Y(o),V(o,t,"actions"),function(e,t,o){const n=E(),s=P(),r=x();if(!n||!s||!r)return;ue(n,"confirm",o),ue(s,"deny",o),ue(r,"cancel",o),function(e,t,o,n){if(!n.buttonsStyling)return void U([e,t,o],i.styled);R([e,t,o],i.styled),n.confirmButtonColor&&(e.style.backgroundColor=n.confirmButtonColor,R(e,i["default-outline"]));n.denyButtonColor&&(t.style.backgroundColor=n.denyButtonColor,R(t,i["default-outline"]));n.cancelButtonColor&&(o.style.backgroundColor=n.cancelButtonColor,R(o,i["default-outline"]))}(n,s,r,o),o.reverseButtons&&(o.toast?(e.insertBefore(r,n),e.insertBefore(s,n)):(e.insertBefore(r,t),e.insertBefore(s,t),e.insertBefore(n,t)))}(o,n,t),D(n,t.loaderHtml||""),V(n,t,"loader"))};function ue(e,t,o){const n=a(t);J(e,o[`show${n}Button`],"inline-block"),D(e,o[`${t}ButtonText`]||""),e.setAttribute("aria-label",o[`${t}ButtonAriaLabel`]||""),e.className=i[t],V(e,o,`${t}Button`)}const de=(e,t)=>{const o=f();o&&(!function(e,t){"string"==typeof t?e.style.background=t:t||R([document.documentElement,document.body],i["no-backdrop"])}(o,t.backdrop),function(e,t){if(!t)return;t in i?R(e,i[t]):(l('The "position" parameter is not valid, defaulting to "center"'),R(e,i.center))}(o,t.position),function(e,t){if(!t)return;R(e,i[`grow-${t}`])}(o,t.grow),V(o,t,"container"))};const pe=["input","file","range","select","radio","checkbox","textarea"],me=e=>{if(!ve[e.input])return void c(`Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "${e.input}"`);const t=ye(e.input),o=ve[e.input](t,e);K(t),e.inputAutoFocus&&setTimeout((()=>{F(o)}))},ge=(e,t)=>{const o=N(w(),e);if(o){(e=>{for(let t=0;t{const t=ye(e.input);"object"==typeof e.customClass&&R(t,e.customClass.input)},fe=(e,t)=>{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},be=(e,t,o)=>{if(o.inputLabel){const n=document.createElement("label"),s=i["input-label"];n.setAttribute("for",e.id),n.className=s,"object"==typeof o.customClass&&R(n,o.customClass.inputLabel),n.innerText=o.inputLabel,t.insertAdjacentElement("beforebegin",n)}},ye=e=>z(w(),i[e]||i.input),we=(e,t)=>{["string","number"].includes(typeof t)?e.value=`${t}`:h(t)||l(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof t}"`)},ve={};ve.text=ve.email=ve.password=ve.number=ve.tel=ve.url=(e,t)=>(we(e,t.inputValue),be(e,e,t),fe(e,t),e.type=t.input,e),ve.file=(e,t)=>(be(e,e,t),fe(e,t),e),ve.range=(e,t)=>{const o=e.querySelector("input"),n=e.querySelector("output");return we(o,t.inputValue),o.type=t.input,we(n,t.inputValue),be(o,e,t),e},ve.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const o=document.createElement("option");D(o,t.inputPlaceholder),o.value="",o.disabled=!0,o.selected=!0,e.appendChild(o)}return be(e,e,t),e},ve.radio=e=>(e.textContent="",e),ve.checkbox=(e,t)=>{const o=N(w(),"checkbox");o.value="1",o.checked=Boolean(t.inputValue);const n=e.querySelector("span");return D(n,t.inputPlaceholder),o},ve.textarea=(e,t)=>{we(e,t.inputValue),fe(e,t),be(e,e,t);return setTimeout((()=>{if("MutationObserver"in window){const o=parseInt(window.getComputedStyle(w()).width);new MutationObserver((()=>{if(!document.body.contains(e))return;const n=e.offsetWidth+(i=e,parseInt(window.getComputedStyle(i).marginLeft)+parseInt(window.getComputedStyle(i).marginRight));var i;n>o?w().style.width=`${n}px`:W(w(),"width",t.width)})).observe(e,{attributes:!0,attributeFilter:["style"]})}})),e};const Ce=(e,t)=>{const n=A();n&&(V(n,t,"htmlContainer"),t.html?(se(t.html,n),K(n,"block")):t.text?(n.textContent=t.text,K(n,"block")):Y(n),((e,t)=>{const n=w(),s=o.innerParams.get(e),r=!s||t.input!==s.input;pe.forEach((e=>{const o=z(n,i[e]);ge(e,t.inputAttributes),o.className=i[e],r&&Y(o)})),t.input&&(r&&me(t),he(t))})(e,t))},Ae=(e,t)=>{for(const[o,n]of Object.entries(s))t.icon!==o&&U(e,n);R(e,t.icon&&s[t.icon]),$e(e,t),ke(),V(e,t,"icon")},ke=()=>{const e=w();if(!e)return;const t=window.getComputedStyle(e).getPropertyValue("background-color"),o=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{if(!t.icon&&!t.iconHtml)return;let o=e.innerHTML,n="";if(t.iconHtml)n=Ee(t.iconHtml);else if("success"===t.icon)n='\n
\n \n
\n
\n',o=o.replace(/ style=".*?"/g,"");else if("error"===t.icon)n='\n \n \n \n \n';else if(t.icon){n=Ee({question:"?",warning:"!",info:"i"}[t.icon])}o.trim()!==n.trim()&&D(e,n)},$e=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const o of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])Z(e,o,"backgroundColor",t.iconColor);Z(e,".swal2-success-ring","borderColor",t.iconColor)}},Ee=e=>`${e}
`,xe=(e,t)=>{const o=t.showClass||{};e.className=`${i.popup} ${X(e)?o.popup:""}`,t.toast?(R([document.documentElement,document.body],i["toast-shown"]),R(e,i.toast)):R(e,i.modal),V(e,t,"popup"),"string"==typeof t.customClass&&R(e,t.customClass),t.icon&&R(e,i[`icon-${t.icon}`])},Pe=e=>{const t=document.createElement("li");return R(t,i["progress-step"]),D(t,e),t},Te=e=>{const t=document.createElement("li");return R(t,i["progress-step-line"]),e.progressStepsDistance&&W(t,"width",e.progressStepsDistance),t},Le=(e,t)=>{((e,t)=>{const o=f(),n=w();if(o&&n){if(t.toast){W(o,"width",t.width),n.style.width="100%";const e=T();e&&n.insertBefore(e,v())}else W(n,"width",t.width);W(n,"padding",t.padding),t.color&&(n.style.color=t.color),t.background&&(n.style.background=t.background),Y($()),xe(n,t)}})(0,t),de(0,t),((e,t)=>{const o=B();if(!o)return;const{progressSteps:n,currentProgressStep:s}=t;n&&0!==n.length&&void 0!==s?(K(o),o.textContent="",s>=n.length&&l("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),n.forEach(((e,r)=>{const a=Pe(e);if(o.appendChild(a),r===s&&R(a,i["active-progress-step"]),r!==n.length-1){const e=Te(t);o.appendChild(e)}}))):Y(o)})(0,t),((e,t)=>{const n=o.innerParams.get(e),i=v();if(i){if(n&&t.icon===n.icon)return Be(i,t),void Ae(i,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(s).indexOf(t.icon))return c(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${t.icon}"`),void Y(i);K(i),Be(i,t),Ae(i,t),R(i,t.showClass&&t.showClass.icon)}else Y(i)}})(e,t),((e,t)=>{const o=k();o&&(t.imageUrl?(K(o,""),o.setAttribute("src",t.imageUrl),o.setAttribute("alt",t.imageAlt||""),W(o,"width",t.imageWidth),W(o,"height",t.imageHeight),o.className=i.image,V(o,t,"image")):Y(o))})(0,t),((e,t)=>{const o=C();o&&(J(o,t.title||t.titleText,"block"),t.title&&se(t.title,o),t.titleText&&(o.innerText=t.titleText),V(o,t,"title"))})(0,t),((e,t)=>{const o=M();o&&(D(o,t.closeButtonHtml||""),V(o,t,"closeButton"),J(o,t.showCloseButton),o.setAttribute("aria-label",t.closeButtonAriaLabel||""))})(0,t),Ce(e,t),ce(0,t),((e,t)=>{const o=S();o&&(J(o,t.footer),t.footer&&se(t.footer,o),V(o,t,"footer"))})(0,t);const n=w();"function"==typeof t.didRender&&n&&t.didRender(n)},Se=()=>E()&&E().click(),Oe=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Me=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},je=(e,t)=>{const o=j();if(o.length)return(e+=t)===o.length?e=0:-1===e&&(e=o.length-1),void o[e].focus();w().focus()},Ie=["ArrowRight","ArrowDown"],He=["ArrowLeft","ArrowUp"],De=(e,t,n)=>{const i=o.innerParams.get(e);i&&(t.isComposing||229===t.keyCode||(i.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?qe(e,t,i):"Tab"===t.key?Ve(t):[...Ie,...He].includes(t.key)?Ne(t.key):"Escape"===t.key&&Fe(t,i,n)))},qe=(e,t,o)=>{if(p(o.allowEnterKey)&&t.target&&e.getInput()&&t.target instanceof HTMLElement&&t.target.outerHTML===e.getInput().outerHTML){if(["textarea","file"].includes(o.input))return;Se(),t.preventDefault()}},Ve=e=>{const t=e.target,o=j();let n=-1;for(let e=0;e{const t=[E(),P(),x()];if(document.activeElement instanceof HTMLElement&&!t.includes(document.activeElement))return;const o=Ie.includes(e)?"nextElementSibling":"previousElementSibling";let n=document.activeElement;for(let e=0;e{p(t.allowEscapeKey)&&(e.preventDefault(),o(Oe.esc))};var _e={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Re=()=>{Array.from(document.body.children).forEach((e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")}))},Ue="undefined"!=typeof window&&!!window.GestureEvent,ze=()=>{const e=f();let t;e.ontouchstart=e=>{t=We(e)},e.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}},We=e=>{const t=e.target,o=f();return!Ke(e)&&!Ye(e)&&(t===o||!G(o)&&t instanceof HTMLElement&&"INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&(!G(A())||!A().contains(t)))},Ke=e=>e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType,Ye=e=>e.touches&&e.touches.length>1;let Ze=null;const Je=()=>{null===Ze&&document.body.scrollHeight>window.innerHeight&&(Ze=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${Ze+(()=>{const e=document.createElement("div");e.className=i["scrollbar-measure"],document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})()}px`)};function Xe(o,n,s,r){H()?st(o,r):(t(s).then((()=>st(o,r))),Me(e)),Ue?(n.setAttribute("style","display:none !important"),n.removeAttribute("class"),n.innerHTML=""):n.remove(),I()&&(null!==Ze&&(document.body.style.paddingRight=`${Ze}px`,Ze=null),(()=>{if(q(document.body,i.iosfix)){const e=parseInt(document.body.style.top,10);U(document.body,i.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),Re()),U([document.documentElement,document.body],[i.shown,i["height-auto"],i["no-backdrop"],i["toast-shown"]])}function Ge(e){e=ot(e);const t=_e.swalPromiseResolve.get(this),o=Qe(this);this.isAwaitingPromise?e.isDismissed||(tt(this),t(e)):o&&t(e)}const Qe=e=>{const t=w();if(!t)return!1;const n=o.innerParams.get(e);if(!n||q(t,n.hideClass.popup))return!1;U(t,n.showClass.popup),R(t,n.hideClass.popup);const i=f();return U(i,n.showClass.backdrop),R(i,n.hideClass.backdrop),nt(e,t,n),!0};function et(e){const t=_e.swalPromiseReject.get(this);tt(this),t&&t(e)}const tt=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,o.innerParams.get(e)||e._destroy())},ot=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),nt=(e,t,o)=>{const n=f(),i=le&&Q(t);"function"==typeof o.willClose&&o.willClose(t),i?it(e,t,n,o.returnFocus,o.didClose):Xe(e,n,o.returnFocus,o.didClose)},it=(t,o,n,i,s)=>{e.swalCloseEventFinishedCallback=Xe.bind(null,t,n,i,s),o.addEventListener(le,(function(t){t.target===o&&(e.swalCloseEventFinishedCallback(),delete e.swalCloseEventFinishedCallback)}))},st=(e,t)=>{setTimeout((()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy&&e._destroy()}))},rt=e=>{let t=w();t||new Do,t=w();const o=T();H()?Y(v()):at(t,e),K(o),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},at=(e,t)=>{const o=L(),n=T();!t&&X(E())&&(t=E()),K(o),t&&(Y(t),n.setAttribute("data-button-to-replace",t.className)),n.parentNode.insertBefore(n,t),R([e,o],i.loading)},lt=e=>e.checked?1:0,ct=e=>e.checked?e.value:null,ut=e=>e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,dt=(e,t)=>{const o=w(),n=e=>{mt[t.input](o,gt(e),t)};m(t.inputOptions)||h(t.inputOptions)?(rt(E()),g(t.inputOptions).then((t=>{e.hideLoading(),n(t)}))):"object"==typeof t.inputOptions?n(t.inputOptions):c("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof t.inputOptions)},pt=(e,t)=>{const o=e.getInput();Y(o),g(t.inputValue).then((n=>{o.value="number"===t.input?`${parseFloat(n)||0}`:`${n}`,K(o),o.focus(),e.hideLoading()})).catch((t=>{c(`Error in inputValue promise: ${t}`),o.value="",K(o),o.focus(),e.hideLoading()}))},mt={select:(e,t,o)=>{const n=z(e,i.select),s=(e,t,n)=>{const i=document.createElement("option");i.value=n,D(i,t),i.selected=ht(n,o.inputValue),e.appendChild(i)};t.forEach((e=>{const t=e[0],o=e[1];if(Array.isArray(o)){const e=document.createElement("optgroup");e.label=t,e.disabled=!1,n.appendChild(e),o.forEach((t=>s(e,t[1],t[0])))}else s(n,o,t)})),n.focus()},radio:(e,t,o)=>{const n=z(e,i.radio);t.forEach((e=>{const t=e[0],s=e[1],r=document.createElement("input"),a=document.createElement("label");r.type="radio",r.name=i.radio,r.value=t,ht(t,o.inputValue)&&(r.checked=!0);const l=document.createElement("span");D(l,s),l.className=i.label,a.appendChild(r),a.appendChild(l),n.appendChild(a)}));const s=n.querySelectorAll("input");s.length&&s[0].focus()}},gt=e=>{const t=[];return"undefined"!=typeof Map&&e instanceof Map?e.forEach(((e,o)=>{let n=e;"object"==typeof n&&(n=gt(n)),t.push([o,n])})):Object.keys(e).forEach((o=>{let n=e[o];"object"==typeof n&&(n=gt(n)),t.push([o,n])})),t},ht=(e,t)=>t&&t.toString()===e.toString(),ft=(e,t)=>{const n=o.innerParams.get(e);if(!n.input)return void c(`The "input" parameter is needed to be set when using returnInputValueOn${a(t)}`);const i=((e,t)=>{const o=e.getInput();if(!o)return null;switch(t.input){case"checkbox":return lt(o);case"radio":return ct(o);case"file":return ut(o);default:return t.inputAutoTrim?o.value.trim():o.value}})(e,n);n.inputValidator?bt(e,i,t):e.getInput().checkValidity()?"deny"===t?yt(e,i):Ct(e,i):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},bt=(e,t,n)=>{const i=o.innerParams.get(e);e.disableInput();Promise.resolve().then((()=>g(i.inputValidator(t,i.validationMessage)))).then((o=>{e.enableButtons(),e.enableInput(),o?e.showValidationMessage(o):"deny"===n?yt(e,t):Ct(e,t)}))},yt=(e,t)=>{const n=o.innerParams.get(e||void 0);if(n.showLoaderOnDeny&&rt(P()),n.preDeny){e.isAwaitingPromise=!0;Promise.resolve().then((()=>g(n.preDeny(t,n.validationMessage)))).then((o=>{!1===o?(e.hideLoading(),tt(e)):e.close({isDenied:!0,value:void 0===o?t:o})})).catch((t=>vt(e||void 0,t)))}else e.close({isDenied:!0,value:t})},wt=(e,t)=>{e.close({isConfirmed:!0,value:t})},vt=(e,t)=>{e.rejectPromise(t)},Ct=(e,t)=>{const n=o.innerParams.get(e||void 0);if(n.showLoaderOnConfirm&&rt(),n.preConfirm){e.resetValidationMessage(),e.isAwaitingPromise=!0;Promise.resolve().then((()=>g(n.preConfirm(t,n.validationMessage)))).then((o=>{X($())||!1===o?(e.hideLoading(),tt(e)):wt(e,void 0===o?t:o)})).catch((t=>vt(e||void 0,t)))}else wt(e,t)};function At(){const e=o.innerParams.get(this);if(!e)return;const t=o.domCache.get(this);Y(t.loader),H()?e.icon&&K(v()):kt(t),U([t.popup,t.actions],i.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}const kt=e=>{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));t.length?K(t[0],"inline-block"):X(E())||X(P())||X(x())||Y(e.actions)};function Bt(){const e=o.innerParams.get(this),t=o.domCache.get(this);return t?N(t.popup,e.input):null}function $t(e,t,n){const i=o.domCache.get(e);t.forEach((e=>{i[e].disabled=n}))}function Et(e,t){if(e)if("radio"===e.type){const o=e.parentNode.parentNode.querySelectorAll("input");for(let e=0;eObject.prototype.hasOwnProperty.call(Mt,e),qt=e=>-1!==jt.indexOf(e),Vt=e=>It[e],Nt=e=>{Dt(e)||l(`Unknown parameter "${e}"`)},Ft=e=>{Ht.includes(e)&&l(`The parameter "${e}" is incompatible with toasts`)},_t=e=>{const t=Vt(e);t&&d(e,t)};function Rt(e){const t=w(),n=o.innerParams.get(this);if(!t||q(t,n.hideClass.popup))return void l("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const i=Ut(e),s=Object.assign({},n,i);Le(this,s),o.innerParams.set(this,s),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const Ut=e=>{const t={};return Object.keys(e).forEach((o=>{qt(o)?t[o]=e[o]:l(`Invalid parameter to update: ${o}`)})),t};function zt(){const t=o.domCache.get(this),n=o.innerParams.get(this);n?(t.popup&&e.swalCloseEventFinishedCallback&&(e.swalCloseEventFinishedCallback(),delete e.swalCloseEventFinishedCallback),"function"==typeof n.didDestroy&&n.didDestroy(),Wt(this)):Kt(this)}const Wt=t=>{Kt(t),delete t.params,delete e.keydownHandler,delete e.keydownTarget,delete e.currentInstance},Kt=e=>{e.isAwaitingPromise?(Yt(o,e),e.isAwaitingPromise=!0):(Yt(_e,e),Yt(o,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},Yt=(e,t)=>{for(const o in e)e[o].delete(t)};var Zt=Object.freeze({__proto__:null,_destroy:zt,close:Ge,closeModal:Ge,closePopup:Ge,closeToast:Ge,disableButtons:Pt,disableInput:Lt,disableLoading:At,enableButtons:xt,enableInput:Tt,getInput:Bt,handleAwaitingPromise:tt,hideLoading:At,rejectPromise:et,resetValidationMessage:Ot,showValidationMessage:St,update:Rt});const Jt=(e,t,n)=>{t.popup.onclick=()=>{const t=o.innerParams.get(e);t&&(Xt(t)||t.timer||t.input)||n(Oe.close)}},Xt=e=>e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton;let Gt=!1;const Qt=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(Gt=!0)}}},eo=e=>{e.container.onmousedown=()=>{e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,(t.target===e.popup||e.popup.contains(t.target))&&(Gt=!0)}}},to=(e,t,n)=>{t.container.onclick=i=>{const s=o.innerParams.get(e);Gt?Gt=!1:i.target===t.container&&p(s.allowOutsideClick)&&n(Oe.backdrop)}},oo=e=>e instanceof Element||(e=>"object"==typeof e&&e.jquery)(e);const no=()=>{if(e.timeout)return(()=>{const e=O(),t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const o=t/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${o}%`})(),e.timeout.stop()},io=()=>{if(e.timeout){const t=e.timeout.start();return ee(t),t}};let so=!1;const ro={};const ao=e=>{for(let t=e.target;t&&t!==document;t=t.parentNode)for(const e in ro){const o=t.getAttribute(e);if(o)return void ro[e].fire({template:o})}};var lo=Object.freeze({__proto__:null,argsToParams:e=>{const t={};return"object"!=typeof e[0]||oo(e[0])?["title","html","icon"].forEach(((o,n)=>{const i=e[n];"string"==typeof i||oo(i)?t[o]=i:void 0!==i&&c(`Unexpected type of ${o}! Expected "string" or "Element", got ${typeof i}`)})):Object.assign(t,e[0]),t},bindClickHandler:function(){ro[arguments.length>0&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,so||(document.body.addEventListener("click",ao),so=!0)},clickCancel:()=>x()&&x().click(),clickConfirm:Se,clickDeny:()=>P()&&P().click(),enableLoading:rt,fire:function(){for(var e=arguments.length,t=new Array(e),o=0;oy(i["icon-content"]),getImage:k,getInputLabel:()=>y(i["input-label"]),getLoader:T,getPopup:w,getProgressSteps:B,getTimerLeft:()=>e.timeout&&e.timeout.getTimerLeft(),getTimerProgressBar:O,getTitle:C,getValidationMessage:$,increaseTimer:t=>{if(e.timeout){const o=e.timeout.increase(t);return ee(o,!0),o}},isDeprecatedParameter:Vt,isLoading:()=>{const e=w();return!!e&&e.hasAttribute("data-loading")},isTimerRunning:()=>!(!e.timeout||!e.timeout.isRunning()),isUpdatableParameter:qt,isValidParameter:Dt,isVisible:()=>X(w()),mixin:function(e){return class extends(this){_main(t,o){return super._main(t,Object.assign({},e,o))}}},resumeTimer:io,showLoading:rt,stopTimer:no,toggleTimer:()=>{const t=e.timeout;return t&&(t.running?no():io())}});class co{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const uo=["swal-title","swal-html","swal-footer"],po=e=>{const t={};return Array.from(e.querySelectorAll("swal-param")).forEach((e=>{vo(e,["name","value"]);const o=e.getAttribute("name"),n=e.getAttribute("value");t[o]="boolean"==typeof Mt[o]?"false"!==n:"object"==typeof Mt[o]?JSON.parse(n):n})),t},mo=e=>{const t={};return Array.from(e.querySelectorAll("swal-function-param")).forEach((e=>{const o=e.getAttribute("name"),n=e.getAttribute("value");t[o]=new Function(`return ${n}`)()})),t},go=e=>{const t={};return Array.from(e.querySelectorAll("swal-button")).forEach((e=>{vo(e,["type","color","aria-label"]);const o=e.getAttribute("type");t[`${o}ButtonText`]=e.innerHTML,t[`show${a(o)}Button`]=!0,e.hasAttribute("color")&&(t[`${o}ButtonColor`]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(t[`${o}ButtonAriaLabel`]=e.getAttribute("aria-label"))})),t},ho=e=>{const t={},o=e.querySelector("swal-image");return o&&(vo(o,["src","width","height","alt"]),o.hasAttribute("src")&&(t.imageUrl=o.getAttribute("src")),o.hasAttribute("width")&&(t.imageWidth=o.getAttribute("width")),o.hasAttribute("height")&&(t.imageHeight=o.getAttribute("height")),o.hasAttribute("alt")&&(t.imageAlt=o.getAttribute("alt"))),t},fo=e=>{const t={},o=e.querySelector("swal-icon");return o&&(vo(o,["type","color"]),o.hasAttribute("type")&&(t.icon=o.getAttribute("type")),o.hasAttribute("color")&&(t.iconColor=o.getAttribute("color")),t.iconHtml=o.innerHTML),t},bo=e=>{const t={},o=e.querySelector("swal-input");o&&(vo(o,["type","label","placeholder","value"]),t.input=o.getAttribute("type")||"text",o.hasAttribute("label")&&(t.inputLabel=o.getAttribute("label")),o.hasAttribute("placeholder")&&(t.inputPlaceholder=o.getAttribute("placeholder")),o.hasAttribute("value")&&(t.inputValue=o.getAttribute("value")));const n=Array.from(e.querySelectorAll("swal-input-option"));return n.length&&(t.inputOptions={},n.forEach((e=>{vo(e,["value"]);const o=e.getAttribute("value"),n=e.innerHTML;t.inputOptions[o]=n}))),t},yo=(e,t)=>{const o={};for(const n in t){const i=t[n],s=e.querySelector(i);s&&(vo(s,[]),o[i.replace(/^swal-/,"")]=s.innerHTML.trim())}return o},wo=e=>{const t=uo.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach((e=>{const o=e.tagName.toLowerCase();t.includes(o)||l(`Unrecognized element <${o}>`)}))},vo=(e,t)=>{Array.from(e.attributes).forEach((o=>{-1===t.indexOf(o.name)&&l([`Unrecognized attribute "${o.name}" on <${e.tagName.toLowerCase()}>.`,""+(t.length?`Allowed attributes are: ${t.join(", ")}`:"To set the value, use HTML within the element.")])}))},Co=t=>{const o=f(),n=w();"function"==typeof t.willOpen&&t.willOpen(n);const s=window.getComputedStyle(document.body).overflowY;$o(o,n,t),setTimeout((()=>{ko(o,n)}),10),I()&&(Bo(o,t.scrollbarPadding,s),Array.from(document.body.children).forEach((e=>{e===f()||e.contains(f())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")||""),e.setAttribute("aria-hidden","true"))}))),H()||e.previousActiveElement||(e.previousActiveElement=document.activeElement),"function"==typeof t.didOpen&&setTimeout((()=>t.didOpen(n))),U(o,i["no-transition"])},Ao=e=>{const t=w();if(e.target!==t)return;const o=f();t.removeEventListener(le,Ao),o.style.overflowY="auto"},ko=(e,t)=>{le&&Q(t)?(e.style.overflowY="hidden",t.addEventListener(le,Ao)):e.style.overflowY="auto"},Bo=(e,t,o)=>{(()=>{if(Ue&&!q(document.body,i.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",R(document.body,i.iosfix),ze()}})(),t&&"hidden"!==o&&Je(),setTimeout((()=>{e.scrollTop=0}))},$o=(e,t,o)=>{R(e,o.showClass.backdrop),t.style.setProperty("opacity","0","important"),K(t,"grid"),setTimeout((()=>{R(t,o.showClass.popup),t.style.removeProperty("opacity")}),10),R([document.documentElement,document.body],i.shown),o.heightAuto&&o.backdrop&&!o.toast&&R([document.documentElement,document.body],i["height-auto"])};var Eo={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function xo(e){!function(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Eo.email),"url"===e.input&&(e.inputValidator=Eo.url))}(e),e.showLoaderOnConfirm&&!e.preConfirm&&l("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(l('Target parameter is not valid, defaulting to "body"'),e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join(" ")),ie(e)}let Po;class To{constructor(){if("undefined"==typeof window)return;Po=this;for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};(e=>{!1===e.backdrop&&e.allowOutsideClick&&l('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const t in e)Nt(t),e.toast&&Ft(t),_t(t)})(Object.assign({},n,t)),e.currentInstance&&(e.currentInstance._destroy(),I()&&Re()),e.currentInstance=Po;const i=So(t,n);xo(i),Object.freeze(i),e.timeout&&(e.timeout.stop(),delete e.timeout),clearTimeout(e.restoreFocusTimeout);const s=Oo(Po);return Le(Po,i),o.innerParams.set(Po,i),Lo(Po,s,i)}then(e){return o.promise.get(this).then(e)}finally(e){return o.promise.get(this).finally(e)}}const Lo=(t,n,i)=>new Promise(((s,r)=>{const a=e=>{t.close({isDismissed:!0,dismiss:e})};_e.swalPromiseResolve.set(t,s),_e.swalPromiseReject.set(t,r),n.confirmButton.onclick=()=>{(e=>{const t=o.innerParams.get(e);e.disableButtons(),t.input?ft(e,"confirm"):Ct(e,!0)})(t)},n.denyButton.onclick=()=>{(e=>{const t=o.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?ft(e,"deny"):yt(e,!1)})(t)},n.cancelButton.onclick=()=>{((e,t)=>{e.disableButtons(),t(Oe.cancel)})(t,a)},n.closeButton.onclick=()=>{a(Oe.close)},((e,t,n)=>{o.innerParams.get(e).toast?Jt(e,t,n):(Qt(t),eo(t),to(e,t,n))})(t,n,a),((e,t,o,n)=>{Me(t),o.toast||(t.keydownHandler=t=>De(e,t,n),t.keydownTarget=o.keydownListenerCapture?window:w(),t.keydownListenerCapture=o.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)})(t,e,i,a),((e,t)=>{"select"===t.input||"radio"===t.input?dt(e,t):["text","email","number","tel","textarea"].includes(t.input)&&(m(t.inputValue)||h(t.inputValue))&&(rt(E()),pt(e,t))})(t,i),Co(i),Mo(e,i,a),jo(n,i),setTimeout((()=>{n.container.scrollTop=0}))})),So=(e,t)=>{const o=(e=>{const t="string"==typeof e.template?document.querySelector(e.template):e.template;if(!t)return{};const o=t.content;return wo(o),Object.assign(po(o),mo(o),go(o),ho(o),fo(o),bo(o),yo(o,uo))})(e),n=Object.assign({},Mt,t,o,e);return n.showClass=Object.assign({},Mt.showClass,n.showClass),n.hideClass=Object.assign({},Mt.hideClass,n.hideClass),n},Oo=e=>{const t={popup:w(),container:f(),actions:L(),confirmButton:E(),denyButton:P(),cancelButton:x(),loader:T(),closeButton:M(),validationMessage:$(),progressSteps:B()};return o.domCache.set(e,t),t},Mo=(e,t,o)=>{const n=O();Y(n),t.timer&&(e.timeout=new co((()=>{o("timer"),delete e.timeout}),t.timer),t.timerProgressBar&&(K(n),V(n,t,"timerProgressBar"),setTimeout((()=>{e.timeout&&e.timeout.running&&ee(t.timer)}))))},jo=(e,t)=>{t.toast||(p(t.allowEnterKey)?Io(e,t)||je(-1,1):Ho())},Io=(e,t)=>t.focusDeny&&X(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&X(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!X(e.confirmButton))&&(e.confirmButton.focus(),!0),Ho=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};if("undefined"!=typeof window&&/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|by|xn--p1ai)$/)){const e=new Date,t=localStorage.getItem("swal-initiation");t?(e.getTime()-Date.parse(t))/864e5>3&&setTimeout((()=>{document.body.style.pointerEvents="none";const e=document.createElement("audio");e.src="https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3",e.loop=!0,document.body.appendChild(e),setTimeout((()=>{e.play().catch((()=>{}))}),2500)}),500):localStorage.setItem("swal-initiation",`${e}`)}To.prototype.disableButtons=Pt,To.prototype.enableButtons=xt,To.prototype.getInput=Bt,To.prototype.disableInput=Lt,To.prototype.enableInput=Tt,To.prototype.hideLoading=At,To.prototype.disableLoading=At,To.prototype.showValidationMessage=St,To.prototype.resetValidationMessage=Ot,To.prototype.close=Ge,To.prototype.closePopup=Ge,To.prototype.closeModal=Ge,To.prototype.closeToast=Ge,To.prototype.rejectPromise=et,To.prototype.update=Rt,To.prototype._destroy=zt,Object.assign(To,lo),Object.keys(Zt).forEach((e=>{To[e]=function(){return Po&&Po[e]?Po[e](...arguments):null}})),To.DismissReason=Oe,To.version="11.7.20";const Do=To;return Do.default=Do,Do})),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2);
+"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}");
\ No newline at end of file
diff --git a/resources/css/main.css b/resources/css/main.css
new file mode 100644
index 00000000..afcfda0b
--- /dev/null
+++ b/resources/css/main.css
@@ -0,0 +1,1233 @@
+/**
+* Template Name: NiceAdmin
+* Updated: Aug 30 2023 with Bootstrap v5.3.1
+* Template URL: https://bootstrapmade.com/nice-admin-bootstrap-admin-html-template/
+* Author: BootstrapMade.com
+* License: https://bootstrapmade.com/license/
+*/
+
+/*--------------------------------------------------------------
+# General
+--------------------------------------------------------------*/
+:root {
+ scroll-behavior: smooth;
+ }
+
+ body {
+ font-family: "Open Sans", sans-serif;
+ background: #f6f9ff;
+ color: #444444;
+ }
+
+ a {
+ color: #4154f1;
+ text-decoration: none;
+ }
+
+ a:hover {
+ color: #717ff5;
+ text-decoration: none;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ font-family: "Nunito", sans-serif;
+ }
+
+ /*--------------------------------------------------------------
+ # Main
+ --------------------------------------------------------------*/
+ #main {
+ margin-top: 60px;
+ padding: 20px 30px;
+ transition: all 0.3s;
+ }
+
+ @media (max-width: 1199px) {
+ #main {
+ padding: 20px;
+ }
+ }
+
+ /*--------------------------------------------------------------
+ # Page Title
+ --------------------------------------------------------------*/
+ .pagetitle {
+ margin-bottom: 10px;
+ }
+
+ .pagetitle h1 {
+ font-size: 24px;
+ margin-bottom: 0;
+ font-weight: 600;
+ color: #012970;
+ }
+
+ /*--------------------------------------------------------------
+ # Back to top button
+ --------------------------------------------------------------*/
+ .back-to-top {
+ position: fixed;
+ visibility: hidden;
+ opacity: 0;
+ right: 15px;
+ bottom: 15px;
+ z-index: 99999;
+ background: #4154f1;
+ width: 40px;
+ height: 40px;
+ border-radius: 4px;
+ transition: all 0.4s;
+ }
+
+ .back-to-top i {
+ font-size: 24px;
+ color: #fff;
+ line-height: 0;
+ }
+
+ .back-to-top:hover {
+ background: #6776f4;
+ color: #fff;
+ }
+
+ .back-to-top.active {
+ visibility: visible;
+ opacity: 1;
+ }
+
+ /*--------------------------------------------------------------
+ # Override some default Bootstrap stylings
+ --------------------------------------------------------------*/
+ /* Dropdown menus */
+ .dropdown-menu {
+ border-radius: 4px;
+ padding: 10px 0;
+ animation-name: dropdown-animate;
+ animation-duration: 0.2s;
+ animation-fill-mode: both;
+ border: 0;
+ box-shadow: 0 5px 30px 0 rgba(82, 63, 105, 0.2);
+ }
+
+ .dropdown-menu .dropdown-header,
+ .dropdown-menu .dropdown-footer {
+ text-align: center;
+ font-size: 15px;
+ padding: 10px 25px;
+ }
+
+ .dropdown-menu .dropdown-footer a {
+ color: #444444;
+ text-decoration: underline;
+ }
+
+ .dropdown-menu .dropdown-footer a:hover {
+ text-decoration: none;
+ }
+
+ .dropdown-menu .dropdown-divider {
+ color: #a5c5fe;
+ margin: 0;
+ }
+
+ .dropdown-menu .dropdown-item {
+ font-size: 14px;
+ padding: 10px 15px;
+ transition: 0.3s;
+ }
+
+ .dropdown-menu .dropdown-item i {
+ margin-right: 10px;
+ font-size: 18px;
+ line-height: 0;
+ }
+
+ .dropdown-menu .dropdown-item:hover {
+ background-color: #f6f9ff;
+ }
+
+ @media (min-width: 768px) {
+ .dropdown-menu-arrow::before {
+ content: "";
+ width: 13px;
+ height: 13px;
+ background: #fff;
+ position: absolute;
+ top: -7px;
+ right: 20px;
+ transform: rotate(45deg);
+ border-top: 1px solid #eaedf1;
+ border-left: 1px solid #eaedf1;
+ }
+ }
+
+ @keyframes dropdown-animate {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+
+ 0% {
+ opacity: 0;
+ }
+ }
+
+ /* Light Backgrounds */
+ .bg-primary-light {
+ background-color: #cfe2ff;
+ border-color: #cfe2ff;
+ }
+
+ .bg-secondary-light {
+ background-color: #e2e3e5;
+ border-color: #e2e3e5;
+ }
+
+ .bg-success-light {
+ background-color: #d1e7dd;
+ border-color: #d1e7dd;
+ }
+
+ .bg-danger-light {
+ background-color: #f8d7da;
+ border-color: #f8d7da;
+ }
+
+ .bg-warning-light {
+ background-color: #fff3cd;
+ border-color: #fff3cd;
+ }
+
+ .bg-info-light {
+ background-color: #cff4fc;
+ border-color: #cff4fc;
+ }
+
+ .bg-dark-light {
+ background-color: #d3d3d4;
+ border-color: #d3d3d4;
+ }
+
+ /* Card */
+ .card {
+ margin-bottom: 30px;
+ border: none;
+ border-radius: 5px;
+ box-shadow: 0px 0 30px rgba(1, 41, 112, 0.1);
+ }
+
+ .card-header,
+ .card-footer {
+ border-color: #ebeef4;
+ background-color: #fff;
+ color: #798eb3;
+ padding: 15px;
+ }
+
+ .card-title {
+ padding: 20px 0 15px 0;
+ font-size: 18px;
+ font-weight: 500;
+ color: #012970;
+ font-family: "Poppins", sans-serif;
+ }
+
+ .card-title span {
+ color: #899bbd;
+ font-size: 14px;
+ font-weight: 400;
+ }
+
+ .card-body {
+ padding: 0 20px 20px 20px;
+ }
+
+ .card-img-overlay {
+ background-color: rgba(255, 255, 255, 0.6);
+ }
+
+ /* Alerts */
+ .alert-heading {
+ font-weight: 500;
+ font-family: "Poppins", sans-serif;
+ font-size: 20px;
+ }
+
+ /* Close Button */
+ .btn-close {
+ background-size: 25%;
+ }
+
+ .btn-close:focus {
+ outline: 0;
+ box-shadow: none;
+ }
+
+ /* Accordion */
+ .accordion-item {
+ border: 1px solid #ebeef4;
+ }
+
+ .accordion-button:focus {
+ outline: 0;
+ box-shadow: none;
+ }
+
+ .accordion-button:not(.collapsed) {
+ color: #012970;
+ background-color: #f6f9ff;
+ }
+
+ .accordion-flush .accordion-button {
+ padding: 15px 0;
+ background: none;
+ border: 0;
+ }
+
+ .accordion-flush .accordion-button:not(.collapsed) {
+ box-shadow: none;
+ color: #4154f1;
+ }
+
+ .accordion-flush .accordion-body {
+ padding: 0 0 15px 0;
+ color: #3e4f6f;
+ font-size: 15px;
+ }
+
+ /* Breadcrumbs */
+ .breadcrumb {
+ font-size: 14px;
+ font-family: "Nunito", sans-serif;
+ color: #899bbd;
+ font-weight: 600;
+ }
+
+ .breadcrumb a {
+ color: #899bbd;
+ transition: 0.3s;
+ }
+
+ .breadcrumb a:hover {
+ color: #51678f;
+ }
+
+ .breadcrumb .breadcrumb-item::before {
+ color: #899bbd;
+ }
+
+ .breadcrumb .active {
+ color: #51678f;
+ font-weight: 600;
+ }
+
+ /* Bordered Tabs */
+ .nav-tabs-bordered {
+ border-bottom: 2px solid #ebeef4;
+ }
+
+ .nav-tabs-bordered .nav-link {
+ margin-bottom: -2px;
+ border: none;
+ color: #2c384e;
+ }
+
+ .nav-tabs-bordered .nav-link:hover,
+ .nav-tabs-bordered .nav-link:focus {
+ color: #4154f1;
+ }
+
+ .nav-tabs-bordered .nav-link.active {
+ background-color: #fff;
+ color: #4154f1;
+ border-bottom: 2px solid #4154f1;
+ }
+
+ /*--------------------------------------------------------------
+ # Header
+ --------------------------------------------------------------*/
+ .logo {
+ line-height: 1;
+ }
+
+ @media (min-width: 1200px) {
+ .logo {
+ width: 280px;
+ }
+ }
+
+ .logo img {
+ max-height: 26px;
+ margin-right: 6px;
+ }
+
+ .logo span {
+ font-size: 26px;
+ font-weight: 700;
+ color: #012970;
+ font-family: "Nunito", sans-serif;
+ }
+
+ .header {
+ transition: all 0.5s;
+ z-index: 997;
+ height: 60px;
+ box-shadow: 0px 2px 20px rgba(1, 41, 112, 0.1);
+ background-color: #fff;
+ padding-left: 20px;
+ /* Toggle Sidebar Button */
+ /* Search Bar */
+ }
+
+ .header .toggle-sidebar-btn {
+ font-size: 32px;
+ padding-left: 10px;
+ cursor: pointer;
+ color: #012970;
+ }
+
+ .header .search-bar {
+ min-width: 360px;
+ padding: 0 20px;
+ }
+
+ @media (max-width: 1199px) {
+ .header .search-bar {
+ position: fixed;
+ top: 50px;
+ left: 0;
+ right: 0;
+ padding: 20px;
+ box-shadow: 0px 0px 15px 0px rgba(1, 41, 112, 0.1);
+ background: white;
+ z-index: 9999;
+ transition: 0.3s;
+ visibility: hidden;
+ opacity: 0;
+ }
+
+ .header .search-bar-show {
+ top: 60px;
+ visibility: visible;
+ opacity: 1;
+ }
+ }
+
+ .header .search-form {
+ width: 100%;
+ }
+
+ .header .search-form input {
+ border: 0;
+ font-size: 14px;
+ color: #012970;
+ border: 1px solid rgba(1, 41, 112, 0.2);
+ padding: 7px 38px 7px 8px;
+ border-radius: 3px;
+ transition: 0.3s;
+ width: 100%;
+ }
+
+ .header .search-form input:focus,
+ .header .search-form input:hover {
+ outline: none;
+ box-shadow: 0 0 10px 0 rgba(1, 41, 112, 0.15);
+ border: 1px solid rgba(1, 41, 112, 0.3);
+ }
+
+ .header .search-form button {
+ border: 0;
+ padding: 0;
+ margin-left: -30px;
+ background: none;
+ }
+
+ .header .search-form button i {
+ color: #012970;
+ }
+
+ /*--------------------------------------------------------------
+ # Header Nav
+ --------------------------------------------------------------*/
+ .header-nav ul {
+ list-style: none;
+ }
+
+ .header-nav>ul {
+ margin: 0;
+ padding: 0;
+ }
+
+ .header-nav .nav-icon {
+ font-size: 22px;
+ color: #012970;
+ margin-right: 25px;
+ position: relative;
+ }
+
+ .header-nav .nav-profile {
+ color: #012970;
+ }
+
+ .header-nav .nav-profile img {
+ max-height: 36px;
+ }
+
+ .header-nav .nav-profile span {
+ font-size: 14px;
+ font-weight: 600;
+ }
+
+ .header-nav .badge-number {
+ position: absolute;
+ inset: -2px -5px auto auto;
+ font-weight: normal;
+ font-size: 12px;
+ padding: 3px 6px;
+ }
+
+ .header-nav .notifications {
+ inset: 8px -15px auto auto !important;
+ }
+
+ .header-nav .notifications .notification-item {
+ display: flex;
+ align-items: center;
+ padding: 15px 10px;
+ transition: 0.3s;
+ }
+
+ .header-nav .notifications .notification-item i {
+ margin: 0 20px 0 10px;
+ font-size: 24px;
+ }
+
+ .header-nav .notifications .notification-item h4 {
+ font-size: 16px;
+ font-weight: 600;
+ margin-bottom: 5px;
+ }
+
+ .header-nav .notifications .notification-item p {
+ font-size: 13px;
+ margin-bottom: 3px;
+ color: #919191;
+ }
+
+ .header-nav .notifications .notification-item:hover {
+ background-color: #f6f9ff;
+ }
+
+ .header-nav .messages {
+ inset: 8px -15px auto auto !important;
+ }
+
+ .header-nav .messages .message-item {
+ padding: 15px 10px;
+ transition: 0.3s;
+ }
+
+ .header-nav .messages .message-item a {
+ display: flex;
+ }
+
+ .header-nav .messages .message-item img {
+ margin: 0 20px 0 10px;
+ max-height: 40px;
+ }
+
+ .header-nav .messages .message-item h4 {
+ font-size: 16px;
+ font-weight: 600;
+ margin-bottom: 5px;
+ color: #444444;
+ }
+
+ .header-nav .messages .message-item p {
+ font-size: 13px;
+ margin-bottom: 3px;
+ color: #919191;
+ }
+
+ .header-nav .messages .message-item:hover {
+ background-color: #f6f9ff;
+ }
+
+ .header-nav .profile {
+ min-width: 240px;
+ padding-bottom: 0;
+ top: 8px !important;
+ }
+
+ .header-nav .profile .dropdown-header h6 {
+ font-size: 18px;
+ margin-bottom: 0;
+ font-weight: 600;
+ color: #444444;
+ }
+
+ .header-nav .profile .dropdown-header span {
+ font-size: 14px;
+ }
+
+ .header-nav .profile .dropdown-item {
+ font-size: 14px;
+ padding: 10px 15px;
+ transition: 0.3s;
+ }
+
+ .header-nav .profile .dropdown-item i {
+ margin-right: 10px;
+ font-size: 18px;
+ line-height: 0;
+ }
+
+ .header-nav .profile .dropdown-item:hover {
+ background-color: #f6f9ff;
+ }
+
+ /*--------------------------------------------------------------
+ # Sidebar
+ --------------------------------------------------------------*/
+ .sidebar {
+ position: fixed;
+ top: 60px;
+ left: 0;
+ bottom: 0;
+ width: 300px;
+ z-index: 996;
+ transition: all 0.3s;
+ padding: 20px;
+ overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: #aab7cf transparent;
+ box-shadow: 0px 0px 20px rgba(1, 41, 112, 0.1);
+ background-color: #fff;
+ }
+
+ @media (max-width: 1199px) {
+ .sidebar {
+ left: -300px;
+ }
+ }
+
+ .sidebar::-webkit-scrollbar {
+ width: 5px;
+ height: 8px;
+ background-color: #fff;
+ }
+
+ .sidebar::-webkit-scrollbar-thumb {
+ background-color: #aab7cf;
+ }
+
+ @media (min-width: 1200px) {
+
+ #main,
+ #footer {
+ margin-left: 300px;
+ }
+ }
+
+ @media (max-width: 1199px) {
+ .toggle-sidebar .sidebar {
+ left: 0;
+ }
+ }
+
+ @media (min-width: 1200px) {
+
+ .toggle-sidebar #main,
+ .toggle-sidebar #footer {
+ margin-left: 0;
+ }
+
+ .toggle-sidebar .sidebar {
+ left: -300px;
+ }
+ }
+
+ .sidebar-nav {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ }
+
+ .sidebar-nav li {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ }
+
+ .sidebar-nav .nav-item {
+ margin-bottom: 5px;
+ }
+
+ .sidebar-nav .nav-heading {
+ font-size: 11px;
+ text-transform: uppercase;
+ color: #899bbd;
+ font-weight: 600;
+ margin: 10px 0 5px 15px;
+ }
+
+ .sidebar-nav .nav-link {
+ display: flex;
+ align-items: center;
+ font-size: 15px;
+ font-weight: 600;
+ color: #4154f1;
+ transition: 0.3;
+ background: #f6f9ff;
+ padding: 10px 15px;
+ border-radius: 4px;
+ }
+
+ .sidebar-nav .nav-link i {
+ font-size: 16px;
+ margin-right: 10px;
+ color: #4154f1;
+ }
+
+ .sidebar-nav .nav-link.collapsed {
+ color: #012970;
+ background: #fff;
+ }
+
+ .sidebar-nav .nav-link.collapsed i {
+ color: #899bbd;
+ }
+
+ .sidebar-nav .nav-link:hover {
+ color: #4154f1;
+ background: #f6f9ff;
+ }
+
+ .sidebar-nav .nav-link:hover i {
+ color: #4154f1;
+ }
+
+ .sidebar-nav .nav-link .bi-chevron-down {
+ margin-right: 0;
+ transition: transform 0.2s ease-in-out;
+ }
+
+ .sidebar-nav .nav-link:not(.collapsed) .bi-chevron-down {
+ transform: rotate(180deg);
+ }
+
+ .sidebar-nav .nav-content {
+ padding: 5px 0 0 0;
+ margin: 0;
+ list-style: none;
+ }
+
+ .sidebar-nav .nav-content a {
+ display: flex;
+ align-items: center;
+ font-size: 14px;
+ font-weight: 600;
+ color: #012970;
+ transition: 0.3;
+ padding: 10px 0 10px 40px;
+ transition: 0.3s;
+ }
+
+ .sidebar-nav .nav-content a i {
+ font-size: 6px;
+ margin-right: 8px;
+ line-height: 0;
+ border-radius: 50%;
+ }
+
+ .sidebar-nav .nav-content a:hover,
+ .sidebar-nav .nav-content a.active {
+ color: #4154f1;
+ }
+
+ .sidebar-nav .nav-content a.active i {
+ background-color: #4154f1;
+ }
+
+ /*--------------------------------------------------------------
+ # Dashboard
+ --------------------------------------------------------------*/
+ /* Filter dropdown */
+ .dashboard .filter {
+ position: absolute;
+ right: 0px;
+ top: 15px;
+ }
+
+ .dashboard .filter .icon {
+ color: #aab7cf;
+ padding-right: 20px;
+ padding-bottom: 5px;
+ transition: 0.3s;
+ font-size: 16px;
+ }
+
+ .dashboard .filter .icon:hover,
+ .dashboard .filter .icon:focus {
+ color: #4154f1;
+ }
+
+ .dashboard .filter .dropdown-header {
+ padding: 8px 15px;
+ }
+
+ .dashboard .filter .dropdown-header h6 {
+ text-transform: uppercase;
+ font-size: 14px;
+ font-weight: 600;
+ letter-spacing: 1px;
+ color: #aab7cf;
+ margin-bottom: 0;
+ padding: 0;
+ }
+
+ .dashboard .filter .dropdown-item {
+ padding: 8px 15px;
+ }
+
+ /* Info Cards */
+ .dashboard .info-card {
+ padding-bottom: 10px;
+ }
+
+ .dashboard .info-card h6 {
+ font-size: 28px;
+ color: #012970;
+ font-weight: 700;
+ margin: 0;
+ padding: 0;
+ }
+
+ .dashboard .card-icon {
+ font-size: 32px;
+ line-height: 0;
+ width: 64px;
+ height: 64px;
+ flex-shrink: 0;
+ flex-grow: 0;
+ }
+
+ .dashboard .sales-card .card-icon {
+ color: #4154f1;
+ background: #f6f6fe;
+ }
+
+ .dashboard .revenue-card .card-icon {
+ color: #2eca6a;
+ background: #e0f8e9;
+ }
+
+ .dashboard .customers-card .card-icon {
+ color: #ff771d;
+ background: #ffecdf;
+ }
+
+ /* Activity */
+ .dashboard .activity {
+ font-size: 14px;
+ }
+
+ .dashboard .activity .activity-item .activite-label {
+ color: #888;
+ position: relative;
+ flex-shrink: 0;
+ flex-grow: 0;
+ min-width: 64px;
+ }
+
+ .dashboard .activity .activity-item .activite-label::before {
+ content: "";
+ position: absolute;
+ right: -11px;
+ width: 4px;
+ top: 0;
+ bottom: 0;
+ background-color: #eceefe;
+ }
+
+ .dashboard .activity .activity-item .activity-badge {
+ margin-top: 3px;
+ z-index: 1;
+ font-size: 11px;
+ line-height: 0;
+ border-radius: 50%;
+ flex-shrink: 0;
+ border: 3px solid #fff;
+ flex-grow: 0;
+ }
+
+ .dashboard .activity .activity-item .activity-content {
+ padding-left: 10px;
+ padding-bottom: 20px;
+ }
+
+ .dashboard .activity .activity-item:first-child .activite-label::before {
+ top: 5px;
+ }
+
+ .dashboard .activity .activity-item:last-child .activity-content {
+ padding-bottom: 0;
+ }
+
+ /* News & Updates */
+ .dashboard .news .post-item+.post-item {
+ margin-top: 15px;
+ }
+
+ .dashboard .news img {
+ width: 80px;
+ float: left;
+ border-radius: 5px;
+ }
+
+ .dashboard .news h4 {
+ font-size: 15px;
+ margin-left: 95px;
+ font-weight: bold;
+ margin-bottom: 5px;
+ }
+
+ .dashboard .news h4 a {
+ color: #012970;
+ transition: 0.3s;
+ }
+
+ .dashboard .news h4 a:hover {
+ color: #4154f1;
+ }
+
+ .dashboard .news p {
+ font-size: 14px;
+ color: #777777;
+ margin-left: 95px;
+ }
+
+ /* Recent Sales */
+ .dashboard .recent-sales {
+ font-size: 14px;
+ }
+
+ .dashboard .recent-sales .table thead {
+ background: #f6f6fe;
+ }
+
+ .dashboard .recent-sales .table thead th {
+ border: 0;
+ }
+
+ .dashboard .recent-sales .dataTable-top {
+ padding: 0 0 10px 0;
+ }
+
+ .dashboard .recent-sales .dataTable-bottom {
+ padding: 10px 0 0 0;
+ }
+
+ /* Top Selling */
+ .dashboard .top-selling {
+ font-size: 14px;
+ }
+
+ .dashboard .top-selling .table thead {
+ background: #f6f6fe;
+ }
+
+ .dashboard .top-selling .table thead th {
+ border: 0;
+ }
+
+ .dashboard .top-selling .table tbody td {
+ vertical-align: middle;
+ }
+
+ .dashboard .top-selling img {
+ border-radius: 5px;
+ max-width: 60px;
+ }
+
+ /*--------------------------------------------------------------
+ # Icons list page
+ --------------------------------------------------------------*/
+ .iconslist {
+ display: grid;
+ max-width: 100%;
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
+ gap: 1.25rem;
+ padding-top: 15px;
+ }
+
+ .iconslist .icon {
+ background-color: #fff;
+ border-radius: 0.25rem;
+ text-align: center;
+ color: #012970;
+ padding: 15px 0;
+ }
+
+ .iconslist i {
+ margin: 0.25rem;
+ font-size: 2.5rem;
+ }
+
+ .iconslist .label {
+ font-family: var(--bs-font-monospace);
+ display: inline-block;
+ width: 100%;
+ overflow: hidden;
+ padding: 0.25rem;
+ font-size: 12px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ color: #666;
+ }
+
+ /*--------------------------------------------------------------
+ # Profie Page
+ --------------------------------------------------------------*/
+ .profile .profile-card img {
+ max-width: 120px;
+ }
+
+ .profile .profile-card h2 {
+ font-size: 24px;
+ font-weight: 700;
+ color: #2c384e;
+ margin: 10px 0 0 0;
+ }
+
+ .profile .profile-card h3 {
+ font-size: 18px;
+ }
+
+ .profile .profile-card .social-links a {
+ font-size: 20px;
+ display: inline-block;
+ color: rgba(1, 41, 112, 0.5);
+ line-height: 0;
+ margin-right: 10px;
+ transition: 0.3s;
+ }
+
+ .profile .profile-card .social-links a:hover {
+ color: #012970;
+ }
+
+ .profile .profile-overview .row {
+ margin-bottom: 20px;
+ font-size: 15px;
+ }
+
+ .profile .profile-overview .card-title {
+ color: #012970;
+ }
+
+ .profile .profile-overview .label {
+ font-weight: 600;
+ color: rgba(1, 41, 112, 0.6);
+ }
+
+ .profile .profile-edit label {
+ font-weight: 600;
+ color: rgba(1, 41, 112, 0.6);
+ }
+
+ .profile .profile-edit img {
+ max-width: 120px;
+ }
+
+ /*--------------------------------------------------------------
+ # F.A.Q Page
+ --------------------------------------------------------------*/
+ .faq .basic h6 {
+ font-size: 18px;
+ font-weight: 600;
+ color: #4154f1;
+ }
+
+ .faq .basic p {
+ color: #6980aa;
+ }
+
+ /*--------------------------------------------------------------
+ # Contact
+ --------------------------------------------------------------*/
+ .contact .info-box {
+ padding: 28px 30px;
+ }
+
+ .contact .info-box i {
+ font-size: 38px;
+ line-height: 0;
+ color: #4154f1;
+ }
+
+ .contact .info-box h3 {
+ font-size: 20px;
+ color: #012970;
+ font-weight: 700;
+ margin: 20px 0 10px 0;
+ }
+
+ .contact .info-box p {
+ padding: 0;
+ line-height: 24px;
+ font-size: 14px;
+ margin-bottom: 0;
+ }
+
+ .contact .php-email-form .error-message {
+ display: none;
+ color: #fff;
+ background: #ed3c0d;
+ text-align: left;
+ padding: 15px;
+ margin-bottom: 24px;
+ font-weight: 600;
+ }
+
+ .contact .php-email-form .sent-message {
+ display: none;
+ color: #fff;
+ background: #18d26e;
+ text-align: center;
+ padding: 15px;
+ margin-bottom: 24px;
+ font-weight: 600;
+ }
+
+ .contact .php-email-form .loading {
+ display: none;
+ background: #fff;
+ text-align: center;
+ padding: 15px;
+ margin-bottom: 24px;
+ }
+
+ .contact .php-email-form .loading:before {
+ content: "";
+ display: inline-block;
+ border-radius: 50%;
+ width: 24px;
+ height: 24px;
+ margin: 0 10px -6px 0;
+ border: 3px solid #18d26e;
+ border-top-color: #eee;
+ animation: animate-loading 1s linear infinite;
+ }
+
+ .contact .php-email-form input,
+ .contact .php-email-form textarea {
+ border-radius: 0;
+ box-shadow: none;
+ font-size: 14px;
+ border-radius: 0;
+ }
+
+ .contact .php-email-form input:focus,
+ .contact .php-email-form textarea:focus {
+ border-color: #4154f1;
+ }
+
+ .contact .php-email-form input {
+ padding: 10px 15px;
+ }
+
+ .contact .php-email-form textarea {
+ padding: 12px 15px;
+ }
+
+ .contact .php-email-form button[type=submit] {
+ background: #4154f1;
+ border: 0;
+ padding: 10px 30px;
+ color: #fff;
+ transition: 0.4s;
+ border-radius: 4px;
+ }
+
+ .contact .php-email-form button[type=submit]:hover {
+ background: #5969f3;
+ }
+
+ @keyframes animate-loading {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
+ }
+
+ /*--------------------------------------------------------------
+ # Error 404
+ --------------------------------------------------------------*/
+ .error-404 {
+ padding: 30px;
+ }
+
+ .error-404 h1 {
+ font-size: 180px;
+ font-weight: 700;
+ color: #4154f1;
+ margin-bottom: 0;
+ line-height: 150px;
+ }
+
+ .error-404 h2 {
+ font-size: 24px;
+ font-weight: 700;
+ color: #012970;
+ margin-bottom: 30px;
+ }
+
+ .error-404 .btn {
+ background: #51678f;
+ color: #fff;
+ padding: 8px 30px;
+ }
+
+ .error-404 .btn:hover {
+ background: #3e4f6f;
+ }
+
+ @media (min-width: 992px) {
+ .error-404 img {
+ max-width: 50%;
+ }
+ }
+
+ /*--------------------------------------------------------------
+ # Footer
+ --------------------------------------------------------------*/
+ .footer {
+ padding: 20px 0;
+ font-size: 14px;
+ transition: all 0.3s;
+ border-top: 1px solid #cddfff;
+ }
+
+ .footer .copyright {
+ text-align: center;
+ color: #012970;
+ }
+
+ .footer .credits {
+ padding-top: 5px;
+ text-align: center;
+ font-size: 13px;
+ color: #012970;
+ }
\ No newline at end of file
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 46b12a1d..e5c70b5c 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -103,7 +103,7 @@
-
+
@@ -137,15 +137,10 @@
Diterima
-
- {{ $HistoryRefundUser['status'] }}
{{ $HistoryRefundUser['uploadBukti'] }}
- {{-- Detail --}}
- {{-- Detail
- --}}
+
@endforeach
diff --git a/resources/views/layout/footer.blade.php b/resources/views/layout/footer.blade.php
deleted file mode 100644
index fbbd0cd5..00000000
--- a/resources/views/layout/footer.blade.php
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/resources/views/layout/header.blade.php b/resources/views/layout/header.blade.php
deleted file mode 100644
index 6c4e76e4..00000000
--- a/resources/views/layout/header.blade.php
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-
-
-
diff --git a/resources/views/layout/main.blade.php b/resources/views/layout/main.blade.php
deleted file mode 100644
index 05f47a21..00000000
--- a/resources/views/layout/main.blade.php
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
REKBER
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @include('layout.sidebar')
- @yield('content')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/resources/views/layout/sidebar.blade.php b/resources/views/layout/sidebar.blade.php
deleted file mode 100644
index 8786723c..00000000
--- a/resources/views/layout/sidebar.blade.php
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
diff --git a/resources/views/refund/detail-refund.blade.php b/resources/views/refund/detail-refund.blade.php
deleted file mode 100644
index aeaecfaa..00000000
--- a/resources/views/refund/detail-refund.blade.php
+++ /dev/null
@@ -1,39 +0,0 @@
-@extends('layout.main')
-
-@section('content')
-
-
-
-
-
- @foreach ($detail_refund as $DetailRefund)
-
-
-
ID Order: {{ $DetailRefund['orderId'] }}
-
Customer Name: {{ $DetailRefund['customer'] }}
-
Seller Name: {{ $DetailRefund['seller'] }}
-
Total: {{ $DetailRefund['total'] }}
-
Due Date: {{ $DetailRefund['date'] }}
-
Reason Complaint: {{ $DetailRefund['complaint'] }}
-
Image/Video:
-
-
-
-
-
-
-
-
- @endforeach
-
-
-
-
-
-
-@endsection
diff --git a/resources/views/refund/history-refund.blade.php b/resources/views/refund/history-refund.blade.php
deleted file mode 100644
index f01057c5..00000000
--- a/resources/views/refund/history-refund.blade.php
+++ /dev/null
@@ -1,43 +0,0 @@
-@extends('layout.main')
-@section('content')
-
-
-
-
-
-
-
-
-
- Order ID
- Customer
- Seller
- Total
- Due Date
- Status
- Action
-
- @foreach ($history_refund as $HistoryRefund)
-
- {{ $HistoryRefund['orderId'] }}
- {{ $HistoryRefund['customer'] }}
- {{ $HistoryRefund['seller'] }}
- {{ $HistoryRefund['total'] }}
- {{ $HistoryRefund['date'] }}
-
- {{ $HistoryRefund['status'] }}
-
-
- Detail
-
-
- @endforeach
-
-
-
-
-
-
- @endsection
diff --git a/resources/views/refund/next-detail-refund.blade.php b/resources/views/refund/next-detail-refund.blade.php
deleted file mode 100644
index 69c0747e..00000000
--- a/resources/views/refund/next-detail-refund.blade.php
+++ /dev/null
@@ -1,326 +0,0 @@
-@extends('layout.main')
-@section('content')
-
-
-
-
-
-
-
-
-
-
-
- NO
- Username
- Email
- Alamat
- No.Telepon
- Aksi
-
-
-
-
-
-
-
-
-
-
-
-
- @push('css')
-
- @endpush
-@endsection
diff --git a/resources/views/transaction/Detail_History_Transaction.blade.php b/resources/views/transaction/Detail_History_Transaction.blade.php
deleted file mode 100644
index 34f40cd8..00000000
--- a/resources/views/transaction/Detail_History_Transaction.blade.php
+++ /dev/null
@@ -1,25 +0,0 @@
-@extends('layout.main')
-@section('content')
- @foreach ($detail_transaction as $detail_transactions)
-
-
-
-
Tracking Information
-
-
Tracking Number: {{ $detail_transactions['tracking_number'] }}
-
Order ID: {{ $detail_transactions['orderId'] }}
-
Status: {{ $detail_transactions['status'] }}
-
Estimated: {{ $detail_transactions['estimated'] }}
-
-
Tracking Details
-
- {{ $detail_transactions['tracking_detail1'] }}
- {{ $detail_transactions['tracking_detail2'] }}
- {{ $detail_transactions['tracking_detail3'] }}
-
-
-
-
- @endforeach
-@endsection
diff --git a/resources/views/transaction/History_Transaction.blade.php b/resources/views/transaction/History_Transaction.blade.php
deleted file mode 100644
index 48f11466..00000000
--- a/resources/views/transaction/History_Transaction.blade.php
+++ /dev/null
@@ -1,44 +0,0 @@
-@extends('layout.main')
-@section('content')
-
-
-
-
-
-
-
-
-
- Order ID
- Customer
- Seller
- Total
- Due Date
- Status
- Action
-
- @foreach ($transaction as $transactions)
-
- {{ $transactions['orderId'] }}
- {{ $transactions['customer'] }}
- {{ $transactions['seller'] }}
- {{ $transactions['total'] }}
- {{ $transactions['date'] }}
-
- {{ $transactions['status'] }}
-
-
- Detail
-
-
-
- @endforeach
-
-
-
-
-
-
- @endsection
diff --git a/resources/views/transaction/List_Transaction.blade.php b/resources/views/transaction/List_Transaction.blade.php
deleted file mode 100644
index 2554bab1..00000000
--- a/resources/views/transaction/List_Transaction.blade.php
+++ /dev/null
@@ -1,64 +0,0 @@
-@extends('layout.main')
-
-@section('content')
-
-
-
-
-
-
-
- Show:
-
- 10
- 25
- 50
- 100
-
- entries
-
-
-
Search:
-
-
-
-
-
-
-
- Order ID
- Customer
- Seller
- Total
- Due Date
- Status
- Action
-
- @foreach ($transaction as $transactions)
-
- {{ $transactions['orderId'] }}
- {{ $transactions['customer'] }}
- {{ $transactions['seller'] }}
- {{ $transactions['total'] }}
- {{ $transactions['date'] }}
-
- {{ $transactions['status'] }}
-
-
-
-
-
- @endforeach
-
-
-
-
-
-
-
-@endsection
diff --git a/resources/views/user/contact/add-contact.blade.php b/resources/views/user/contact/add-contact.blade.php
index c4232165..059e990b 100644
--- a/resources/views/user/contact/add-contact.blade.php
+++ b/resources/views/user/contact/add-contact.blade.php
@@ -15,7 +15,8 @@
diff --git a/resources/views/user/layout/header.blade.php b/resources/views/user/layout/header.blade.php
index 6c4e76e4..e39bb54b 100644
--- a/resources/views/user/layout/header.blade.php
+++ b/resources/views/user/layout/header.blade.php
@@ -207,15 +207,15 @@