diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 6e29c79..6c95513 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -5,6 +5,7 @@
use App\Models\Userlog;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\QueryException;
+use Illuminate\Foundation\Console\AboutCommand;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Event;
@@ -12,6 +13,7 @@
use Illuminate\Support\Facades\Log;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Str;
+use Opcodes\LogViewer\Facades\LogViewer;
use Stevebauman\Location\Facades\Location;
class AppServiceProvider extends ServiceProvider
@@ -29,31 +31,60 @@ public function register(): void
*/
public function boot(): void
{
+ // -----------------------------------------------------------------------
+ // Pagination
+ // -----------------------------------------------------------------------
Paginator::useBootstrapFive();
+ // -----------------------------------------------------------------------
// log all queries when in not in production
+ // -----------------------------------------------------------------------
if (! app()->isProduction()) {
DB::listen(function ($query) {
logger(Str::replaceArray('?', $query->bindings, $query->sql));
});
}
-
+ // -----------------------------------------------------------------------
// log all N+1 queries
+ // -----------------------------------------------------------------------
Model::preventLazyLoading();
Model::handleLazyLoadingViolationUsing(function ($model, $relation) {
Log::warning("N+1 Query detected.\r\n" . sprintf('N+1 Query detected in model %s on relation %s.', get_class($model), $relation));
});
+ // -----------------------------------------------------------------------
+ // Developer only
+ // -----------------------------------------------------------------------
Gate::define('developer', function ($user) {
return $user->is_developer;
});
+ // -----------------------------------------------------------------------
+ // Log Viewer : grant access (in production) to developer
+ // -----------------------------------------------------------------------
+ LogViewer::auth(function ($request) {
+ return auth()->user() && auth()->user()->is_developer;
+ });
+
+ // -----------------------------------------------------------------------
+ // Init application
+ // -----------------------------------------------------------------------
Event::listen(\Illuminate\Auth\Events\Login::class, function ($event) {
$this->setYear();
$this->logUser($event->user);
});
+
+ // -----------------------------------------------------------------------
+ // about
+ // -----------------------------------------------------------------------
+ AboutCommand::add('Application', [
+ 'Name' => 'L11 - BS 5 - DT 2',
+ 'author' => 'kreaweb.be',
+ 'github' => 'https://github.com/MGeurts/laravel-11-bootstrap-5-datatables',
+ 'license' => 'MIT License',
+ ]);
}
private function setYear()
diff --git a/composer.json b/composer.json
index 468360c..af57f82 100644
--- a/composer.json
+++ b/composer.json
@@ -6,10 +6,10 @@
"license": "MIT",
"require": {
"php": "^8.2",
- "arcanedev/log-viewer": "^11.0",
"khill/lavacharts": "3.1.*",
"laravel/framework": "^11.0",
"laravel/tinker": "^2.9",
+ "opcodesio/log-viewer": "^3.8",
"spatie/laravel-backup": "^8.6",
"stevebauman/location": "^7.2",
"yajra/laravel-datatables-oracle": "^11.0"
diff --git a/composer.lock b/composer.lock
index ce63f1e..cb10561 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,146 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "2cfd1863e30d48d8e7cbafdfcc5e3814",
+ "content-hash": "ca51f0bbe6e2c89a71c2c458558f396f",
"packages": [
- {
- "name": "arcanedev/log-viewer",
- "version": "11.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/ARCANEDEV/LogViewer.git",
- "reference": "806498da9792eb34e39df9350a7379a9018eaf5d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ARCANEDEV/LogViewer/zipball/806498da9792eb34e39df9350a7379a9018eaf5d",
- "reference": "806498da9792eb34e39df9350a7379a9018eaf5d",
- "shasum": ""
- },
- "require": {
- "arcanedev/support": "^11.0",
- "ext-json": "*",
- "php": "^8.2",
- "psr/log": "^1.0|^2.0|^3.0"
- },
- "require-dev": {
- "laravel/framework": "^11.0",
- "mockery/mockery": "^1.6",
- "orchestra/testbench-core": "^9.0",
- "phpunit/phpunit": "^10.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-develop": "11.x-dev"
- },
- "laravel": {
- "providers": [
- "Arcanedev\\LogViewer\\LogViewerServiceProvider",
- "Arcanedev\\LogViewer\\Providers\\DeferredServicesProvider"
- ]
- }
- },
- "autoload": {
- "files": [
- "helpers.php"
- ],
- "psr-4": {
- "Arcanedev\\LogViewer\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "ARCANEDEV",
- "email": "arcanedev.maroc@gmail.com",
- "homepage": "https://github.com/arcanedev-maroc",
- "role": "Developer"
- }
- ],
- "description": "Provides a Log Viewer for Laravel",
- "homepage": "https://github.com/ARCANEDEV/LogViewer",
- "keywords": [
- "arcanedev",
- "arcanesoft",
- "laravel",
- "log",
- "log viewer",
- "log-viewer",
- "logviewer"
- ],
- "support": {
- "issues": "https://github.com/ARCANEDEV/LogViewer/issues",
- "source": "https://github.com/ARCANEDEV/LogViewer/tree/11.0.1"
- },
- "time": "2024-03-18T22:50:40+00:00"
- },
- {
- "name": "arcanedev/support",
- "version": "11.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ARCANEDEV/Support.git",
- "reference": "dcade384b54d540b63eac152bfdeebc155066524"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ARCANEDEV/Support/zipball/dcade384b54d540b63eac152bfdeebc155066524",
- "reference": "dcade384b54d540b63eac152bfdeebc155066524",
- "shasum": ""
- },
- "require": {
- "illuminate/contracts": "^11.0",
- "illuminate/support": "^11.0",
- "php": "^8.2"
- },
- "require-dev": {
- "laravel/framework": "^11.0",
- "orchestra/testbench-core": "^9.0",
- "phpunit/phpunit": "^10.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-develop": "11.x-dev"
- }
- },
- "autoload": {
- "files": [
- "helpers.php"
- ],
- "psr-4": {
- "Arcanedev\\Support\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "ARCANEDEV",
- "email": "arcanedev.maroc@gmail.com",
- "homepage": "https://github.com/arcanedev-maroc"
- }
- ],
- "description": "ARCANEDEV Support Helpers",
- "homepage": "https://github.com/ARCANEDEV/Support",
- "keywords": [
- "arcanedev",
- "arcanesoft",
- "laravel",
- "support"
- ],
- "support": {
- "issues": "https://github.com/ARCANEDEV/Support/issues",
- "source": "https://github.com/ARCANEDEV/Support/tree/11.0.0"
- },
- "time": "2024-03-17T21:57:40+00:00"
- },
{
"name": "brick/math",
"version": "0.11.0",
@@ -1393,16 +1255,16 @@
},
{
"name": "laravel/framework",
- "version": "v11.3.0",
+ "version": "v11.3.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "cbcb0ee3da8c5f98497d9a282609732251a7dd1e"
+ "reference": "3b87d0767e9cbddec46480d883010ba720e50dea"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/cbcb0ee3da8c5f98497d9a282609732251a7dd1e",
- "reference": "cbcb0ee3da8c5f98497d9a282609732251a7dd1e",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/3b87d0767e9cbddec46480d883010ba720e50dea",
+ "reference": "3b87d0767e9cbddec46480d883010ba720e50dea",
"shasum": ""
},
"require": {
@@ -1594,7 +1456,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2024-04-09T15:19:11+00:00"
+ "time": "2024-04-10T15:13:49+00:00"
},
{
"name": "laravel/prompts",
@@ -2790,6 +2652,147 @@
],
"time": "2024-03-06T16:17:14+00:00"
},
+ {
+ "name": "opcodesio/log-viewer",
+ "version": "v3.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/opcodesio/log-viewer.git",
+ "reference": "e7af7313a6d06af03ac2ee1a565ccf57bde4f976"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/e7af7313a6d06af03ac2ee1a565ccf57bde4f976",
+ "reference": "e7af7313a6d06af03ac2ee1a565ccf57bde4f976",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0",
+ "opcodesio/mail-parser": "^0.1.6",
+ "php": "^8.0"
+ },
+ "conflict": {
+ "arcanedev/log-viewer": "^8.0"
+ },
+ "require-dev": {
+ "guzzlehttp/guzzle": "^7.2",
+ "itsgoingd/clockwork": "^5.1",
+ "laravel/pint": "^1.0",
+ "nunomaduro/collision": "^7.0|^8.0",
+ "orchestra/testbench": "^7.6|^8.0|^9.0",
+ "pestphp/pest": "^2.0",
+ "pestphp/pest-plugin-laravel": "^2.0",
+ "spatie/test-time": "^1.3"
+ },
+ "suggest": {
+ "guzzlehttp/guzzle": "Required for multi-host support. ^7.2"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Opcodes\\LogViewer\\LogViewerServiceProvider"
+ ],
+ "aliases": {
+ "LogViewer": "Opcodes\\LogViewer\\Facades\\LogViewer"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Opcodes\\LogViewer\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Arunas Skirius",
+ "email": "arukomp@gmail.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "Fast and easy-to-use log viewer for your Laravel application",
+ "homepage": "https://github.com/opcodesio/log-viewer",
+ "keywords": [
+ "arukompas",
+ "better-log-viewer",
+ "laravel",
+ "log viewer",
+ "logs",
+ "opcodesio"
+ ],
+ "support": {
+ "issues": "https://github.com/opcodesio/log-viewer/issues",
+ "source": "https://github.com/opcodesio/log-viewer/tree/v3.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.buymeacoffee.com/arunas",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/arukompas",
+ "type": "github"
+ }
+ ],
+ "time": "2024-04-11T14:05:01+00:00"
+ },
+ {
+ "name": "opcodesio/mail-parser",
+ "version": "v0.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/opcodesio/mail-parser.git",
+ "reference": "639ef31cbd146a63416283e75afce152e13233ea"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/639ef31cbd146a63416283e75afce152e13233ea",
+ "reference": "639ef31cbd146a63416283e75afce152e13233ea",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "pestphp/pest": "^2.16",
+ "symfony/var-dumper": "^6.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Opcodes\\MailParser\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Arunas Skirius",
+ "email": "arukomp@gmail.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "Parse emails without the mailparse extension",
+ "keywords": [
+ "arukompas",
+ "email",
+ "email parser",
+ "mail",
+ "opcodesio",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/opcodesio/mail-parser/issues",
+ "source": "https://github.com/opcodesio/mail-parser/tree/v0.1.6"
+ },
+ "time": "2023-11-19T08:47:43+00:00"
+ },
{
"name": "phpoption/phpoption",
"version": "1.9.2",
@@ -3941,16 +3944,16 @@
},
{
"name": "stevebauman/location",
- "version": "v7.2.0",
+ "version": "v7.2.1",
"source": {
"type": "git",
"url": "https://github.com/stevebauman/location.git",
- "reference": "969303a569453b4a00ca43349101c80ea87f65d3"
+ "reference": "c95c397bf54a109f9cdb335377887047408dc8bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/stevebauman/location/zipball/969303a569453b4a00ca43349101c80ea87f65d3",
- "reference": "969303a569453b4a00ca43349101c80ea87f65d3",
+ "url": "https://api.github.com/repos/stevebauman/location/zipball/c95c397bf54a109f9cdb335377887047408dc8bc",
+ "reference": "c95c397bf54a109f9cdb335377887047408dc8bc",
"shasum": ""
},
"require": {
@@ -4003,9 +4006,9 @@
],
"support": {
"issues": "https://github.com/stevebauman/location/issues",
- "source": "https://github.com/stevebauman/location/tree/v7.2.0"
+ "source": "https://github.com/stevebauman/location/tree/v7.2.1"
},
- "time": "2024-03-12T15:43:20+00:00"
+ "time": "2024-04-09T17:05:20+00:00"
},
{
"name": "symfony/console",
@@ -6593,16 +6596,16 @@
"packages-dev": [
{
"name": "barryvdh/laravel-debugbar",
- "version": "v3.13.3",
+ "version": "v3.13.4",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
- "reference": "241e9bddb04ab42a04a5fe8b2b9654374c864229"
+ "reference": "00201bcd1eaf9b1d3debddcdc13c219e4835fb61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/241e9bddb04ab42a04a5fe8b2b9654374c864229",
- "reference": "241e9bddb04ab42a04a5fe8b2b9654374c864229",
+ "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/00201bcd1eaf9b1d3debddcdc13c219e4835fb61",
+ "reference": "00201bcd1eaf9b1d3debddcdc13c219e4835fb61",
"shasum": ""
},
"require": {
@@ -6661,7 +6664,7 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
- "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.13.3"
+ "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.13.4"
},
"funding": [
{
@@ -6673,7 +6676,7 @@
"type": "github"
}
],
- "time": "2024-04-04T02:42:49+00:00"
+ "time": "2024-04-10T09:15:45+00:00"
},
{
"name": "fakerphp/faker",
diff --git a/config/log-viewer.php b/config/log-viewer.php
index 5578289..656b46c 100644
--- a/config/log-viewer.php
+++ b/config/log-viewer.php
@@ -1,146 +1,218 @@
storage_path('logs'),
-
- /* -----------------------------------------------------------------
- | Log files pattern
- | -----------------------------------------------------------------
- */
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer
+ |--------------------------------------------------------------------------
+ | Log Viewer can be disabled, so it's no longer accessible via browser.
+ |
+ */
+
+ 'enabled' => env('LOG_VIEWER_ENABLED', true),
+
+ 'api_only' => env('LOG_VIEWER_API_ONLY', false),
+
+ 'require_auth_in_production' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer Domain
+ |--------------------------------------------------------------------------
+ | You may change the domain where Log Viewer should be active.
+ | If the domain is empty, all domains will be valid.
+ |
+ */
+
+ 'route_domain' => null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer Route
+ |--------------------------------------------------------------------------
+ | Log Viewer will be available under this URL.
+ |
+ */
+
+ 'route_path' => 'log-viewer',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Back to system URL
+ |--------------------------------------------------------------------------
+ | When set, displays a link to easily get back to this URL.
+ | Set to `null` to hide this link.
+ |
+ | Optional label to display for the above URL.
+ |
+ */
+
+ 'back_to_system_url' => config('app.url', null),
+
+ 'back_to_system_label' => null, // Displayed by default: "Back to {{ app.name }}"
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer time zone.
+ |--------------------------------------------------------------------------
+ | The time zone in which to display the times in the UI. Defaults to
+ | the application's timezone defined in config/app.php.
+ |
+ */
+
+ 'timezone' => null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer route middleware.
+ |--------------------------------------------------------------------------
+ | Optional middleware to use when loading the initial Log Viewer page.
+ |
+ */
+
+ 'middleware' => [
+ 'web',
+ \Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
+ ],
- 'pattern' => [
- 'prefix' => Filesystem::PATTERN_PREFIX, // 'laravel-'
- 'date' => Filesystem::PATTERN_DATE, // '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
- 'extension' => Filesystem::PATTERN_EXTENSION, // '.log'
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer API middleware.
+ |--------------------------------------------------------------------------
+ | Optional middleware to use on every API request. The same API is also
+ | used from within the Log Viewer user interface.
+ |
+ */
+
+ 'api_middleware' => [
+ \Opcodes\LogViewer\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+ \Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
],
- /* -----------------------------------------------------------------
- | Locale
- | -----------------------------------------------------------------
- | Supported locales :
- | 'auto', 'ar', 'bg', 'de', 'en', 'es', 'et', 'fa', 'fr', 'hu', 'hy', 'id', 'it', 'ja', 'ko', 'nl',
- | 'pl', 'pt-BR', 'ro', 'ru', 'sv', 'th', 'tr', 'zh-TW', 'zh'
- */
-
- 'locale' => 'auto',
-
- /* -----------------------------------------------------------------
- | Theme
- | -----------------------------------------------------------------
- | Supported themes :
- | 'bootstrap-5'
- | 'bootstrap-4'
- | 'bootstrap-3'
- |
- | You can make your own theme by adding a folder to the views directory and specifying it here.
- */
-
- 'theme' => 'bootstrap-5',
-
- /* -----------------------------------------------------------------
- | Route settings
- | -----------------------------------------------------------------
- */
-
- 'route' => [
- 'enabled' => true,
-
- 'attributes' => [
- 'prefix' => '/back/developer/log-monitor',
-
- 'middleware' => env('ARCANEDEV_LOGVIEWER_MIDDLEWARE') ? explode(',', env('ARCANEDEV_LOGVIEWER_MIDDLEWARE')) : null,
+ 'api_stateful_domains' => env('LOG_VIEWER_API_STATEFUL_DOMAINS') ? explode(',', env('LOG_VIEWER_API_STATEFUL_DOMAINS')) : null,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Log Viewer Remote hosts.
+ |--------------------------------------------------------------------------
+ | Log Viewer supports viewing Laravel logs from remote hosts. They must
+ | be running Log Viewer as well. Below you can define the hosts you
+ | would like to show in this Log Viewer instance.
+ |
+ */
+
+ 'hosts' => [
+ 'local' => [
+ 'name' => ucfirst(env('APP_ENV', 'local')),
],
- 'show' => 'log-viewer::logs.show',
+ // 'staging' => [
+ // 'name' => 'Staging',
+ // 'host' => 'https://staging.example.com/log-viewer',
+ // 'auth' => [ // Example of HTTP Basic auth
+ // 'username' => 'username',
+ // 'password' => 'password',
+ // ],
+ // ],
+ //
+ // 'production' => [
+ // 'name' => 'Production',
+ // 'host' => 'https://example.com/log-viewer',
+ // 'auth' => [ // Example of Bearer token auth
+ // 'token' => env('LOG_VIEWER_PRODUCTION_TOKEN'),
+ // ],
+ // 'headers' => [
+ // 'X-Foo' => 'Bar',
+ // ],
+ // ],
],
- /* -----------------------------------------------------------------
- | Log entries per page
- | -----------------------------------------------------------------
- | This defines how many logs & entries are displayed per page.
- */
-
- 'per-page' => 30,
-
- /* -----------------------------------------------------------------
- | Download settings
- | -----------------------------------------------------------------
- */
-
- 'download' => [
- 'prefix' => 'l11-bs5-dt2-',
-
- 'extension' => 'log',
+ /*
+ |--------------------------------------------------------------------------
+ | Include file patterns
+ |--------------------------------------------------------------------------
+ |
+ */
+
+ 'include_files' => [
+ '*.log',
+ '**/*.log',
+
+ // You can include paths to other log types as well, such as apache, nginx, and more.
+ '/var/log/httpd/*',
+ '/var/log/nginx/*',
+
+ // MacOS Apple Silicon logs
+ '/opt/homebrew/var/log/nginx/*',
+ '/opt/homebrew/var/log/httpd/*',
+ '/opt/homebrew/var/log/php-fpm.log',
+ '/opt/homebrew/var/log/postgres*log',
+ '/opt/homebrew/var/log/redis*log',
+ '/opt/homebrew/var/log/supervisor*log',
+
+ // '/absolute/paths/supported',
],
- /* -----------------------------------------------------------------
- | Menu settings
- | -----------------------------------------------------------------
- */
-
- 'menu' => [
- 'filter-route' => 'log-viewer::logs.filter',
+ /*
+ |--------------------------------------------------------------------------
+ | Exclude file patterns.
+ |--------------------------------------------------------------------------
+ | This will take precedence over included files.
+ |
+ */
- 'icons-enabled' => true,
+ 'exclude_files' => [
+ // 'my_secret.log'
],
- /* -----------------------------------------------------------------
- | Icons
- | -----------------------------------------------------------------
- */
-
- 'icons' => [
- /**
- * Font awesome >= 4.3
- * http://fontawesome.io/icons/
- */
- 'all' => 'fa fa-fw fa-list', // http://fontawesome.io/icon/list/
- 'emergency' => 'fa fa-fw fa-bug', // http://fontawesome.io/icon/bug/
- 'alert' => 'fa fa-fw fa-bullhorn', // http://fontawesome.io/icon/bullhorn/
- 'critical' => 'fa fa-fw fa-heartbeat', // http://fontawesome.io/icon/heartbeat/
- 'error' => 'fa fa-fw fa-times-circle', // http://fontawesome.io/icon/times-circle/
- 'warning' => 'fa fa-fw fa-exclamation-triangle', // http://fontawesome.io/icon/exclamation-triangle/
- 'notice' => 'fa fa-fw fa-exclamation-circle', // http://fontawesome.io/icon/exclamation-circle/
- 'info' => 'fa fa-fw fa-info-circle', // http://fontawesome.io/icon/info-circle/
- 'debug' => 'fa fa-fw fa-life-ring', // http://fontawesome.io/icon/life-ring/
+ /*
+ |--------------------------------------------------------------------------
+ | Hide unknown files.
+ |--------------------------------------------------------------------------
+ | The include/exclude options above might catch files which are not
+ | logs supported by Log Viewer. In that case, you can hide them
+ | from the UI and API calls by setting this to true.
+ |
+ */
+
+ 'hide_unknown_files' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Shorter stack trace filters.
+ |--------------------------------------------------------------------------
+ | Lines containing any of these strings will be excluded from the full log.
+ | This setting is only active when the function is enabled via the user interface.
+ |
+ */
+
+ 'shorter_stack_trace_excludes' => [
+ '/vendor/symfony/',
+ '/vendor/laravel/framework/',
+ '/vendor/barryvdh/laravel-debugbar/',
],
- /* -----------------------------------------------------------------
- | Colors
- | -----------------------------------------------------------------
- */
-
- 'colors' => [
- 'levels' => [
- 'empty' => '#D1D1D1',
- 'all' => '#8A8A8A',
- 'emergency' => '#B71C1C',
- 'alert' => '#D32F2F',
- 'critical' => '#F44336',
- 'error' => '#FF5722',
- 'warning' => '#FF9100',
- 'notice' => '#4CAF50',
- 'info' => '#1976D2',
- 'debug' => '#90CAF9',
- ],
- ],
+ /*
+ |--------------------------------------------------------------------------
+ | Cache driver
+ |--------------------------------------------------------------------------
+ | Cache driver to use for storing the log indices. Indices are used to speed up
+ | log navigation. Defaults to your application's default cache driver.
+ |
+ */
- /* -----------------------------------------------------------------
- | Strings to highlight in stack trace
- | -----------------------------------------------------------------
- */
+ 'cache_driver' => env('LOG_VIEWER_CACHE_DRIVER', null),
- 'highlight' => [
- '^#\d+',
- '^Stack trace:',
- ],
+ /*
+ |--------------------------------------------------------------------------
+ | Chunk size when scanning log files lazily
+ |--------------------------------------------------------------------------
+ | The size in MB of files to scan before updating the progress bar when searching across all files.
+ |
+ */
+
+ 'lazy_scan_chunk_size_in_mb' => 50,
+ 'strip_extracted_context' => true,
];
diff --git a/package-lock.json b/package-lock.json
index db97d97..09dea98 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -414,9 +414,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.1.tgz",
- "integrity": "sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.2.tgz",
+ "integrity": "sha512-ahxSgCkAEk+P/AVO0vYr7DxOD3CwAQrT0Go9BJyGQ9Ef0QxVOfjDZMiF4Y2s3mLyPrjonchIMH/tbWHucJMykQ==",
"cpu": [
"arm"
],
@@ -427,9 +427,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.1.tgz",
- "integrity": "sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.2.tgz",
+ "integrity": "sha512-lAarIdxZWbFSHFSDao9+I/F5jDaKyCqAPMq5HqnfpBw8dKDiCaaqM0lq5h1pQTLeIqueeay4PieGR5jGZMWprw==",
"cpu": [
"arm64"
],
@@ -440,9 +440,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.1.tgz",
- "integrity": "sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.2.tgz",
+ "integrity": "sha512-SWsr8zEUk82KSqquIMgZEg2GE5mCSfr9sE/thDROkX6pb3QQWPp8Vw8zOq2GyxZ2t0XoSIUlvHDkrf5Gmf7x3Q==",
"cpu": [
"arm64"
],
@@ -453,9 +453,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.1.tgz",
- "integrity": "sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.2.tgz",
+ "integrity": "sha512-o/HAIrQq0jIxJAhgtIvV5FWviYK4WB0WwV91SLUnsliw1lSAoLsmgEEgRWzDguAFeUEUUoIWXiJrPqU7vGiVkA==",
"cpu": [
"x64"
],
@@ -466,9 +466,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.1.tgz",
- "integrity": "sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.2.tgz",
+ "integrity": "sha512-nwlJ65UY9eGq91cBi6VyDfArUJSKOYt5dJQBq8xyLhvS23qO+4Nr/RreibFHjP6t+5ap2ohZrUJcHv5zk5ju/g==",
"cpu": [
"arm"
],
@@ -479,9 +479,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.1.tgz",
- "integrity": "sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.2.tgz",
+ "integrity": "sha512-Pg5TxxO2IVlMj79+c/9G0LREC9SY3HM+pfAwX7zj5/cAuwrbfj2Wv9JbMHIdPCfQpYsI4g9mE+2Bw/3aeSs2rQ==",
"cpu": [
"arm64"
],
@@ -492,9 +492,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.1.tgz",
- "integrity": "sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.2.tgz",
+ "integrity": "sha512-cAOTjGNm84gc6tS02D1EXtG7tDRsVSDTBVXOLbj31DkwfZwgTPYZ6aafSU7rD/4R2a34JOwlF9fQayuTSkoclA==",
"cpu": [
"arm64"
],
@@ -505,11 +505,11 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.1.tgz",
- "integrity": "sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.2.tgz",
+ "integrity": "sha512-4RyT6v1kXb7C0fn6zV33rvaX05P0zHoNzaXI/5oFHklfKm602j+N4mn2YvoezQViRLPnxP8M1NaY4s/5kXO5cw==",
"cpu": [
- "ppc64le"
+ "ppc64"
],
"dev": true,
"optional": true,
@@ -518,9 +518,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.1.tgz",
- "integrity": "sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.2.tgz",
+ "integrity": "sha512-KNUH6jC/vRGAKSorySTyc/yRYlCwN/5pnMjXylfBniwtJx5O7X17KG/0efj8XM3TZU7raYRXJFFReOzNmL1n1w==",
"cpu": [
"riscv64"
],
@@ -531,9 +531,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.1.tgz",
- "integrity": "sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.2.tgz",
+ "integrity": "sha512-xPV4y73IBEXToNPa3h5lbgXOi/v0NcvKxU0xejiFw6DtIYQqOTMhZ2DN18/HrrP0PmiL3rGtRG9gz1QE8vFKXQ==",
"cpu": [
"s390x"
],
@@ -544,9 +544,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.1.tgz",
- "integrity": "sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.2.tgz",
+ "integrity": "sha512-QBhtr07iFGmF9egrPOWyO5wciwgtzKkYPNLVCFZTmr4TWmY0oY2Dm/bmhHjKRwZoGiaKdNcKhFtUMBKvlchH+Q==",
"cpu": [
"x64"
],
@@ -557,9 +557,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.1.tgz",
- "integrity": "sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.2.tgz",
+ "integrity": "sha512-8zfsQRQGH23O6qazZSFY5jP5gt4cFvRuKTpuBsC1ZnSWxV8ZKQpPqOZIUtdfMOugCcBvFGRa1pDC/tkf19EgBw==",
"cpu": [
"x64"
],
@@ -570,9 +570,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.1.tgz",
- "integrity": "sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.2.tgz",
+ "integrity": "sha512-H4s8UjgkPnlChl6JF5empNvFHp77Jx+Wfy2EtmYPe9G22XV+PMuCinZVHurNe8ggtwoaohxARJZbaH/3xjB/FA==",
"cpu": [
"arm64"
],
@@ -583,9 +583,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.1.tgz",
- "integrity": "sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.2.tgz",
+ "integrity": "sha512-djqpAjm/i8erWYF0K6UY4kRO3X5+T4TypIqw60Q8MTqSBaQNpNXDhxdjpZ3ikgb+wn99svA7jxcXpiyg9MUsdw==",
"cpu": [
"ia32"
],
@@ -596,9 +596,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.1.tgz",
- "integrity": "sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.2.tgz",
+ "integrity": "sha512-teAqzLT0yTYZa8ZP7zhFKEx4cotS8Tkk5XiqNMJhD4CpaWB1BHARE4Qy+RzwnXvSAYv+Q3jAqCVBS+PS+Yee8Q==",
"cpu": [
"x64"
],
@@ -847,23 +847,23 @@
}
},
"node_modules/datatables.net-select": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/datatables.net-select/-/datatables.net-select-2.0.0.tgz",
- "integrity": "sha512-sKMNoTlJejk5FfZo6Niwdn2/bHSDYiIt5WuMSsXzMGiCTIPtnDiYjNHF843vToKiTTsi+6T0zUuWddHLGPRsxA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/datatables.net-select/-/datatables.net-select-2.0.1.tgz",
+ "integrity": "sha512-ZrVseEmu+9cNd0PtuKpqRagwwp1K9P/JNaG6kdveCm5RzDYOqdulSB6owuIoIZwI59g9H4/d3paNl2q/wrYHZg==",
"dev": true,
"dependencies": {
- "datatables.net": ">=2.0.0",
+ "datatables.net": "^2",
"jquery": ">=1.7"
}
},
"node_modules/datatables.net-select-bs5": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/datatables.net-select-bs5/-/datatables.net-select-bs5-2.0.0.tgz",
- "integrity": "sha512-/kofh8KjUEzoHQ+Zji8movbzA3Ooe9Gz/UcjSJzc5CMHEq93gvcDT9x5jtRGBXO8zjQO0XWrXxFxkXoRO1SlAw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/datatables.net-select-bs5/-/datatables.net-select-bs5-2.0.1.tgz",
+ "integrity": "sha512-fMgqYBN+4Zy26vaCnHy9P+fTyswcwxjjnt18oSZKhRW9jHwrifFjubs4YwVcQYBV36Hmf72wrPzY3h1J6kslkA==",
"dev": true,
"dependencies": {
- "datatables.net-bs5": ">=2.0.0",
- "datatables.net-select": "2.0.0",
+ "datatables.net-bs5": "^2",
+ "datatables.net-select": "2.0.1",
"jquery": ">=1.7"
}
},
@@ -1250,9 +1250,9 @@
}
},
"node_modules/rollup": {
- "version": "4.14.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.1.tgz",
- "integrity": "sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==",
+ "version": "4.14.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.2.tgz",
+ "integrity": "sha512-WkeoTWvuBoFjFAhsEOHKRoZ3r9GfTyhh7Vff1zwebEFLEFjT1lG3784xEgKiTa7E+e70vsC81roVL2MP4tgEEQ==",
"dev": true,
"dependencies": {
"@types/estree": "1.0.5"
@@ -1265,21 +1265,21 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.14.1",
- "@rollup/rollup-android-arm64": "4.14.1",
- "@rollup/rollup-darwin-arm64": "4.14.1",
- "@rollup/rollup-darwin-x64": "4.14.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.14.1",
- "@rollup/rollup-linux-arm64-gnu": "4.14.1",
- "@rollup/rollup-linux-arm64-musl": "4.14.1",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.14.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.14.1",
- "@rollup/rollup-linux-s390x-gnu": "4.14.1",
- "@rollup/rollup-linux-x64-gnu": "4.14.1",
- "@rollup/rollup-linux-x64-musl": "4.14.1",
- "@rollup/rollup-win32-arm64-msvc": "4.14.1",
- "@rollup/rollup-win32-ia32-msvc": "4.14.1",
- "@rollup/rollup-win32-x64-msvc": "4.14.1",
+ "@rollup/rollup-android-arm-eabi": "4.14.2",
+ "@rollup/rollup-android-arm64": "4.14.2",
+ "@rollup/rollup-darwin-arm64": "4.14.2",
+ "@rollup/rollup-darwin-x64": "4.14.2",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.14.2",
+ "@rollup/rollup-linux-arm64-gnu": "4.14.2",
+ "@rollup/rollup-linux-arm64-musl": "4.14.2",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.14.2",
+ "@rollup/rollup-linux-riscv64-gnu": "4.14.2",
+ "@rollup/rollup-linux-s390x-gnu": "4.14.2",
+ "@rollup/rollup-linux-x64-gnu": "4.14.2",
+ "@rollup/rollup-linux-x64-musl": "4.14.2",
+ "@rollup/rollup-win32-arm64-msvc": "4.14.2",
+ "@rollup/rollup-win32-ia32-msvc": "4.14.2",
+ "@rollup/rollup-win32-x64-msvc": "4.14.2",
"fsevents": "~2.3.2"
}
},
@@ -1290,9 +1290,9 @@
"dev": true
},
"node_modules/sass": {
- "version": "1.74.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz",
- "integrity": "sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==",
+ "version": "1.75.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz",
+ "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
diff --git a/public/build/assets/datatables-BPIyAnQf.js b/public/build/assets/datatables-BZJQ16xp.js
similarity index 96%
rename from public/build/assets/datatables-BPIyAnQf.js
rename to public/build/assets/datatables-BZJQ16xp.js
index 7fd0d82..fa22a15 100644
--- a/public/build/assets/datatables-BPIyAnQf.js
+++ b/public/build/assets/datatables-BZJQ16xp.js
@@ -4,9 +4,9 @@ import{j as Ze,r as mn,c as bt,g as aa}from"./jquery-BbSKnqzy.js";/*! DataTables
* 2020 SpryMedia Ltd - datatables.net/license
*/let Ke=Ze;Ke.extend(!0,F.defaults,{renderer:"bootstrap"});Ke.extend(!0,F.ext.classes,{container:"dt-container dt-bootstrap5",search:{input:"form-control form-control-sm"},length:{select:"form-select form-select-sm"},processing:{container:"dt-processing card"}});F.ext.renderer.pagingButton.bootstrap=function(e,t,r,n,o){var a=["dt-paging-button","page-item"];n&&a.push("active"),o&&a.push("disabled");var i=Ke("
").addClass(a.join(" ")),l=Ke("",{href:o?null:"#",class:"page-link"}).html(r).appendTo(i);return{display:i,clicker:l}};F.ext.renderer.pagingContainer.bootstrap=function(e,t){return Ke("").addClass("pagination").append(t)};F.ext.renderer.layout.bootstrap=function(e,t,r){var n=Ke("",{class:r.full?"row mt-2 justify-content-md-center":"row mt-2 justify-content-between"}).appendTo(t);Ke.each(r,function(o,a){var i;a.table?i="col-12":o==="start"?i="col-md-auto me-auto":o==="end"?i="col-md-auto ms-auto":i="col-md",Ke("",{id:a.id||null,class:i+" "+(a.className||"")}).append(a.contents).appendTo(n)})};/*! Responsive 3.0.1
* © SpryMedia Ltd - datatables.net/license
- */let X=Ze;var Ie=function(e,t){if(!F.versionCheck||!F.versionCheck("2"))throw"DataTables Responsive requires DataTables 2 or newer";this.s={childNodeStore:{},columns:[],current:[],dt:new F.Api(e)},!this.s.dt.settings()[0].responsive&&(t&&typeof t.details=="string"?t.details={type:t.details}:t&&t.details===!1?t.details={type:!1}:t&&t.details===!0&&(t.details={type:"inline"}),this.c=X.extend(!0,{},Ie.defaults,F.defaults.responsive,t),e.responsive=this,this._constructor())};X.extend(Ie.prototype,{_constructor:function(){var e=this,t=this.s.dt,r=X(window).innerWidth();t.settings()[0]._responsive=this,X(window).on("orientationchange.dtr",F.util.throttle(function(){var o=X(window).innerWidth();o!==r&&(e._resize(),r=o)})),t.on("row-created.dtr",function(o,a,i,l){X.inArray(!1,e.s.current)!==-1&&X(">td, >th",a).each(function(u){var h=t.column.index("toData",u);e.s.current[h]===!1&&X(this).css("display","none")})}),t.on("destroy.dtr",function(){t.off(".dtr"),X(t.table().body()).off(".dtr"),X(window).off("resize.dtr orientationchange.dtr"),t.cells(".dtr-control").nodes().to$().removeClass("dtr-control"),X(t.table().node()).removeClass("dtr-inline collapsed"),X.each(e.s.current,function(o,a){a===!1&&e._setColumnVis(o,!0)})}),this.c.breakpoints.sort(function(o,a){return o.widtha.width?-1:0}),this._classLogic(),this._resizeAuto();var n=this.c.details;n.type!==!1&&(e._detailsInit(),t.on("column-visibility.dtr",function(){e._timer&&clearTimeout(e._timer),e._timer=setTimeout(function(){e._timer=null,e._classLogic(),e._resizeAuto(),e._resize(!0),e._redrawChildren()},100)}),t.on("draw.dtr",function(){e._redrawChildren()}),X(t.table().node()).addClass("dtr-"+n.type)),t.on("column-reorder.dtr",function(o,a,i){e._classLogic(),e._resizeAuto(),e._resize(!0)}),t.on("column-sizing.dtr",function(){e._resizeAuto(),e._resize()}),t.on("column-calc.dt",function(o,a){for(var i=e.s.current,l=0;l=0&&a.visible.splice(u,1)}}),t.on("preXhr.dtr",function(){var o=[];t.rows().every(function(){this.child.isShown()&&o.push(this.id(!0))}),t.one("draw.dtr",function(){e._resizeAuto(),e._resize(),t.rows(o).every(function(){e._detailsDisplay(this,!1)})})}),t.on("draw.dtr",function(){e._controlClass()}).on("init.dtr",function(o,a,i){o.namespace==="dt"&&(e._resizeAuto(),e._resize(),X.inArray(!1,e.s.current)&&t.columns.adjust())}),this._resize()},_childNodes:function(e,t,r){var n=t+"-"+r;if(this.s.childNodeStore[n])return this.s.childNodeStore[n];for(var o=[],a=e.cell(t,r).node().childNodes,i=0,l=a.length;i0){for(var i=a[0].parentNode,l=i.childNodes,u=[],h=0,d=l.length;h=d&&o(i,t[s].name);else if(u==="not-")for(s=0,c=t.length;s=0;l--)if(n<=o[l].width){a=o[l].name;break}var d=this._columnsVisiblity(a);this.s.current=d;var s=!1;for(l=0,u=i.length;l{var c=s.filter(function(f){return!!f}).map(function(f){return X(f.cell).clone(!1).css("display","table-cell").css("width","auto").css("min-width",0)});X("
").append(c).appendTo(a)});for(var u=X("
").appendTo(l),h=0;h");e.rows({page:"current"}).every(function(s){var c=this.node();if(c){var f=c.cloneNode(!1);e.cells(s,"*").every(function(p,m){var b=r.s.childNodeStore[s+"-"+m];b?X(this.node().cloneNode(!1)).append(X(b).clone()).appendTo(f):X(this.node()).clone(!1).appendTo(f)}),l.append(f)}}),l.find("th, td").css("display",""),e.table().footer.structure(n).forEach(s=>{var c=s.filter(function(f){return!!f}).map(function(f){return X(f.cell).clone(!1).css("display","table-cell").css("width","auto").css("min-width",0)});X("
").append(c).appendTo(i)}),this.c.details.type==="inline"&&X(o).addClass("dtr-inline collapsed"),X(o).find("[name]").removeAttr("name"),X(o).css("position","relative");var d=X("").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(o);d.insertBefore(e.table().node()),u.children().each(function(s){var c=e.column.index("fromVisible",s);t[c].minWidth=this.offsetWidth||0}),d.remove()}},_responsiveOnlyHidden:function(){var e=this.s.dt;return X.map(this.s.current,function(t,r){return e.column(r).visible()===!1?!0:t})},_setColumnVis:function(e,t){var r=this,n=this.s.dt,o=t?"":"none";this._setHeaderVis(e,t,n.table().header.structure()),this._setHeaderVis(e,t,n.table().footer.structure()),n.column(e).nodes().to$().css("display",o).toggleClass("dtr-hidden",!t),X.isEmptyObject(this.s.childNodeStore)||n.cells(null,e).indexes().each(function(a){r._childNodesRestore(n,a.row,a.column)})},_setHeaderVis:function(e,t,r){var n=this,o=t?"":"none";r.forEach(function(a){if(a[e])X(a[e].cell).css("display",o).toggleClass("dtr-hidden",!t);else for(var i=e;i>=0;){if(a[i]){a[i].cell.colSpan=n._colspan(a,i);break}i--}})},_colspan:function(e,t){for(var r=1,n=t+1;ntd:first-child, >th:first-child"),X(n,e.rows({page:"current"}).nodes()).attr("tabIndex",r.iTabIndex).data("dtr-keyboard",1))}});Ie.breakpoints=[{name:"desktop",width:1/0},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];Ie.display={childRow:function(e,t,r){var n=X(e.node());if(t){if(n.hasClass("dtr-expanded"))return e.child(r(),"child").show(),!0}else{if(n.hasClass("dtr-expanded"))return e.child(!1),!1;var o=r();return o===!1?!1:(e.child(o,"child").show(),!0)}},childRowImmediate:function(e,t,r){var n=X(e.node());if(!t&&n.hasClass("dtr-expanded")||!e.responsive.hasHidden())return e.child(!1),!1;var o=r();return o===!1?!1:(e.child(o,"child").show(),!0)},modal:function(e){return function(t,r,n,o){var a,i=n();if(i===!1)return!1;if(r)if(a=X("div.dtr-modal-content"),a.length&&t.index()===a.data("dtr-row-idx"))a.empty().append(i);else return null;else{var l=function(){a.remove(),X(document).off("keypress.dtr"),X(t.node()).removeClass("dtr-expanded"),o()};a=X('').append(X('').append(X('').data("dtr-row-idx",t.index()).append(i)).append(X('×
').click(function(){l()}))).append(X('').click(function(){l()})).appendTo("body"),X(t.node()).addClass("dtr-expanded"),X(document).on("keyup.dtr",function(u){u.keyCode===27&&(u.stopPropagation(),l())})}return e&&e.header&&X("div.dtr-modal-content").prepend(""+e.header(t)+"
"),!0}}};Ie.renderer={listHiddenNodes:function(){return function(e,t,r){var n=this,o=X(''),a=!1;return X.each(r,function(i,l){if(l.hidden){var u=l.className?'class="'+l.className+'"':"";X("'+l.title+" ").append(X('').append(n._childNodes(e,l.rowIndex,l.columnIndex))).appendTo(o),a=!0}}),a?o:!1}},listHidden:function(){return function(e,t,r){var n=X.map(r,function(o){var a=o.className?'class="'+o.className+'"':"";return o.hidden?"'+o.title+' '+o.data+"":""}).join("");return n?X('').append(n):!1}},tableAll:function(e){return e=X.extend({tableClass:""},e),function(t,r,n){var o=X.map(n,function(a){var i=a.className?'class="'+a.className+'"':"";return"'+a.title+": | "+a.data+" |
"}).join("");return X('').append(o)}}};Ie.defaults={breakpoints:Ie.breakpoints,auto:!0,details:{display:Ie.display.childRow,renderer:Ie.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var ut=X.fn.dataTable.Api;ut.register("responsive()",function(){return this});ut.register("responsive.index()",function(e){return e=X(e),{column:e.data("dtr-index"),row:e.parent().data("dtr-index")}});ut.register("responsive.rebuild()",function(){return this.iterator("table",function(e){e._responsive&&e._responsive._classLogic()})});ut.register("responsive.recalc()",function(){return this.iterator("table",function(e){e._responsive&&(e._responsive._resizeAuto(),e._responsive._resize())})});ut.register("responsive.hasHidden()",function(){var e=this.context[0];return e._responsive?X.inArray(!1,e._responsive._responsiveOnlyHidden())!==-1:!1});ut.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(e,t){return e._responsive?e._responsive._responsiveOnlyHidden()[t]:!1},1)});Ie.version="3.0.1";X.fn.dataTable.Responsive=Ie;X.fn.DataTable.Responsive=Ie;X(document).on("preInit.dt.dtr",function(e,t,r){if(e.namespace==="dt"&&(X(t.nTable).hasClass("responsive")||X(t.nTable).hasClass("dt-responsive")||t.oInit.responsive||F.defaults.responsive)){var n=t.oInit.responsive;n!==!1&&new Ie(t,X.isPlainObject(n)?n:{})}});/*! Select for DataTables 2.0.0
+ */let X=Ze;var Ie=function(e,t){if(!F.versionCheck||!F.versionCheck("2"))throw"DataTables Responsive requires DataTables 2 or newer";this.s={childNodeStore:{},columns:[],current:[],dt:new F.Api(e)},!this.s.dt.settings()[0].responsive&&(t&&typeof t.details=="string"?t.details={type:t.details}:t&&t.details===!1?t.details={type:!1}:t&&t.details===!0&&(t.details={type:"inline"}),this.c=X.extend(!0,{},Ie.defaults,F.defaults.responsive,t),e.responsive=this,this._constructor())};X.extend(Ie.prototype,{_constructor:function(){var e=this,t=this.s.dt,r=X(window).innerWidth();t.settings()[0]._responsive=this,X(window).on("orientationchange.dtr",F.util.throttle(function(){var o=X(window).innerWidth();o!==r&&(e._resize(),r=o)})),t.on("row-created.dtr",function(o,a,i,l){X.inArray(!1,e.s.current)!==-1&&X(">td, >th",a).each(function(u){var h=t.column.index("toData",u);e.s.current[h]===!1&&X(this).css("display","none")})}),t.on("destroy.dtr",function(){t.off(".dtr"),X(t.table().body()).off(".dtr"),X(window).off("resize.dtr orientationchange.dtr"),t.cells(".dtr-control").nodes().to$().removeClass("dtr-control"),X(t.table().node()).removeClass("dtr-inline collapsed"),X.each(e.s.current,function(o,a){a===!1&&e._setColumnVis(o,!0)})}),this.c.breakpoints.sort(function(o,a){return o.widtha.width?-1:0}),this._classLogic(),this._resizeAuto();var n=this.c.details;n.type!==!1&&(e._detailsInit(),t.on("column-visibility.dtr",function(){e._timer&&clearTimeout(e._timer),e._timer=setTimeout(function(){e._timer=null,e._classLogic(),e._resizeAuto(),e._resize(!0),e._redrawChildren()},100)}),t.on("draw.dtr",function(){e._redrawChildren()}),X(t.table().node()).addClass("dtr-"+n.type)),t.on("column-reorder.dtr",function(o,a,i){e._classLogic(),e._resizeAuto(),e._resize(!0)}),t.on("column-sizing.dtr",function(){e._resizeAuto(),e._resize()}),t.on("column-calc.dt",function(o,a){for(var i=e.s.current,l=0;l=0&&a.visible.splice(u,1)}}),t.on("preXhr.dtr",function(){var o=[];t.rows().every(function(){this.child.isShown()&&o.push(this.id(!0))}),t.one("draw.dtr",function(){e._resizeAuto(),e._resize(),t.rows(o).every(function(){e._detailsDisplay(this,!1)})})}),t.on("draw.dtr",function(){e._controlClass()}).on("init.dtr",function(o,a,i){o.namespace==="dt"&&(e._resizeAuto(),e._resize(),X.inArray(!1,e.s.current)&&t.columns.adjust())}),this._resize()},_childNodes:function(e,t,r){var n=t+"-"+r;if(this.s.childNodeStore[n])return this.s.childNodeStore[n];for(var o=[],a=e.cell(t,r).node().childNodes,i=0,l=a.length;i0){for(var i=a[0].parentNode,l=i.childNodes,u=[],h=0,d=l.length;h=d&&o(i,t[s].name);else if(u==="not-")for(s=0,c=t.length;s=0;l--)if(n<=o[l].width){a=o[l].name;break}var d=this._columnsVisiblity(a);this.s.current=d;var s=!1;for(l=0,u=i.length;l{var c=s.filter(function(f){return!!f}).map(function(f){return X(f.cell).clone(!1).css("display","table-cell").css("width","auto").css("min-width",0)});X("
").append(c).appendTo(a)});for(var u=X("
").appendTo(l),h=0;h");e.rows({page:"current"}).every(function(s){var c=this.node();if(c){var f=c.cloneNode(!1);e.cells(s,"*").every(function(p,m){var b=r.s.childNodeStore[s+"-"+m];b?X(this.node().cloneNode(!1)).append(X(b).clone()).appendTo(f):X(this.node()).clone(!1).appendTo(f)}),l.append(f)}}),l.find("th, td").css("display",""),e.table().footer.structure(n).forEach(s=>{var c=s.filter(function(f){return!!f}).map(function(f){return X(f.cell).clone(!1).css("display","table-cell").css("width","auto").css("min-width",0)});X("
").append(c).appendTo(i)}),this.c.details.type==="inline"&&X(o).addClass("dtr-inline collapsed"),X(o).find("[name]").removeAttr("name"),X(o).css("position","relative");var d=X("").css({width:1,height:1,overflow:"hidden",clear:"both"}).append(o);d.insertBefore(e.table().node()),u.children().each(function(s){var c=e.column.index("fromVisible",s);t[c].minWidth=this.offsetWidth||0}),d.remove()}},_responsiveOnlyHidden:function(){var e=this.s.dt;return X.map(this.s.current,function(t,r){return e.column(r).visible()===!1?!0:t})},_setColumnVis:function(e,t){var r=this,n=this.s.dt,o=t?"":"none";this._setHeaderVis(e,t,n.table().header.structure()),this._setHeaderVis(e,t,n.table().footer.structure()),n.column(e).nodes().to$().css("display",o).toggleClass("dtr-hidden",!t),X.isEmptyObject(this.s.childNodeStore)||n.cells(null,e).indexes().each(function(a){r._childNodesRestore(n,a.row,a.column)})},_setHeaderVis:function(e,t,r){var n=this,o=t?"":"none";r.forEach(function(a){if(a[e])X(a[e].cell).css("display",o).toggleClass("dtr-hidden",!t);else for(var i=e;i>=0;){if(a[i]){a[i].cell.colSpan=n._colspan(a,i);break}i--}})},_colspan:function(e,t){for(var r=1,n=t+1;ntd:first-child, >th:first-child"),X(n,e.rows({page:"current"}).nodes()).attr("tabIndex",r.iTabIndex).data("dtr-keyboard",1))}});Ie.breakpoints=[{name:"desktop",width:1/0},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];Ie.display={childRow:function(e,t,r){var n=X(e.node());if(t){if(n.hasClass("dtr-expanded"))return e.child(r(),"child").show(),!0}else{if(n.hasClass("dtr-expanded"))return e.child(!1),!1;var o=r();return o===!1?!1:(e.child(o,"child").show(),!0)}},childRowImmediate:function(e,t,r){var n=X(e.node());if(!t&&n.hasClass("dtr-expanded")||!e.responsive.hasHidden())return e.child(!1),!1;var o=r();return o===!1?!1:(e.child(o,"child").show(),!0)},modal:function(e){return function(t,r,n,o){var a,i=n();if(i===!1)return!1;if(r)if(a=X("div.dtr-modal-content"),a.length&&t.index()===a.data("dtr-row-idx"))a.empty().append(i);else return null;else{var l=function(){a.remove(),X(document).off("keypress.dtr"),X(t.node()).removeClass("dtr-expanded"),o()};a=X('').append(X('').append(X('').data("dtr-row-idx",t.index()).append(i)).append(X('×
').click(function(){l()}))).append(X('').click(function(){l()})).appendTo("body"),X(t.node()).addClass("dtr-expanded"),X(document).on("keyup.dtr",function(u){u.keyCode===27&&(u.stopPropagation(),l())})}return e&&e.header&&X("div.dtr-modal-content").prepend(""+e.header(t)+"
"),!0}}};Ie.renderer={listHiddenNodes:function(){return function(e,t,r){var n=this,o=X(''),a=!1;return X.each(r,function(i,l){if(l.hidden){var u=l.className?'class="'+l.className+'"':"";X("'+l.title+" ").append(X('').append(n._childNodes(e,l.rowIndex,l.columnIndex))).appendTo(o),a=!0}}),a?o:!1}},listHidden:function(){return function(e,t,r){var n=X.map(r,function(o){var a=o.className?'class="'+o.className+'"':"";return o.hidden?"'+o.title+' '+o.data+"":""}).join("");return n?X('').append(n):!1}},tableAll:function(e){return e=X.extend({tableClass:""},e),function(t,r,n){var o=X.map(n,function(a){var i=a.className?'class="'+a.className+'"':"";return"'+a.title+": | "+a.data+" |
"}).join("");return X('').append(o)}}};Ie.defaults={breakpoints:Ie.breakpoints,auto:!0,details:{display:Ie.display.childRow,renderer:Ie.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var ut=X.fn.dataTable.Api;ut.register("responsive()",function(){return this});ut.register("responsive.index()",function(e){return e=X(e),{column:e.data("dtr-index"),row:e.parent().data("dtr-index")}});ut.register("responsive.rebuild()",function(){return this.iterator("table",function(e){e._responsive&&e._responsive._classLogic()})});ut.register("responsive.recalc()",function(){return this.iterator("table",function(e){e._responsive&&(e._responsive._resizeAuto(),e._responsive._resize())})});ut.register("responsive.hasHidden()",function(){var e=this.context[0];return e._responsive?X.inArray(!1,e._responsive._responsiveOnlyHidden())!==-1:!1});ut.registerPlural("columns().responsiveHidden()","column().responsiveHidden()",function(){return this.iterator("column",function(e,t){return e._responsive?e._responsive._responsiveOnlyHidden()[t]:!1},1)});Ie.version="3.0.1";X.fn.dataTable.Responsive=Ie;X.fn.DataTable.Responsive=Ie;X(document).on("preInit.dt.dtr",function(e,t,r){if(e.namespace==="dt"&&(X(t.nTable).hasClass("responsive")||X(t.nTable).hasClass("dt-responsive")||t.oInit.responsive||F.defaults.responsive)){var n=t.oInit.responsive;n!==!1&&new Ie(t,X.isPlainObject(n)?n:{})}});/*! Select for DataTables 2.0.1
* © SpryMedia Ltd - datatables.net/license/mit
- */let oe=Ze;F.select={};F.select.version="2.0.0";F.select.init=function(e){var t=e.settings()[0];if(!F.versionCheck("2"))throw"Warning: Select requires DataTables 2 or newer";if(!t._select){var r=e.state.loaded(),n=function(b,v,_){if(!(_===null||_.select===void 0)){if(e.rows({selected:!0}).any()&&e.rows().deselect(),_.select.rows!==void 0&&e.rows(_.select.rows).select(),e.columns({selected:!0}).any()&&e.columns().deselect(),_.select.columns!==void 0&&e.columns(_.select.columns).select(),e.cells({selected:!0}).any()&&e.cells().deselect(),_.select.cells!==void 0)for(var x=0;x<_.select.cells.length;x++)e.cell(_.select.cells[x].row,_.select.cells[x].column).select();e.state.save()}};e.on("stateSaveParams",function(b,v,_){_.select={},_.select.rows=e.rows({selected:!0}).ids(!0).toArray(),_.select.columns=e.columns({selected:!0})[0],_.select.cells=e.cells({selected:!0})[0].map(function(x){return{row:e.row(x.row).id(!0),column:x.column}})}).on("stateLoadParams",n).one("init",function(){n(void 0,void 0,r)});var o=t.oInit.select,a=F.defaults.select,i=o===void 0?a:o,l="row",u="api",h=!1,d=!0,s=!0,c="td, th",f="selected",p=!0,m=!1;t._select={infoEls:[]},i===!0?(u="os",m=!0):typeof i=="string"?(u=i,m=!0):oe.isPlainObject(i)&&(i.blurable!==void 0&&(h=i.blurable),i.toggleable!==void 0&&(d=i.toggleable),i.info!==void 0&&(s=i.info),i.items!==void 0&&(l=i.items),i.style!==void 0?(u=i.style,m=!0):(u="os",m=!0),i.selector!==void 0&&(c=i.selector),i.className!==void 0&&(f=i.className),i.headerCheckbox!==void 0&&(p=i.headerCheckbox)),e.select.selector(c),e.select.items(l),e.select.style(u),e.select.blurable(h),e.select.toggleable(d),e.select.info(s),t._select.className=f,!m&&oe(e.table().node()).hasClass("selectable")&&e.select.style("os"),p&&(rn(e),e.on("init",function(){rn(e)}))}};function en(e,t,r){var n,o,a,i=function(u,h){if(u>h){var d=h;h=u,u=d}var s=!1;return e.columns(":visible").indexes().filter(function(c){return c===u&&(s=!0),c===h?(s=!1,!0):s})},l=function(u,h){var d=e.rows({search:"applied"}).indexes();if(d.indexOf(u)>d.indexOf(h)){var s=h;h=u,u=s}var c=!1;return d.filter(function(f){return f===u&&(c=!0),f===h?(c=!1,!0):c})};!e.cells({selected:!0}).any()&&!r?(o=i(0,t.column),a=l(0,t.row)):(o=i(r.column,t.column),a=l(r.row,t.row)),n=e.cells(a,o).flatten(),e.cells(t,{selected:!0}).any()?e.cells(n).deselect():e.cells(n).select()}function Br(e){var t=e.settings()[0],r=t._select.selector;oe(e.table().container()).off("mousedown.dtSelect",r).off("mouseup.dtSelect",r).off("click.dtSelect",r),oe("body").off("click.dtSelect"+Lr(e.table().node()))}function $n(e){var t=oe(e.table().container()),r=e.settings()[0],n=r._select.selector,o;t.on("mousedown.dtSelect",n,function(a){(a.shiftKey||a.metaKey||a.ctrlKey)&&t.css("-moz-user-select","none").one("selectstart.dtSelect",n,function(){return!1}),window.getSelection&&(o=window.getSelection())}).on("mouseup.dtSelect",n,function(){t.css("-moz-user-select","")}).on("click.dtSelect",n,function(a){var i=e.select.items(),l;if(o){var u=window.getSelection();if((!u.anchorNode||oe(u.anchorNode).closest("table")[0]===e.table().node())&&u!==o)return}var h=e.settings()[0],d=e.table().container();if(oe(a.target).closest("div.dt-container")[0]==d){var s=e.cell(oe(a.target).closest("td, th"));if(s.any()){var c=oe.Event("user-select.dt");if(He(e,c,[i,s,a]),!c.isDefaultPrevented()){var f=s.index();i==="row"?(l=f.row,nr(a,e,h,"row",l)):i==="column"?(l=s.index().column,nr(a,e,h,"column",l)):i==="cell"&&(l=s.index(),nr(a,e,h,"cell",l)),h._select_lastCell=f}}}}),oe("body").on("click.dtSelect"+Lr(e.table().node()),function(a){if(r._select.blurable){if(oe(a.target).parents().filter(e.table().container()).length||oe(a.target).parents("html").length===0||oe(a.target).parents("div.DTE").length)return;var i=oe.Event("select-blur.dt");if(He(e,i,[a.target,a]),i.isDefaultPrevented())return;kt(r,!0)}})}function He(e,t,r,n){n&&!e.flatten().length||(typeof t=="string"&&(t=t+".dt"),r.unshift(e),oe(e.table().node()).trigger(t,r))}function tn(e,t){if(!(e.select.style()==="api"||e.select.info()===!1)){var r=e.rows({selected:!0}).flatten().length,n=e.columns({selected:!0}).flatten().length,o=e.cells({selected:!0}).flatten().length,a=function(h,d,s){h.append(oe('').append(e.i18n("select."+d+"s",{_:"%d "+d+"s selected",0:"",1:"1 "+d+" selected"},s)))},i=oe(t),l=oe('');a(l,"row",r),a(l,"column",n),a(l,"cell",o);var u=i.children("span.select-info");u.length&&u.remove(),l.text()!==""&&i.append(l)}}function rn(e){e.columns(".dt-select").every(function(){var t=this.header();if(!oe("input",t).length){var r=oe("").attr({class:"dt-select-checkbox",type:"checkbox","aria-label":e.i18n("select.aria.headerCheckbox")||"Select all rows"}).appendTo(t).on("change",function(){this.checked?e.rows({search:"applied"}).select():e.rows({selected:!0}).deselect()}).on("click",function(n){n.stopPropagation()});e.on("draw select deselect",function(n,o,a){if(a==="row"||!a){var i=e.rows({selected:!0}).count(),l=e.rows({search:"applied",selected:!0}).count(),u=e.rows({search:"applied"}).count();l&&l<=i&&l===u?r.prop("checked",!0).prop("indeterminate",!1):l===0&&i===0?r.prop("checked",!1).prop("indeterminate",!1):r.prop("checked",!1).prop("indeterminate",!0)}})}})}function $a(e){var t=new F.Api(e);e._select_init=!0,e.aoRowCreatedCallback.push(function(r,n,o){var a,i,l=e.aoData[o];for(l._select_selected&&oe(r).addClass(e._select.className),a=0,i=e.aoColumns.length;ai){var l=i;i=a,a=l}o.splice(i+1,o.length),o.splice(0,a)}e[t](r,{selected:!0}).any()?(o.splice(o.indexOf(r),1),e[t+"s"](o).deselect()):e[t+"s"](o).select()}function kt(e,t){if(t||e._select.style==="single"){var r=new F.Api(e);r.rows({selected:!0}).deselect(),r.columns({selected:!0}).deselect(),r.cells({selected:!0}).deselect()}}function nr(e,t,r,n,o){var a=t.select.style(),i=t.select.toggleable(),l=t[n](o,{selected:!0}).any();if(!(l&&!i))if(a==="os")if(e.ctrlKey||e.metaKey)t[n](o).select(!l);else if(e.shiftKey)n==="cell"?en(t,o,r._select_lastCell||null):nn(t,n,o,r._select_lastCell?r._select_lastCell[n]:null);else{var u=t[n+"s"]({selected:!0});l&&u.flatten().length===1?t[n](o).deselect():(u.deselect(),t[n](o).select())}else a=="multi+shift"&&e.shiftKey?n==="cell"?en(t,o,r._select_lastCell||null):nn(t,n,o,r._select_lastCell?r._select_lastCell[n]:null):t[n](o).select(!l)}function Lr(e){return e.id.replace(/[^a-zA-Z0-9\-\_]/g,"-")}oe.each([{type:"row",prop:"aoData"},{type:"column",prop:"aoColumns"}],function(e,t){F.ext.selector[t.type].push(function(r,n,o){var a=n.selected,i,l=[];if(a!==!0&&a!==!1)return o;for(var u=0,h=o.length;u0)}),this.disable()},destroy:function(e,t,r){e.off(r._eventNamespace)}},showSelected:{text:tt("showSelected","Show only selected"),className:"buttons-show-selected",action:function(e,t){if(t.search.fixed("dt-select"))t.search.fixed("dt-select",null),this.active(!1);else{var r=t.settings()[0].aoData;t.search.fixed("dt-select",function(n,o,a){return r[a]._select_selected}),this.active(!0)}t.draw()}}});oe.each(["Row","Column","Cell"],function(e,t){var r=t.toLowerCase();F.ext.buttons["select"+t+"s"]={text:tt("select"+t+"s","Select "+r+"s"),className:"buttons-select-"+r+"s",action:function(){this.select.items(r)},init:function(n){var o=this;n.on("selectItems.dt.DT",function(a,i,l){o.active(l===r)})}}});F.type("select-checkbox",{className:"dt-select",detect:function(e){return e==="select-checkbox"?e:!1},order:{pre:function(e){return e==="X"?-1:0}}});oe.extend(!0,F.defaults.oLanguage,{select:{aria:{rowCheckbox:"Select row"}}});F.render.select=function(e,t){var r=e?F.util.get(e):null,n=t?F.util.get(t):null;return function(o,a,i,l){var u=l.settings.aoData[l.row],h=u._select_selected,d=l.settings.oLanguage.select.aria.rowCheckbox;return a==="display"?oe("").attr({"aria-label":d,class:"dt-select-checkbox",name:n?n(i):null,type:"checkbox",value:r?r(i):null,checked:h})[0]:a==="type"?"select-checkbox":a==="filter"?"":h?"X":""}};F.ext.order["select-checkbox"]=function(e,t){return this.api().column(t,{order:"index"}).nodes().map(function(r){return e._select.items==="row"?oe(r).parent().hasClass(e._select.className):e._select.items==="cell"?oe(r).hasClass(e._select.className):!1})};oe.fn.DataTable.select=F.select;oe(document).on("preInit.dt.dtSelect",function(e,t){e.namespace==="dt"&&F.select.init(new F.Api(t))});/*! Buttons for DataTables 3.0.1
+ */let oe=Ze;F.select={};F.select.version="2.0.1";F.select.init=function(e){var t=e.settings()[0];if(!F.versionCheck("2"))throw"Warning: Select requires DataTables 2 or newer";if(!t._select){var r=e.state.loaded(),n=function(b,v,_){if(!(_===null||_.select===void 0)){if(e.rows({selected:!0}).any()&&e.rows().deselect(),_.select.rows!==void 0&&e.rows(_.select.rows).select(),e.columns({selected:!0}).any()&&e.columns().deselect(),_.select.columns!==void 0&&e.columns(_.select.columns).select(),e.cells({selected:!0}).any()&&e.cells().deselect(),_.select.cells!==void 0)for(var x=0;x<_.select.cells.length;x++)e.cell(_.select.cells[x].row,_.select.cells[x].column).select();e.state.save()}};e.on("stateSaveParams",function(b,v,_){_.select={},_.select.rows=e.rows({selected:!0}).ids(!0).toArray(),_.select.columns=e.columns({selected:!0})[0],_.select.cells=e.cells({selected:!0})[0].map(function(x){return{row:e.row(x.row).id(!0),column:x.column}})}).on("stateLoadParams",n).one("init",function(){n(void 0,void 0,r)});var o=t.oInit.select,a=F.defaults.select,i=o===void 0?a:o,l="row",u="api",h=!1,d=!0,s=!0,c="td, th",f="selected",p=!0,m=!1;t._select={infoEls:[]},i===!0?(u="os",m=!0):typeof i=="string"?(u=i,m=!0):oe.isPlainObject(i)&&(i.blurable!==void 0&&(h=i.blurable),i.toggleable!==void 0&&(d=i.toggleable),i.info!==void 0&&(s=i.info),i.items!==void 0&&(l=i.items),i.style!==void 0?(u=i.style,m=!0):(u="os",m=!0),i.selector!==void 0&&(c=i.selector),i.className!==void 0&&(f=i.className),i.headerCheckbox!==void 0&&(p=i.headerCheckbox)),e.select.selector(c),e.select.items(l),e.select.style(u),e.select.blurable(h),e.select.toggleable(d),e.select.info(s),t._select.className=f,!m&&oe(e.table().node()).hasClass("selectable")&&e.select.style("os"),p&&(rn(e),e.on("init",function(){rn(e)}))}};function en(e,t,r){var n,o,a,i=function(u,h){if(u>h){var d=h;h=u,u=d}var s=!1;return e.columns(":visible").indexes().filter(function(c){return c===u&&(s=!0),c===h?(s=!1,!0):s})},l=function(u,h){var d=e.rows({search:"applied"}).indexes();if(d.indexOf(u)>d.indexOf(h)){var s=h;h=u,u=s}var c=!1;return d.filter(function(f){return f===u&&(c=!0),f===h?(c=!1,!0):c})};!e.cells({selected:!0}).any()&&!r?(o=i(0,t.column),a=l(0,t.row)):(o=i(r.column,t.column),a=l(r.row,t.row)),n=e.cells(a,o).flatten(),e.cells(t,{selected:!0}).any()?e.cells(n).deselect():e.cells(n).select()}function Br(e){var t=e.settings()[0],r=t._select.selector;oe(e.table().container()).off("mousedown.dtSelect",r).off("mouseup.dtSelect",r).off("click.dtSelect",r),oe("body").off("click.dtSelect"+Lr(e.table().node()))}function $n(e){var t=oe(e.table().container()),r=e.settings()[0],n=r._select.selector,o;t.on("mousedown.dtSelect",n,function(a){(a.shiftKey||a.metaKey||a.ctrlKey)&&t.css("-moz-user-select","none").one("selectstart.dtSelect",n,function(){return!1}),window.getSelection&&(o=window.getSelection())}).on("mouseup.dtSelect",n,function(){t.css("-moz-user-select","")}).on("click.dtSelect",n,function(a){var i=e.select.items(),l;if(o){var u=window.getSelection();if((!u.anchorNode||oe(u.anchorNode).closest("table")[0]===e.table().node())&&u!==o)return}var h=e.settings()[0],d=e.table().container();if(oe(a.target).closest("div.dt-container")[0]==d){var s=e.cell(oe(a.target).closest("td, th"));if(s.any()){var c=oe.Event("user-select.dt");if(He(e,c,[i,s,a]),!c.isDefaultPrevented()){var f=s.index();i==="row"?(l=f.row,nr(a,e,h,"row",l)):i==="column"?(l=s.index().column,nr(a,e,h,"column",l)):i==="cell"&&(l=s.index(),nr(a,e,h,"cell",l)),h._select_lastCell=f}}}}),oe("body").on("click.dtSelect"+Lr(e.table().node()),function(a){if(r._select.blurable){if(oe(a.target).parents().filter(e.table().container()).length||oe(a.target).parents("html").length===0||oe(a.target).parents("div.DTE").length)return;var i=oe.Event("select-blur.dt");if(He(e,i,[a.target,a]),i.isDefaultPrevented())return;kt(r,!0)}})}function He(e,t,r,n){n&&!e.flatten().length||(typeof t=="string"&&(t=t+".dt"),r.unshift(e),oe(e.table().node()).trigger(t,r))}function tn(e,t){if(!(e.select.style()==="api"||e.select.info()===!1)){var r=e.rows({selected:!0}).flatten().length,n=e.columns({selected:!0}).flatten().length,o=e.cells({selected:!0}).flatten().length,a=function(h,d,s){h.append(oe('').append(e.i18n("select."+d+"s",{_:"%d "+d+"s selected",0:"",1:"1 "+d+" selected"},s)))},i=oe(t),l=oe('');a(l,"row",r),a(l,"column",n),a(l,"cell",o);var u=i.children("span.select-info");u.length&&u.remove(),l.text()!==""&&i.append(l)}}function rn(e){e.columns(".dt-select").every(function(){var t=this.header();if(!oe("input",t).length){var r=oe("").attr({class:"dt-select-checkbox",type:"checkbox","aria-label":e.i18n("select.aria.headerCheckbox")||"Select all rows"}).appendTo(t).on("change",function(){this.checked?e.rows({search:"applied"}).select():e.rows({selected:!0}).deselect()}).on("click",function(n){n.stopPropagation()});e.on("draw select deselect",function(n,o,a){if(a==="row"||!a){var i=e.rows({selected:!0}).count(),l=e.rows({search:"applied",selected:!0}).count(),u=e.rows({search:"applied"}).count();l&&l<=i&&l===u?r.prop("checked",!0).prop("indeterminate",!1):l===0&&i===0?r.prop("checked",!1).prop("indeterminate",!1):r.prop("checked",!1).prop("indeterminate",!0)}})}})}function $a(e){var t=new F.Api(e);e._select_init=!0,e.aoRowCreatedCallback.push(function(r,n,o){var a,i,l=e.aoData[o];for(l._select_selected&&oe(r).addClass(e._select.className).find("input.dt-select-checkbox").prop("checked",!0),a=0,i=e.aoColumns.length;ai){var l=i;i=a,a=l}o.splice(i+1,o.length),o.splice(0,a)}e[t](r,{selected:!0}).any()?(o.splice(o.indexOf(r),1),e[t+"s"](o).deselect()):e[t+"s"](o).select()}function kt(e,t){if(t||e._select.style==="single"){var r=new F.Api(e);r.rows({selected:!0}).deselect(),r.columns({selected:!0}).deselect(),r.cells({selected:!0}).deselect()}}function nr(e,t,r,n,o){var a=t.select.style(),i=t.select.toggleable(),l=t[n](o,{selected:!0}).any();if(!(l&&!i))if(a==="os")if(e.ctrlKey||e.metaKey)t[n](o).select(!l);else if(e.shiftKey)n==="cell"?en(t,o,r._select_lastCell||null):nn(t,n,o,r._select_lastCell?r._select_lastCell[n]:null);else{var u=t[n+"s"]({selected:!0});l&&u.flatten().length===1?t[n](o).deselect():(u.deselect(),t[n](o).select())}else a=="multi+shift"&&e.shiftKey?n==="cell"?en(t,o,r._select_lastCell||null):nn(t,n,o,r._select_lastCell?r._select_lastCell[n]:null):t[n](o).select(!l)}function Lr(e){return e.id.replace(/[^a-zA-Z0-9\-\_]/g,"-")}oe.each([{type:"row",prop:"aoData"},{type:"column",prop:"aoColumns"}],function(e,t){F.ext.selector[t.type].push(function(r,n,o){var a=n.selected,i,l=[];if(a!==!0&&a!==!1)return o;for(var u=0,h=o.length;u0)}),this.disable()},destroy:function(e,t,r){e.off(r._eventNamespace)}},showSelected:{text:tt("showSelected","Show only selected"),className:"buttons-show-selected",action:function(e,t){if(t.search.fixed("dt-select"))t.search.fixed("dt-select",null),this.active(!1);else{var r=t.settings()[0].aoData;t.search.fixed("dt-select",function(n,o,a){return r[a]._select_selected}),this.active(!0)}t.draw()}}});oe.each(["Row","Column","Cell"],function(e,t){var r=t.toLowerCase();F.ext.buttons["select"+t+"s"]={text:tt("select"+t+"s","Select "+r+"s"),className:"buttons-select-"+r+"s",action:function(){this.select.items(r)},init:function(n){var o=this;n.on("selectItems.dt.DT",function(a,i,l){o.active(l===r)})}}});F.type("select-checkbox",{className:"dt-select",detect:function(e){return e==="select-checkbox"?e:!1},order:{pre:function(e){return e==="X"?-1:0}}});oe.extend(!0,F.defaults.oLanguage,{select:{aria:{rowCheckbox:"Select row"}}});F.render.select=function(e,t){var r=e?F.util.get(e):null,n=t?F.util.get(t):null;return function(o,a,i,l){var u=l.settings.aoData[l.row],h=u._select_selected,d=l.settings.oLanguage.select.aria.rowCheckbox;return a==="display"?oe("").attr({"aria-label":d,class:"dt-select-checkbox",name:n?n(i):null,type:"checkbox",value:r?r(i):null,checked:h})[0]:a==="type"?"select-checkbox":a==="filter"?"":h?"X":""}};F.ext.order["select-checkbox"]=function(e,t){return this.api().column(t,{order:"index"}).nodes().map(function(r){return e._select.items==="row"?oe(r).parent().hasClass(e._select.className):e._select.items==="cell"?oe(r).hasClass(e._select.className):!1})};oe.fn.DataTable.select=F.select;oe(document).on("preInit.dt.dtSelect",function(e,t){e.namespace==="dt"&&F.select.init(new F.Api(t))});/*! Buttons for DataTables 3.0.1
* © SpryMedia Ltd - datatables.net/license
*/let H=Ze;var Xa=0,Ka=0,De=F.ext.buttons,cr=null;function zr(e,t,r){H.fn.animate?e.stop().fadeIn(t,r):(e.css("display","block"),r&&r.call(e))}function Pr(e,t,r){H.fn.animate?e.stop().fadeOut(t,r):(e.css("display","none"),r&&r.call(e))}var ve=function(e,t){if(!F.versionCheck("2"))throw"Warning: Buttons requires DataTables 2 or newer";if(!(this instanceof ve))return function(r){return new ve(r,e).container()};typeof t>"u"&&(t={}),t===!0&&(t={}),Array.isArray(t)&&(t={buttons:t}),this.c=H.extend(!0,{},ve.defaults,t),t.buttons&&(this.c.buttons=t.buttons),this.s={dt:new F.Api(e),buttons:[],listenKeys:"",namespace:"dtb"+Xa++},this.dom={container:H("<"+this.c.dom.container.tag+"/>").addClass(this.c.dom.container.className)},this._constructor()};H.extend(ve.prototype,{action:function(e,t){var r=this._nodeToButton(e);return t===void 0?r.conf.action:(r.conf.action=t,this)},active:function(e,t){var r=this._nodeToButton(e),n=this.c.dom.button.active,o=H(r.node);return r.inCollection&&this.c.dom.collection.button&&this.c.dom.collection.button.active!==void 0&&(n=this.c.dom.collection.button.active),t===void 0?o.hasClass(n):(o.toggleClass(n,t===void 0?!0:t),this)},add:function(e,t,r){var n=this.s.buttons;if(typeof t=="string"){for(var o=t.split("-"),a=this.s,i=0,l=o.length-1;i=0;n--)this.remove(r.buttons[n].node);for(r.conf.prefixButtons&&t.unshift.apply(t,r.conf.prefixButtons),r.conf.postfixButtons&&t.push.apply(t,r.conf.postfixButtons),n=0;n=0;o--)this.remove(t.buttons[o].node);t.conf.destroying=!0,t.conf.destroy&&t.conf.destroy.call(n.button(e),n,H(e),t.conf),this._removeKey(t.conf),H(t.node).remove();var a=H.inArray(t,r);return r.splice(a,1),this},text:function(e,t){var r=this._nodeToButton(e),n=r.textNode,o=this.s.dt,a=H(r.node),i=function(l){return typeof l=="function"?l(o,a,r.conf):l};return t===void 0?i(r.conf.text):(r.conf.text=t,n.html(i(t)),this)},_constructor:function(){var e=this,t=this.s.dt,r=t.settings()[0],n=this.c.buttons;r._buttons||(r._buttons=[]),r._buttons.push({inst:this,name:this.c.name});for(var o=0,a=n.length;o"),p.conf._collection=p.collection,H(p.node).append(h.action.dropHtml),this._expandButton(p.buttons,p.conf.buttons,p.conf.split,!u,u,a,p.conf)),p.conf.split){p.collection=H("<"+h.container.tag+"/>"),p.conf._collection=p.collection;for(var m=0;m").addClass("dt-button-spacer "+e.style+" "+h.spacer.className).html(u(e.text));return{conf:e,node:d,inserter:d,buttons:[],inCollection:t,isSplit:r,collection:null,textNode:d}}if(e.available&&!e.available(l,e)&&!e.html)return!1;var s;if(e.html)s=H(e.html);else{var c=function(D,B,U,S,z){S.action.call(B.button(U),D,B,U,S,z),H(B.table().node()).triggerHandler("buttons-action.dt",[B.button(U),B,U,S])},f=function(D,B,U,S){S.async?(o.processing(U[0],!0),setTimeout(function(){c(D,B,U,S,function(){o.processing(U[0],!1)})},S.async)):c(D,B,U,S,function(){})},p=e.tag||h.tag,m=e.clickBlurs===void 0?!0:e.clickBlurs;if(s=H("<"+p+"/>").addClass(h.className).attr("tabindex",this.s.dt.settings()[0].iTabIndex).attr("aria-controls",this.s.dt.table().node().id).on("click.dtb",function(D){D.preventDefault(),!s.hasClass(h.disabled)&&e.action&&f(D,l,s,e),m&&s.trigger("blur")}).on("keypress.dtb",function(D){D.keyCode===13&&(D.preventDefault(),!s.hasClass(h.disabled)&&e.action&&f(D,l,s,e))}),p.toLowerCase()==="a"&&s.attr("href","#"),p.toLowerCase()==="button"&&s.attr("type","button"),h.liner.tag){var b=H("<"+h.liner.tag+"/>").html(u(e.text)).addClass(h.liner.className);h.liner.tag.toLowerCase()==="a"&&b.attr("href","#"),s.append(b),i=b}else s.html(u(e.text)),i=s;e.enabled===!1&&s.addClass(h.disabled),e.className&&s.addClass(e.className),e.titleAttr&&s.attr("title",u(e.titleAttr)),e.attr&&s.attr(e.attr),e.namespace||(e.namespace=".dt-button-"+Ka++),e.config!==void 0&&e.config.split&&(e.split=e.config.split)}var v=this.c.dom.buttonContainer,_;v&&v.tag?_=H("<"+v.tag+"/>").addClass(v.className).append(s):_=s,this._addKey(e),this.c.buttonCreated&&(_=this.c.buttonCreated(e,_));var x;if(r){var k=t?H.extend(!0,this.c.dom.split,this.c.dom.collection.split):this.c.dom.split,T=k.wrapper;x=H("<"+T.tag+"/>").addClass(T.className).append(s);var E=H.extend(e,{align:k.dropdown.align,attr:{"aria-haspopup":"dialog","aria-expanded":!1},className:k.dropdown.className,closeButton:!1,splitAlignClass:k.dropdown.splitAlignClass,text:k.dropdown.text});this._addKey(E);var N=function(D,B,U,S){De.split.action.call(B.button(x),D,B,U,S),H(B.table().node()).triggerHandler("buttons-action.dt",[B.button(U),B,U,S]),U.attr("aria-expanded",!0)},R=H('').html(k.dropdown.dropHtml).on("click.dtb",function(D){D.preventDefault(),D.stopPropagation(),R.hasClass(h.disabled)||N(D,l,R,E),m&&R.trigger("blur")}).on("keypress.dtb",function(D){D.keyCode===13&&(D.preventDefault(),R.hasClass(h.disabled)||N(D,l,R,E))});e.split.length===0&&R.addClass("dtb-hide-drop"),x.append(R).attr(E.attr)}return{conf:e,node:r?x.get(0):s.get(0),inserter:r?x:_,buttons:[],inCollection:t,isSplit:r,inSplit:n,collection:null,textNode:i}},_nodeToButton:function(e,t){t||(t=this.s.buttons);for(var r=0,n=t.length;r30)throw"Buttons: Too many iterations"}return Array.isArray(d)?d:H.extend({},d)};for(e=a(e);e&&e.extend;){if(!De[e.extend])throw"Cannot extend unknown button type: "+e.extend;var i=a(De[e.extend]);if(Array.isArray(i))return i;if(!i)return!1;var l=i.className;e.config!==void 0&&i.config!==void 0&&(e.config=H.extend({},i.config,e.config)),e=H.extend({},i,e),l&&e.className!==l&&(e.className=l+" "+e.className),e.extend=i.extend}var u=e.postfixButtons;if(u)for(e.buttons||(e.buttons=[]),n=0,o=u.length;n").addClass(i.containerClassName).addClass(i.collectionLayout).addClass(i.splitAlignClass).addClass(c).css("display","none").attr({"aria-modal":!0,role:"dialog"});e=H(e).addClass(i.contentClassName).attr("role","menu").appendTo(f),u.attr("aria-expanded","true"),u.parents("body")[0]!==document.body&&(u=document.body.lastChild),i.popoverTitle?f.prepend(''+i.popoverTitle+"
"):i.collectionTitle&&f.prepend(''+i.collectionTitle+"
"),i.closeButton&&f.prepend('×
').addClass("dtb-collection-closeable"),zr(f.insertAfter(u),i.fade);var p=H(t.table().container()),m=f.css("position");if((i.span==="container"||i.align==="dt-container")&&(u=u.parent(),f.css("width",p.width())),m==="absolute"){var b=H(u[0].offsetParent),v=u.position(),_=u.offset(),x=b.offset(),k=b.position(),T=window.getComputedStyle(b[0]);x.height=b.outerHeight(),x.width=b.width()+parseFloat(T.paddingLeft),x.right=x.left+x.width,x.bottom=x.top+x.height;var E=v.top+u.outerHeight(),N=v.left;f.css({top:E,left:N}),T=window.getComputedStyle(f[0]);var R=f.offset();R.height=f.outerHeight(),R.width=f.outerWidth(),R.right=R.left+R.width,R.bottom=R.top+R.height,R.marginTop=parseFloat(T.marginTop),R.marginBottom=parseFloat(T.marginBottom),i.dropup&&(E=v.top-R.height-R.marginTop-R.marginBottom),(i.align==="button-right"||f.hasClass(i.rightAlignClassName))&&(N=v.left-R.width+u.outerWidth()),(i.align==="dt-container"||i.align==="container")&&NH(window).width()&&(N=H(window).width()-R.width-k.left),_.left+N<0&&(N=-_.left),k.top+E+R.height>H(window).height()+H(window).scrollTop()&&(E=v.top-R.height-R.marginTop-R.marginBottom),k.top+EB&&(U=B),f.css("marginTop",U*-1)};D(),H(window).on("resize.dtb-collection",function(){D()})}i.background&&ve.background(!0,i.backgroundClassName,i.fade,i.backgroundHost||u),H("div.dt-button-background").on("click.dtb-collection",function(){}),i.autoClose&&setTimeout(function(){n.on("buttons-action.b-internal",function(B,U,S,z){z[0]!==u[0]&&h()})},0),H(f).trigger("buttons-popover.dt"),n.on("destroy",h),setTimeout(function(){a=!1,H("body").on("click.dtb-collection",function(B){if(!a){var U=H.fn.addBack?"addBack":"andSelf",S=H(B.target).parent()[0];(!H(B.target).parents()[U]().filter(e).length&&!H(S).hasClass("dt-buttons")||H(B.target).hasClass("dt-button-background"))&&h()}}).on("keyup.dtb-collection",function(B){B.keyCode===27&&h()}).on("keydown.dtb-collection",function(B){var U=H("a, button",e),S=document.activeElement;B.keyCode===9&&(U.index(S)===-1?(U.first().focus(),B.preventDefault()):B.shiftKey?S===U[0]&&(U.last().focus(),B.preventDefault()):S===U.last()[0]&&(U.first().focus(),B.preventDefault()))})},0)}});ve.background=function(e,t,r,n){r===void 0&&(r=400),n||(n=document.body),e?zr(H("").addClass(t).css("display","none").insertAfter(n),r):Pr(H("div."+t),r,function(){H(this).removeClass(t).remove()})};ve.instanceSelector=function(e,t){if(e==null)return H.map(t,function(a){return a.inst});var r=[],n=H.map(t,function(a){return a.name}),o=function(a){if(Array.isArray(a)){for(var i=0,l=a.length;i)<[^<]*)*<\/script>/gi,""),e=e.replace(//g,""),(!t||t.stripHtml)&&(e=e.replace(/<[^>]*>/g,"")),(!t||t.trim)&&(e=e.replace(/^\s+|\s+$/g,"")),(!t||t.stripNewlines)&&(e=e.replace(/\n/g," ")),(!t||t.decodeEntities)&&(cr?e=cr(e):(on.innerHTML=e,e=on.value))),e};ve.entityDecoder=function(e){cr=e};ve.defaults={buttons:["copy","excel","csv","pdf","print"],name:"main",tabIndex:0,dom:{container:{tag:"div",className:"dt-buttons"},collection:{action:{dropHtml:'▼'},container:{className:"dt-button-collection",content:{className:"",tag:"div"},tag:"div"}},button:{tag:"button",className:"dt-button",active:"dt-button-active",disabled:"disabled",spacer:{className:"dt-button-spacer",tag:"span"},liner:{tag:"span",className:""}},split:{action:{className:"dt-button-split-drop-button dt-button",tag:"button"},dropdown:{align:"split-right",className:"dt-button-split-drop",dropHtml:'▼',splitAlignClass:"dt-button-split-left",tag:"button"},wrapper:{className:"dt-button-split",tag:"div"}}}};ve.version="3.0.1";H.extend(De,{collection:{text:function(e){return e.i18n("buttons.collection","Collection")},className:"buttons-collection",closeButton:!1,init:function(e,t){t.attr("aria-expanded",!1)},action:function(e,t,r,n){n._collection.parents("body").length?this.popover(!1,n):this.popover(n._collection,n),e.type==="keypress"&&H("a, button",n._collection).eq(0).focus()},attr:{"aria-haspopup":"dialog"}},split:{text:function(e){return e.i18n("buttons.split","Split")},className:"buttons-split",closeButton:!1,init:function(e,t){return t.attr("aria-expanded",!1)},action:function(e,t,r,n){this.popover(n._collection,n)},attr:{"aria-haspopup":"dialog"}},copy:function(){if(De.copyHtml5)return"copyHtml5"},csv:function(e,t){if(De.csvHtml5&&De.csvHtml5.available(e,t))return"csvHtml5"},excel:function(e,t){if(De.excelHtml5&&De.excelHtml5.available(e,t))return"excelHtml5"},pdf:function(e,t){if(De.pdfHtml5&&De.pdfHtml5.available(e,t))return"pdfHtml5"},pageLength:function(e){var t=e.settings()[0].aLengthMenu,r=[],n=[],o=function(l){return l.i18n("buttons.pageLength",{"-1":"Show all rows",_:"Show %d rows"},l.page.len())};if(Array.isArray(t[0]))r=t[0],n=t[1];else for(var a=0;a1&&r.splice(1,r.length),r});F.Api.registerPlural("buttons().active()","button().active()",function(e){return e===void 0?this.map(function(t){return t.inst.active(t.node)}):this.each(function(t){t.inst.active(t.node,e)})});F.Api.registerPlural("buttons().action()","button().action()",function(e){return e===void 0?this.map(function(t){return t.inst.action(t.node)}):this.each(function(t){t.inst.action(t.node,e)})});F.Api.registerPlural("buttons().collectionRebuild()","button().collectionRebuild()",function(e){return this.each(function(t){for(var r=0;r"+e+"":"",zr(H('').html(e).append(H("")[typeof t=="string"?"html":"append"](t)).css("display","none").appendTo("body")),r!==void 0&&r!==0&&(vt=setTimeout(function(){n.buttons.info(!1)},r)),this.on("destroy.btn-info",function(){n.buttons.info(!1)}),this)});F.Api.register("buttons.exportData()",function(e){if(this.context.length)return Ya(new F.Api(this.context[0]),e)});F.Api.register("buttons.exportInfo()",function(e){return e||(e={}),{filename:Ga(e,this),title:Ja(e,this),messageTop:an(this,e,e.message||e.messageTop,"top"),messageBottom:an(this,e,e.messageBottom,"bottom")}});var Ga=function(e,t){var r=e.filename==="*"&&e.title!=="*"&&e.title!==void 0&&e.title!==null&&e.title!==""?e.title:e.filename;if(typeof r=="function"&&(r=r(e,t)),r==null)return null;r.indexOf("*")!==-1&&(r=r.replace("*",H("head > title").text()).trim()),r=r.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,"");var n=jr(e.extension,e,t);return n||(n=""),r+n},jr=function(e,t,r){return e==null?null:typeof e=="function"?e(t,r):e},Ja=function(e,t){var r=jr(e.title,e,t);return r===null?null:r.indexOf("*")!==-1?r.replace("*",H("head > title").text()||"Exported data"):r},an=function(e,t,r,n){var o=jr(r,t,e);if(o===null)return null;var a=H("caption",e.table().container()).eq(0);if(o==="*"){var i=a.css("caption-side");return i!==n?null:a.length?a.text():""}return o},on=H("")[0],Ya=function(e,t){var r=H.extend(!0,{},{rows:null,columns:"",modifier:{search:"applied",order:"applied"},orthogonal:"display",stripHtml:!0,stripNewlines:!0,decodeEntities:!0,trim:!0,format:{header:function(k){return ve.stripData(k,r)},footer:function(k){return ve.stripData(k,r)},body:function(k){return ve.stripData(k,r)}},customizeData:null},t),n=e.columns(r.columns).indexes().map(function(k){var T=e.column(k);return r.format.header(T.title(),k,T.header())}).toArray(),o=e.table().footer()?e.columns(r.columns).indexes().map(function(k){var T=e.column(k).footer(),E="";if(T){var N=H(".dt-column-title",T);E=N.length?N.html():H(T).html()}return r.format.footer(E,k,T)}).toArray():null,a=H.extend({},r.modifier);e.select&&typeof e.select.info=="function"&&a.selected===void 0&&e.rows(r.rows,H.extend({selected:!0},a)).any()&&H.extend(a,{selected:!0});for(var i=e.rows(r.rows,a).indexes().toArray(),l=e.cells(i,r.columns,{order:a.order}),u=l.render(r.orthogonal).toArray(),h=l.nodes().toArray(),d=l.indexes().toArray(),s=e.columns(r.columns).count(),c=s>0?u.length/s:0,f=[],p=0,m=0,b=c;mApplication
- Products
+ Products
- Deliveries
- Orders
- Customers
- Suppliers
+ Deliveries
+ Orders
+ Customers
+ Suppliers
@can('developer')
@@ -27,44 +22,32 @@
Administration
-
+
{{ Auth::user()->name }}
@endcan
diff --git a/resources/views/back/developer/impressum.blade.php b/resources/views/back/developer/impressum.blade.php
index 3f1878a..965daa5 100644
--- a/resources/views/back/developer/impressum.blade.php
+++ b/resources/views/back/developer/impressum.blade.php
@@ -26,17 +26,17 @@