From 3f7ed733959d5849acaee574db7f15abfe494329 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 20 Aug 2025 14:26:28 +0100 Subject: [PATCH 01/14] Added laravel telescope for dev environment Signed-off-by: snipe --- app/Providers/AppServiceProvider.php | 6 + app/Providers/TelescopeServiceProvider.php | 64 ++++++ composer.json | 4 +- composer.lock | 71 +++++- config/telescope.php | 207 ++++++++++++++++++ ..._100000_create_telescope_entries_table.php | 70 ++++++ 6 files changed, 420 insertions(+), 2 deletions(-) create mode 100644 app/Providers/TelescopeServiceProvider.php create mode 100644 config/telescope.php create mode 100644 database/migrations/2018_08_08_100000_create_telescope_entries_table.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ba81ffb7216c..2ebcb9b035cd 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -85,6 +85,12 @@ public function boot(UrlGenerator $url) */ public function register() { + + if ($this->app->environment('local')) { + $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class); + $this->app->register(TelescopeServiceProvider::class); + } + // Only load rollbar if there is a rollbar key and the app is in production if (($this->app->environment('production')) && (config('logging.channels.rollbar.access_token'))) { $this->app->register(\Rollbar\Laravel\RollbarServiceProvider::class); diff --git a/app/Providers/TelescopeServiceProvider.php b/app/Providers/TelescopeServiceProvider.php new file mode 100644 index 000000000000..b88c442f86e0 --- /dev/null +++ b/app/Providers/TelescopeServiceProvider.php @@ -0,0 +1,64 @@ +hideSensitiveRequestDetails(); + + $isLocal = $this->app->environment('local'); + + Telescope::filter(function (IncomingEntry $entry) use ($isLocal) { + return $isLocal || + $entry->isReportableException() || + $entry->isFailedRequest() || + $entry->isFailedJob() || + $entry->isScheduledTask() || + $entry->hasMonitoredTag(); + }); + } + + /** + * Prevent sensitive request details from being logged by Telescope. + */ + protected function hideSensitiveRequestDetails(): void + { + if ($this->app->environment('local')) { + return; + } + + Telescope::hideRequestParameters(['_token']); + + Telescope::hideRequestHeaders([ + 'cookie', + 'x-csrf-token', + 'x-xsrf-token', + ]); + } + + /** + * Register the Telescope gate. + * + * This gate determines who can access Telescope in non-local environments. + */ + protected function gate(): void + { + Gate::define('viewTelescope', function ($user) { + if (($this->app->environment('local')) && ($user->isSuperUser())) { + return true; + } + }); + } +} diff --git a/composer.json b/composer.json index 9277a32e30fa..f7b86417562e 100644 --- a/composer.json +++ b/composer.json @@ -84,6 +84,7 @@ }, "require-dev": { "larastan/larastan": "^2.9", + "laravel/telescope": "^5.11", "mockery/mockery": "^1.4", "nunomaduro/phpinsights": "^2.11", "php-mock/php-mock-phpunit": "^2.10", @@ -95,7 +96,8 @@ "extra": { "laravel": { "dont-discover": [ - "rollbar/rollbar-laravel" + "rollbar/rollbar-laravel", + "laravel/telescope" ] } }, diff --git a/composer.lock b/composer.lock index 68ecb096e1d6..788e74282fb3 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": "80c3f4268ff9cda7df9ad90a8b11ff50", + "content-hash": "41f2c8e1296de21aaf82d4b1bfbc1800", "packages": [ { "name": "alek13/slack", @@ -12883,6 +12883,75 @@ ], "time": "2025-06-10T22:06:33+00:00" }, + { + "name": "laravel/telescope", + "version": "v5.11.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/telescope.git", + "reference": "62e1a21db3db3e7440e9ca02ffa3efce14d6b85e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/telescope/zipball/62e1a21db3db3e7440e9ca02ffa3efce14d6b85e", + "reference": "62e1a21db3db3e7440e9ca02ffa3efce14d6b85e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel/framework": "^8.37|^9.0|^10.0|^11.0|^12.0", + "php": "^8.0", + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/var-dumper": "^5.0|^6.0|^7.0" + }, + "require-dev": { + "ext-gd": "*", + "guzzlehttp/guzzle": "^6.0|^7.0", + "laravel/octane": "^1.4|^2.0|dev-develop", + "orchestra/testbench": "^6.40|^7.37|^8.17|^9.0|^10.0", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.0|^10.5|^11.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Telescope\\TelescopeServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Telescope\\": "src/", + "Laravel\\Telescope\\Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Mohamed Said", + "email": "mohamed@laravel.com" + } + ], + "description": "An elegant debug assistant for the Laravel framework.", + "keywords": [ + "debugging", + "laravel", + "monitoring" + ], + "support": { + "issues": "https://github.com/laravel/telescope/issues", + "source": "https://github.com/laravel/telescope/tree/v5.11.2" + }, + "time": "2025-08-16T00:52:51+00:00" + }, { "name": "league/container", "version": "5.1.0", diff --git a/config/telescope.php b/config/telescope.php new file mode 100644 index 000000000000..fc09cd60545a --- /dev/null +++ b/config/telescope.php @@ -0,0 +1,207 @@ + env('TELESCOPE_ENABLED', false), + + /* + |-------------------------------------------------------------------------- + | Telescope Domain + |-------------------------------------------------------------------------- + | + | This is the subdomain where Telescope will be accessible from. If the + | setting is null, Telescope will reside under the same domain as the + | application. Otherwise, this value will be used as the subdomain. + | + */ + + 'domain' => env('TELESCOPE_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | Telescope Path + |-------------------------------------------------------------------------- + | + | This is the URI path where Telescope will be accessible from. Feel free + | to change this path to anything you like. Note that the URI will not + | affect the paths of its internal API that aren't exposed to users. + | + */ + + 'path' => env('TELESCOPE_PATH', 'telescope'), + + /* + |-------------------------------------------------------------------------- + | Telescope Storage Driver + |-------------------------------------------------------------------------- + | + | This configuration options determines the storage driver that will + | be used to store Telescope's data. In addition, you may set any + | custom options as needed by the particular driver you choose. + | + */ + + 'driver' => env('TELESCOPE_DRIVER', 'database'), + + 'storage' => [ + 'database' => [ + 'connection' => env('DB_CONNECTION', 'mysql'), + 'chunk' => 1000, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Telescope Queue + |-------------------------------------------------------------------------- + | + | This configuration options determines the queue connection and queue + | which will be used to process ProcessPendingUpdate jobs. This can + | be changed if you would prefer to use a non-default connection. + | + */ + + 'queue' => [ + 'connection' => env('TELESCOPE_QUEUE_CONNECTION'), + 'queue' => env('TELESCOPE_QUEUE'), + 'delay' => env('TELESCOPE_QUEUE_DELAY', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Telescope Route Middleware + |-------------------------------------------------------------------------- + | + | These middleware will be assigned to every Telescope route, giving you + | the chance to add your own middleware to this list or change any of + | the existing middleware. Or, you can simply stick with this list. + | + */ + + 'middleware' => [ + 'web', + Authorize::class, + ], + + /* + |-------------------------------------------------------------------------- + | Allowed / Ignored Paths & Commands + |-------------------------------------------------------------------------- + | + | The following array lists the URI paths and Artisan commands that will + | not be watched by Telescope. In addition to this list, some Laravel + | commands, like migrations and queue commands, are always ignored. + | + */ + + 'only_paths' => [ + // 'api/*' + ], + + 'ignore_paths' => [ + 'livewire*', + 'nova-api*', + 'pulse*', + ], + + 'ignore_commands' => [ + // + ], + + /* + |-------------------------------------------------------------------------- + | Telescope Watchers + |-------------------------------------------------------------------------- + | + | The following array lists the "watchers" that will be registered with + | Telescope. The watchers gather the application's profile data when + | a request or task is executed. Feel free to customize this list. + | + */ + + 'watchers' => [ + Watchers\BatchWatcher::class => env('TELESCOPE_BATCH_WATCHER', true), + + Watchers\CacheWatcher::class => [ + 'enabled' => env('TELESCOPE_CACHE_WATCHER', true), + 'hidden' => [], + 'ignore' => [], + ], + + Watchers\ClientRequestWatcher::class => env('TELESCOPE_CLIENT_REQUEST_WATCHER', true), + + Watchers\CommandWatcher::class => [ + 'enabled' => env('TELESCOPE_COMMAND_WATCHER', true), + 'ignore' => [], + ], + + Watchers\DumpWatcher::class => [ + 'enabled' => env('TELESCOPE_DUMP_WATCHER', true), + 'always' => env('TELESCOPE_DUMP_WATCHER_ALWAYS', false), + ], + + Watchers\EventWatcher::class => [ + 'enabled' => env('TELESCOPE_EVENT_WATCHER', true), + 'ignore' => [], + ], + + Watchers\ExceptionWatcher::class => env('TELESCOPE_EXCEPTION_WATCHER', true), + + Watchers\GateWatcher::class => [ + 'enabled' => env('TELESCOPE_GATE_WATCHER', true), + 'ignore_abilities' => [], + 'ignore_packages' => true, + 'ignore_paths' => [], + ], + + Watchers\JobWatcher::class => env('TELESCOPE_JOB_WATCHER', true), + + Watchers\LogWatcher::class => [ + 'enabled' => env('TELESCOPE_LOG_WATCHER', true), + 'level' => 'error', + ], + + Watchers\MailWatcher::class => env('TELESCOPE_MAIL_WATCHER', true), + + Watchers\ModelWatcher::class => [ + 'enabled' => env('TELESCOPE_MODEL_WATCHER', true), + 'events' => ['eloquent.*'], + 'hydrations' => true, + ], + + Watchers\NotificationWatcher::class => env('TELESCOPE_NOTIFICATION_WATCHER', true), + + Watchers\QueryWatcher::class => [ + 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), + 'ignore_packages' => true, + 'ignore_paths' => [], + 'slow' => 100, + ], + + Watchers\RedisWatcher::class => env('TELESCOPE_REDIS_WATCHER', true), + + Watchers\RequestWatcher::class => [ + 'enabled' => env('TELESCOPE_REQUEST_WATCHER', true), + 'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64), + 'ignore_http_methods' => [], + 'ignore_status_codes' => [], + ], + + Watchers\ScheduleWatcher::class => env('TELESCOPE_SCHEDULE_WATCHER', true), + Watchers\ViewWatcher::class => env('TELESCOPE_VIEW_WATCHER', true), + ], +]; diff --git a/database/migrations/2018_08_08_100000_create_telescope_entries_table.php b/database/migrations/2018_08_08_100000_create_telescope_entries_table.php new file mode 100644 index 000000000000..700a83f09585 --- /dev/null +++ b/database/migrations/2018_08_08_100000_create_telescope_entries_table.php @@ -0,0 +1,70 @@ +getConnection()); + + $schema->create('telescope_entries', function (Blueprint $table) { + $table->bigIncrements('sequence'); + $table->uuid('uuid'); + $table->uuid('batch_id'); + $table->string('family_hash')->nullable(); + $table->boolean('should_display_on_index')->default(true); + $table->string('type', 20); + $table->longText('content'); + $table->dateTime('created_at')->nullable(); + + $table->unique('uuid'); + $table->index('batch_id'); + $table->index('family_hash'); + $table->index('created_at'); + $table->index(['type', 'should_display_on_index']); + }); + + $schema->create('telescope_entries_tags', function (Blueprint $table) { + $table->uuid('entry_uuid'); + $table->string('tag'); + + $table->primary(['entry_uuid', 'tag']); + $table->index('tag'); + + $table->foreign('entry_uuid') + ->references('uuid') + ->on('telescope_entries') + ->onDelete('cascade'); + }); + + $schema->create('telescope_monitoring', function (Blueprint $table) { + $table->string('tag')->primary(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + $schema = Schema::connection($this->getConnection()); + + $schema->dropIfExists('telescope_entries_tags'); + $schema->dropIfExists('telescope_entries'); + $schema->dropIfExists('telescope_monitoring'); + } +}; From ae109be631b80983405db542804368d6462caad9 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 20 Aug 2025 14:43:52 +0100 Subject: [PATCH 02/14] Small tweaks Signed-off-by: snipe --- app/Providers/TelescopeServiceProvider.php | 6 ++++-- config/telescope.php | 2 -- resources/views/layouts/default.blade.php | 7 +++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/Providers/TelescopeServiceProvider.php b/app/Providers/TelescopeServiceProvider.php index b88c442f86e0..414cd2467e1a 100644 --- a/app/Providers/TelescopeServiceProvider.php +++ b/app/Providers/TelescopeServiceProvider.php @@ -51,14 +51,16 @@ protected function hideSensitiveRequestDetails(): void /** * Register the Telescope gate. * - * This gate determines who can access Telescope in non-local environments. + * This gate determines who can access Telescope in NON-LOCAL environments. */ protected function gate(): void { Gate::define('viewTelescope', function ($user) { - if (($this->app->environment('local')) && ($user->isSuperUser())) { + if ($user->isSuperUser()) { return true; } + + return false; }); } } diff --git a/config/telescope.php b/config/telescope.php index fc09cd60545a..5208137e9dd1 100644 --- a/config/telescope.php +++ b/config/telescope.php @@ -114,8 +114,6 @@ 'ignore_paths' => [ 'livewire*', - 'nova-api*', - 'pulse*', ], 'ignore_commands' => [ diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index 48ecd6f00d5a..eb94efe2ead5 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -985,6 +985,13 @@ @endif @endif + @if (($user->isSuperUser()) && (app()->environment('local'))) + Open Telescope + @endif + + + + @if ($snipeSettings->support_footer!='off') @if (($snipeSettings->support_footer=='on') || (($snipeSettings->support_footer=='admin') && (Auth::user()->isSuperUser()=='1'))) Date: Wed, 20 Aug 2025 14:47:58 +0100 Subject: [PATCH 03/14] Check for $user to handle tests Signed-off-by: snipe --- resources/views/layouts/default.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/layouts/default.blade.php b/resources/views/layouts/default.blade.php index eb94efe2ead5..52851565a328 100644 --- a/resources/views/layouts/default.blade.php +++ b/resources/views/layouts/default.blade.php @@ -985,7 +985,7 @@ @endif @endif - @if (($user->isSuperUser()) && (app()->environment('local'))) + @if (isset($user) && ($user->isSuperUser()) && (app()->environment('local'))) Open Telescope @endif From 7b5d90dd813ee89fbf7a2ef8bab33c694e73e204 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 28 Aug 2025 18:23:26 +0100 Subject: [PATCH 04/14] Moved model traits into proper directory Signed-off-by: snipe --- app/Models/Accessory.php | 1 + app/Models/Actionlog.php | 1 + app/Models/Asset.php | 5 +++-- app/Models/Company.php | 6 ++++-- app/Models/Component.php | 2 +- app/Models/Consumable.php | 12 +++--------- app/Models/ConsumableAssignment.php | 1 + app/Models/Department.php | 1 + app/Models/License.php | 4 ++-- app/Models/LicenseSeat.php | 1 + app/Models/Location.php | 7 +------ app/Models/Maintenance.php | 3 ++- app/Models/{ => Traits}/CompanyableChildTrait.php | 4 +++- app/Models/{ => Traits}/CompanyableTrait.php | 5 ++++- app/Models/User.php | 7 ++++--- 15 files changed, 32 insertions(+), 28 deletions(-) rename app/Models/{ => Traits}/CompanyableChildTrait.php (79%) rename app/Models/{ => Traits}/CompanyableTrait.php (90%) diff --git a/app/Models/Accessory.php b/app/Models/Accessory.php index 18c0b853c63a..21388241966b 100755 --- a/app/Models/Accessory.php +++ b/app/Models/Accessory.php @@ -4,6 +4,7 @@ use App\Helpers\Helper; use App\Models\Traits\Acceptable; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; use App\Presenters\Presentable; diff --git a/app/Models/Actionlog.php b/app/Models/Actionlog.php index bc1b5c72a256..5a1ad2a9927b 100755 --- a/app/Models/Actionlog.php +++ b/app/Models/Actionlog.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\Searchable; use App\Presenters\Presentable; use Carbon\Carbon; diff --git a/app/Models/Asset.php b/app/Models/Asset.php index 71b7d80e883f..3b303b758d93 100644 --- a/app/Models/Asset.php +++ b/app/Models/Asset.php @@ -7,19 +7,20 @@ use App\Helpers\Helper; use App\Http\Traits\UniqueUndeletedTrait; use App\Models\Traits\Acceptable; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; -use App\Presenters\Presentable; use App\Presenters\AssetPresenter; +use App\Presenters\Presentable; use Carbon\Carbon; use Illuminate\Database\Eloquent\Builder; +use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Storage; use Watson\Validating\ValidatingTrait; -use Illuminate\Database\Eloquent\Casts\Attribute; /** * Model for Assets. diff --git a/app/Models/Company.php b/app/Models/Company.php index a2f5ddc38bdb..72a12aebc66d 100644 --- a/app/Models/Company.php +++ b/app/Models/Company.php @@ -2,14 +2,16 @@ namespace App\Models; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\Searchable; use App\Presenters\Presentable; -use Illuminate\Support\Facades\Auth; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Gate; -use Watson\Validating\ValidatingTrait; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Schema; +use Watson\Validating\ValidatingTrait; + /** * Model for Companies. * diff --git a/app/Models/Component.php b/app/Models/Component.php index a83993c225ab..5dfa03128216 100644 --- a/app/Models/Component.php +++ b/app/Models/Component.php @@ -3,13 +3,13 @@ namespace App\Models; use App\Helpers\Helper; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; use App\Presenters\Presentable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Gate; -use Illuminate\Support\Facades\Storage; use Watson\Validating\ValidatingTrait; /** diff --git a/app/Models/Consumable.php b/app/Models/Consumable.php index ca5ddcf52b6b..5ac659cca0ad 100644 --- a/app/Models/Consumable.php +++ b/app/Models/Consumable.php @@ -4,22 +4,16 @@ use App\Helpers\Helper; use App\Models\Traits\Acceptable; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; +use App\Presenters\ConsumablePresenter; use App\Presenters\Presentable; use Illuminate\Database\Eloquent\Factories\HasFactory; +use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Storage; use Watson\Validating\ValidatingTrait; -use Illuminate\Database\Eloquent\Relations\Relation; -use App\Presenters\ConsumablePresenter; -use App\Models\Actionlog; -use App\Models\ConsumableAssignment; -use App\Models\User; -use App\Models\Location; -use App\Models\Manufacturer; -use App\Models\Supplier; -use App\Models\Category; class Consumable extends SnipeModel { diff --git a/app/Models/ConsumableAssignment.php b/app/Models/ConsumableAssignment.php index 4c9a19703e5b..0e634f580fe4 100644 --- a/app/Models/ConsumableAssignment.php +++ b/app/Models/ConsumableAssignment.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Models\Traits\CompanyableTrait; use Illuminate\Database\Eloquent\Model; use Watson\Validating\ValidatingTrait; diff --git a/app/Models/Department.php b/app/Models/Department.php index 79616101e3b9..1569081fdd7b 100644 --- a/app/Models/Department.php +++ b/app/Models/Department.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Http\Traits\UniqueUndeletedTrait; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\Searchable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Watson\Validating\ValidatingTrait; diff --git a/app/Models/License.php b/app/Models/License.php index a40728a8323b..519736842cc6 100755 --- a/app/Models/License.php +++ b/app/Models/License.php @@ -3,14 +3,14 @@ namespace App\Models; use App\Helpers\Helper; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; use App\Presenters\Presentable; use Carbon\Carbon; -use Illuminate\Support\Facades\DB; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; -use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Session; use Watson\Validating\ValidatingTrait; diff --git a/app/Models/LicenseSeat.php b/app/Models/LicenseSeat.php index 52cbd9be5a09..f98028a2f016 100755 --- a/app/Models/LicenseSeat.php +++ b/app/Models/LicenseSeat.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Models\Traits\Acceptable; +use App\Models\Traits\CompanyableChildTrait; use App\Notifications\CheckinLicenseNotification; use App\Notifications\CheckoutLicenseNotification; use App\Presenters\Presentable; diff --git a/app/Models/Location.php b/app/Models/Location.php index 64187082d3a2..352ffd1201b6 100755 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -3,16 +3,11 @@ namespace App\Models; use App\Http\Traits\UniqueUndeletedTrait; -use App\Models\Asset; -use App\Models\Setting; -use App\Models\SnipeModel; +use App\Models\Traits\CompanyableTrait; use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; -use App\Models\User; use App\Presenters\Presentable; -use Illuminate\Support\Facades\DB; use Illuminate\Database\Eloquent\Factories\HasFactory; -use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Gate; use Watson\Validating\ValidatingTrait; diff --git a/app/Models/Maintenance.php b/app/Models/Maintenance.php index 4b6320739e2e..3a53b3c41bab 100644 --- a/app/Models/Maintenance.php +++ b/app/Models/Maintenance.php @@ -3,12 +3,13 @@ namespace App\Models; use App\Helpers\Helper; +use App\Models\Traits\CompanyableChildTrait; +use App\Models\Traits\HasUploads; use App\Models\Traits\Searchable; use App\Presenters\Presentable; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; use Watson\Validating\ValidatingTrait; -use App\Models\Traits\HasUploads; /** * Model for Asset Maintenances. diff --git a/app/Models/CompanyableChildTrait.php b/app/Models/Traits/CompanyableChildTrait.php similarity index 79% rename from app/Models/CompanyableChildTrait.php rename to app/Models/Traits/CompanyableChildTrait.php index 1158c70e98ba..36e19cffa810 100644 --- a/app/Models/CompanyableChildTrait.php +++ b/app/Models/Traits/CompanyableChildTrait.php @@ -1,6 +1,8 @@ Date: Thu, 28 Aug 2025 11:49:37 -0700 Subject: [PATCH 05/14] fix dropdown link color and skin names --- resources/assets/less/app.less | 4 ---- resources/lang/en-US/general.php | 6 +++--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/resources/assets/less/app.less b/resources/assets/less/app.less index 4bd388972264..bf3c83688350 100644 --- a/resources/assets/less/app.less +++ b/resources/assets/less/app.less @@ -376,10 +376,6 @@ a.accordion-header { /* adjust based on your layout */ } -.skin-blue .main-header .navbar .dropdown-menu li a { - color: #333; -} - a.logo.no-hover a:hover { background-color: transparent; } diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index eb7df70d4312..b304bc9725e4 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -627,11 +627,11 @@ 'site_default' => 'Site Default', 'default_blue' => 'Default Blue', 'blue_dark' => 'Blue (Dark Mode)', - 'green' => 'Green Dark', + 'green' => 'Green', 'green_dark' => 'Green (Dark Mode)', - 'red' => 'Red Dark', + 'red' => 'Red', 'red_dark' => 'Red (Dark Mode)', - 'orange' => 'Orange Dark', + 'orange' => 'Orange', 'orange_dark' => 'Orange (Dark Mode)', 'black' => 'Black', 'black_dark' => 'Black (Dark Mode)', From ca95b29cd64ad9a1dec391f03016f8bed2afbf26 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 28 Aug 2025 19:52:56 +0100 Subject: [PATCH 06/14] Add telescope tables to the excepted tables Signed-off-by: snipe --- app/Console/Commands/PaveIt.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Console/Commands/PaveIt.php b/app/Console/Commands/PaveIt.php index 36aacd6636f2..8c6bc89a5174 100644 --- a/app/Console/Commands/PaveIt.php +++ b/app/Console/Commands/PaveIt.php @@ -59,6 +59,9 @@ public function handle() 'migrations', 'settings', 'users', + 'telescope_entries', + 'telescope_entries_tags', + 'telescope_monitoring', ]; // We only need to find out what these are so we can nuke these columns on the assets table. From da6fab5d43666ac6e0ed3493b923bfe77fd9a0f9 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Thu, 28 Aug 2025 13:37:40 -0700 Subject: [PATCH 07/14] adds parent location to checked out to location --- resources/views/hardware/view.blade.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index a7a652ed9955..6ddf04de5156 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -378,7 +378,11 @@ class="form-inline" @if (isset($asset->location))
  • - {{ $asset->location->name }}
  • + {{ $asset->location->parent?->name }} + @if ($asset->location->parent) + + @endif + {{ $asset->location->name }}
  • {{ $asset->location->address }} @if ($asset->location->address2!='') {{ $asset->location->address2 }} From 3a27ecc4757ccf24b33f6f56df4d0b09c734a41a Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 28 Aug 2025 16:22:24 -0700 Subject: [PATCH 08/14] Use display_name in place of name() --- .../notifications/markdown/report-expiring-assets.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/notifications/markdown/report-expiring-assets.blade.php b/resources/views/notifications/markdown/report-expiring-assets.blade.php index 2ad33b57c40b..f6391aa64e9b 100644 --- a/resources/views/notifications/markdown/report-expiring-assets.blade.php +++ b/resources/views/notifications/markdown/report-expiring-assets.blade.php @@ -10,7 +10,7 @@ $diff = round(abs(strtotime($asset->present()->warranty_expires) - strtotime(date('Y-m-d')))/86400); $icon = ($diff <= ($threshold / 2)) ? '🚨' : (($diff <= $threshold) ? '⚠️' : ' '); @endphp - {{ $icon }} {{ $asset->present()->name }}
    {{trans('mail.serial').': '.$asset->serial}} {{ $diff }} {{ trans('mail.Days') }} {{ !is_null($expires) ? $expires['formatted'] : '' }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} {{ ($asset->assignedTo ? e($asset->assignedTo->present()->name()) : '') }} + {{ $icon }} {{ $asset->present()->name }}
    {{trans('mail.serial').': '.$asset->serial}} {{ $diff }} {{ trans('mail.Days') }} {{ !is_null($expires) ? $expires['formatted'] : '' }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} {{ ($asset->assignedTo ? e($asset->assignedTo->present()->display_name) : '') }} @endforeach @endcomponent From 830a7964a4cc52611b1b0d09ca58acf4b47375a6 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 28 Aug 2025 16:22:24 -0700 Subject: [PATCH 09/14] Use display_name in place of name() --- .../notifications/markdown/report-expiring-assets.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/notifications/markdown/report-expiring-assets.blade.php b/resources/views/notifications/markdown/report-expiring-assets.blade.php index 2ad33b57c40b..f6391aa64e9b 100644 --- a/resources/views/notifications/markdown/report-expiring-assets.blade.php +++ b/resources/views/notifications/markdown/report-expiring-assets.blade.php @@ -10,7 +10,7 @@ $diff = round(abs(strtotime($asset->present()->warranty_expires) - strtotime(date('Y-m-d')))/86400); $icon = ($diff <= ($threshold / 2)) ? '🚨' : (($diff <= $threshold) ? '⚠️' : ' '); @endphp - {{ $icon }} {{ $asset->present()->name }}
    {{trans('mail.serial').': '.$asset->serial}} {{ $diff }} {{ trans('mail.Days') }} {{ !is_null($expires) ? $expires['formatted'] : '' }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} {{ ($asset->assignedTo ? e($asset->assignedTo->present()->name()) : '') }} + {{ $icon }} {{ $asset->present()->name }}
    {{trans('mail.serial').': '.$asset->serial}} {{ $diff }} {{ trans('mail.Days') }} {{ !is_null($expires) ? $expires['formatted'] : '' }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} {{ ($asset->assignedTo ? e($asset->assignedTo->present()->display_name) : '') }} @endforeach @endcomponent From 28abeab31dcc85b1512774f5726fcc6571c387a0 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 29 Aug 2025 10:06:58 +0100 Subject: [PATCH 10/14] Fixed a few more `display_name` instances Signed-off-by: snipe --- app/Console/Commands/Purge.php | 2 +- app/Http/Transformers/ComponentsTransformer.php | 2 +- app/Http/Transformers/ProfileTransformer.php | 1 - app/Notifications/AuditNotification.php | 2 +- app/Notifications/CheckinAccessoryNotification.php | 8 ++++---- app/Notifications/CheckinAssetNotification.php | 8 ++++---- app/Notifications/CheckinComponentNotification.php | 6 +++--- app/Notifications/CheckinLicenseSeatNotification.php | 8 ++++---- app/Notifications/CheckoutAccessoryNotification.php | 10 +++++----- app/Notifications/CheckoutAssetNotification.php | 10 +++++----- app/Notifications/CheckoutComponentNotification.php | 8 ++++---- app/Notifications/CheckoutConsumableNotification.php | 8 ++++---- app/Notifications/CheckoutLicenseSeatNotification.php | 8 ++++---- app/Notifications/RequestAssetCancelation.php | 2 +- app/Notifications/RequestAssetNotification.php | 2 +- resources/views/account/accept/create.blade.php | 4 ++-- resources/views/hardware/bulk-delete.blade.php | 2 +- resources/views/hardware/bulk-restore.blade.php | 2 +- .../markdown/report-expected-checkins.blade.php | 2 +- .../markdown/report-expiring-assets.blade.php | 2 +- .../notifications/markdown/upcoming-audits.blade.php | 4 ++-- .../notifications/markdown/user-inventory.blade.php | 2 +- 22 files changed, 51 insertions(+), 52 deletions(-) diff --git a/app/Console/Commands/Purge.php b/app/Console/Commands/Purge.php index 351bacf715c9..4db7bac1472f 100644 --- a/app/Console/Commands/Purge.php +++ b/app/Console/Commands/Purge.php @@ -65,7 +65,7 @@ public function handle() $maintenances = 0; foreach ($assets as $asset) { - $this->info('- Asset "'.$asset->present()->name().'" deleted.'); + $this->info('- Asset "'.$asset->display_name.'" deleted.'); $asset_assoc += $asset->assetlog()->count(); $asset->assetlog()->forceDelete(); $maintenances += $asset->maintenances()->count(); diff --git a/app/Http/Transformers/ComponentsTransformer.php b/app/Http/Transformers/ComponentsTransformer.php index 969a137f5c35..f7f8c337bf6e 100644 --- a/app/Http/Transformers/ComponentsTransformer.php +++ b/app/Http/Transformers/ComponentsTransformer.php @@ -76,7 +76,7 @@ public function transformCheckedoutComponents(Collection $components_assets, $to $array[] = [ 'assigned_pivot_id' => $asset->pivot->id, 'id' => (int) $asset->id, - 'name' => e($asset->model->present()->name).' '.e($asset->present()->name), + 'name' => e($asset->model->display_name).' '.e($asset->display_name), 'qty' => $asset->pivot->assigned_qty, 'note' => $asset->pivot->note, 'type' => 'asset', diff --git a/app/Http/Transformers/ProfileTransformer.php b/app/Http/Transformers/ProfileTransformer.php index a0c07e699f5f..bdc748dc24b6 100644 --- a/app/Http/Transformers/ProfileTransformer.php +++ b/app/Http/Transformers/ProfileTransformer.php @@ -4,7 +4,6 @@ use App\Helpers\Helper; use App\Models\Actionlog; -use App\Models\Asset; use Illuminate\Database\Eloquent\Collection; class ProfileTransformer diff --git a/app/Notifications/AuditNotification.php b/app/Notifications/AuditNotification.php index d33f656ef3e5..3acce861b422 100644 --- a/app/Notifications/AuditNotification.php +++ b/app/Notifications/AuditNotification.php @@ -93,7 +93,7 @@ public static function toMicrosoftTeams($params) } $message = class_basename(get_class($params['item'])) . ' Audited By '.$admin_user->display_name; $details = [ - trans('mail.asset') => htmlspecialchars_decode($item->present()->name), + trans('mail.asset') => htmlspecialchars_decode($item->display_name), trans('mail.notes') => $note ?: '', trans('general.location') => $location ?: '', ]; diff --git a/app/Notifications/CheckinAccessoryNotification.php b/app/Notifications/CheckinAccessoryNotification.php index b1ce3be29e3e..45c6fa617ddf 100644 --- a/app/Notifications/CheckinAccessoryNotification.php +++ b/app/Notifications/CheckinAccessoryNotification.php @@ -90,7 +90,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -107,7 +107,7 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('Accessory_Checkin_Notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityTitle') + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityTitle') ->fact(trans('mail.checked_into'), $item->location->name ? $item->location->name : '') ->fact(trans('mail.Accessory_Checkin_Notification')." by ", $admin->display_name) ->fact(trans('admin/consumables/general.remaining'), $item->numRemaining()) @@ -116,7 +116,7 @@ public function toMicrosoftTeams() $message = trans('mail.Accessory_Checkin_Notification'); $details = [ - trans('mail.accessory_name') => htmlspecialchars_decode($item->present()->name), + trans('mail.accessory_name') => htmlspecialchars_decode($item->display_name), trans('mail.checked_into') => $item->location->name ? $item->location->name : '', trans('mail.Accessory_Checkin_Notification'). ' by' => $admin->display_name, trans('admin/consumables/general.remaining')=> $item->numRemaining(), @@ -135,7 +135,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Accessory_Checkin_Notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckinAssetNotification.php b/app/Notifications/CheckinAssetNotification.php index 2ff65134a9af..066c9a14d1b5 100644 --- a/app/Notifications/CheckinAssetNotification.php +++ b/app/Notifications/CheckinAssetNotification.php @@ -97,7 +97,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -114,7 +114,7 @@ public function toMicrosoftTeams() ->type('success') ->title(trans('mail.Asset_Checkin_Notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityText') + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityText') ->fact(trans('mail.checked_into'), ($item->location) ? $item->location->name : '') ->fact(trans('mail.Asset_Checkin_Notification') . " by ", $admin->display_name) ->fact(trans('admin/hardware/form.status'), $item->assetstatus?->name) @@ -124,7 +124,7 @@ public function toMicrosoftTeams() $message = trans('mail.Asset_Checkin_Notification'); $details = [ - trans('mail.asset') => htmlspecialchars_decode($item->present()->name), + trans('mail.asset') => htmlspecialchars_decode($item->display_name), trans('mail.checked_into') => ($item->location) ? $item->location->name : '', trans('mail.Asset_Checkin_Notification')." by " => $admin->display_name, trans('admin/hardware/form.status') => $item->assetstatus?->name, @@ -145,7 +145,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Asset_Checkin_Notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckinComponentNotification.php b/app/Notifications/CheckinComponentNotification.php index 1532d507c7d8..b302ee89795b 100644 --- a/app/Notifications/CheckinComponentNotification.php +++ b/app/Notifications/CheckinComponentNotification.php @@ -100,7 +100,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -118,7 +118,7 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('mail.Component_checkin_notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'header') + ->fact(htmlspecialchars_decode($item->display_name), '', 'header') ->fact(trans('mail.Component_checkin_notification')." by ", $admin->display_name ?: 'CLI tool') ->fact(trans('mail.checkedin_from'), $target->display_name) ->fact(trans('admin/consumables/general.remaining'), $item->numRemaining()) @@ -147,7 +147,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Component_checkin_notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckinLicenseSeatNotification.php b/app/Notifications/CheckinLicenseSeatNotification.php index f0110db8ba33..60eec737d668 100644 --- a/app/Notifications/CheckinLicenseSeatNotification.php +++ b/app/Notifications/CheckinLicenseSeatNotification.php @@ -101,7 +101,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -119,7 +119,7 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('mail.License_Checkin_Notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'header') + ->fact(htmlspecialchars_decode($item->display_name), '', 'header') ->fact(trans('mail.License_Checkin_Notification')." by ", $admin->display_name ?: 'CLI tool') ->fact(trans('mail.checkedin_from'), $target->display_name) ->fact(trans('admin/consumables/general.remaining'), $item->availCount()->count()) @@ -129,7 +129,7 @@ public function toMicrosoftTeams() $message = trans('mail.License_Checkin_Notification'); $details = [ trans('mail.checkedin_from')=> $target->display_name, - trans('mail.license_for') => htmlspecialchars_decode($item->present()->name), + trans('mail.license_for') => htmlspecialchars_decode($item->display_name), trans('mail.License_Checkin_Notification')." by " => $admin->display_name ?: 'CLI tool', trans('admin/consumables/general.remaining') => $item->availCount()->count(), trans('mail.notes') => $note ?: '', @@ -149,7 +149,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.License_Checkin_Notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckoutAccessoryNotification.php b/app/Notifications/CheckoutAccessoryNotification.php index 22dc78b2b32a..f1a955131865 100644 --- a/app/Notifications/CheckoutAccessoryNotification.php +++ b/app/Notifications/CheckoutAccessoryNotification.php @@ -117,7 +117,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($this->checkout_qty.' x '.$item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($this->checkout_qty.' x '.$item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -136,8 +136,8 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('mail.Accessory_Checkout_Notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityTitle') - ->fact(trans('mail.assigned_to'), $target->present()->name) + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityTitle') + ->fact(trans('mail.assigned_to'), $target->display_name) ->fact(trans('general.qty'), $this->checkout_qty) ->fact(trans('mail.checkedout_from'), $item->location->name ? $item->location->name : '') ->fact(trans('mail.Accessory_Checkout_Notification') . " by ", $admin->display_name) @@ -148,7 +148,7 @@ public function toMicrosoftTeams() $message = trans('mail.Accessory_Checkout_Notification'); $details = [ trans('mail.assigned_to') => $target->present()->name, - trans('mail.accessory_name') => htmlspecialchars_decode($item->present()->name), + trans('mail.accessory_name') => htmlspecialchars_decode($item->display_name), trans('general.qty') => $this->checkout_qty, trans('mail.checkedout_from') => $item->location->name ? $item->location->name : '', trans('mail.Accessory_Checkout_Notification'). ' by' => $admin->display_name, @@ -169,7 +169,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Accessory_Checkout_Notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckoutAssetNotification.php b/app/Notifications/CheckoutAssetNotification.php index 70ab74c60eb7..28caaff31b91 100644 --- a/app/Notifications/CheckoutAssetNotification.php +++ b/app/Notifications/CheckoutAssetNotification.php @@ -114,7 +114,7 @@ public function toSlack() :SlackMessage ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -133,8 +133,8 @@ public function toMicrosoftTeams() ->type('success') ->title(trans('mail.Asset_Checkout_Notification')) ->addStartGroupToSection('activityText') - ->fact(trans('mail.assigned_to'), $target->present()->name) - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityText') + ->fact(trans('mail.assigned_to'), $target->display_name) + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityText') ->fact(trans('mail.Asset_Checkout_Notification') . " by ", $admin->display_name) ->fact(trans('mail.notes'), $note ?: ''); } @@ -142,7 +142,7 @@ public function toMicrosoftTeams() $message = trans('mail.Asset_Checkout_Notification'); $details = [ trans('mail.assigned_to') => $target->present()->name, - trans('mail.asset') => htmlspecialchars_decode($item->present()->name), + trans('mail.asset') => htmlspecialchars_decode($item->display_name), trans('mail.Asset_Checkout_Notification'). ' by' => $admin->display_name, trans('mail.notes') => $note ?: '', ]; @@ -160,7 +160,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Asset_Checkout_Notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckoutComponentNotification.php b/app/Notifications/CheckoutComponentNotification.php index 11f77e9d47b9..86ab20fcb4b2 100644 --- a/app/Notifications/CheckoutComponentNotification.php +++ b/app/Notifications/CheckoutComponentNotification.php @@ -97,7 +97,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -116,7 +116,7 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('mail.Component_checkout_notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityTitle') + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityTitle') ->fact(trans('mail.Component_checkout_notification')." by ", $admin->display_name) ->fact(trans('mail.assigned_to'), $target->display_name) ->fact(trans('admin/consumables/general.remaining'), $item->numRemaining()) @@ -126,7 +126,7 @@ public function toMicrosoftTeams() $message = trans('mail.Component_checkout_notification'); $details = [ trans('mail.assigned_to') => $target->display_name, - trans('mail.item') => htmlspecialchars_decode($item->present()->name), + trans('mail.item') => htmlspecialchars_decode($item->display_name), trans('mail.Component_checkout_notification').' by' => $admin->display_name, trans('admin/consumables/general.remaining') => $item->numRemaining(), trans('mail.notes') => $note ?: '', @@ -146,7 +146,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Component_checkout_notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckoutConsumableNotification.php b/app/Notifications/CheckoutConsumableNotification.php index 0274bbeecf03..96568c4bd634 100644 --- a/app/Notifications/CheckoutConsumableNotification.php +++ b/app/Notifications/CheckoutConsumableNotification.php @@ -97,7 +97,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -116,7 +116,7 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('mail.Consumable_checkout_notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityTitle') + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityTitle') ->fact(trans('mail.Consumable_checkout_notification')." by ", $admin->display_name) ->fact(trans('mail.assigned_to'), $target->display_name) ->fact(trans('admin/consumables/general.remaining'), $item->numRemaining()) @@ -126,7 +126,7 @@ public function toMicrosoftTeams() $message = trans('mail.Consumable_checkout_notification'); $details = [ trans('mail.assigned_to') => $target->display_name, - trans('mail.item') => htmlspecialchars_decode($item->present()->name), + trans('mail.item') => htmlspecialchars_decode($item->display_name), trans('mail.Consumable_checkout_notification').' by' => $admin->display_name, trans('admin/consumables/general.remaining') => $item->numRemaining(), trans('mail.notes') => $note ?: '', @@ -146,7 +146,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.Consumable_checkout_notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/CheckoutLicenseSeatNotification.php b/app/Notifications/CheckoutLicenseSeatNotification.php index 4fc2ab7def3f..43de9f698bfa 100644 --- a/app/Notifications/CheckoutLicenseSeatNotification.php +++ b/app/Notifications/CheckoutLicenseSeatNotification.php @@ -95,7 +95,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $admin, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); @@ -114,7 +114,7 @@ public function toMicrosoftTeams() ->addStartGroupToSection('activityTitle') ->title(trans('mail.License_Checkout_Notification')) ->addStartGroupToSection('activityText') - ->fact(htmlspecialchars_decode($item->present()->name), '', 'activityTitle') + ->fact(htmlspecialchars_decode($item->display_name), '', 'activityTitle') ->fact(trans('mail.License_Checkout_Notification')." by ", $admin->display_name) ->fact(trans('mail.assigned_to'), $target->display_name) ->fact(trans('admin/consumables/general.remaining'), $item->availCount()->count()) @@ -124,7 +124,7 @@ public function toMicrosoftTeams() $message = trans('mail.License_Checkout_Notification'); $details = [ trans('mail.assigned_to') => $target->display_name, - trans('mail.license_for') => htmlspecialchars_decode($item->present()->name), + trans('mail.license_for') => htmlspecialchars_decode($item->display_name), trans('mail.License_Checkout_Notification').' by' => $admin->display_name, trans('admin/consumables/general.remaining') => $item->availCount()->count(), trans('mail.notes') => $note ?: '', @@ -143,7 +143,7 @@ public function toGoogleChat() Card::create() ->header( ''.trans('mail.License_Checkout_Notification').'' ?: '', - htmlspecialchars_decode($item->present()->name) ?: '', + htmlspecialchars_decode($item->display_name) ?: '', ) ->section( Section::create( diff --git a/app/Notifications/RequestAssetCancelation.php b/app/Notifications/RequestAssetCancelation.php index 0211b17e4e44..d6e5f44fd9c8 100644 --- a/app/Notifications/RequestAssetCancelation.php +++ b/app/Notifications/RequestAssetCancelation.php @@ -91,7 +91,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); diff --git a/app/Notifications/RequestAssetNotification.php b/app/Notifications/RequestAssetNotification.php index e3c99c56f65f..85f5aef50c1d 100644 --- a/app/Notifications/RequestAssetNotification.php +++ b/app/Notifications/RequestAssetNotification.php @@ -86,7 +86,7 @@ public function toSlack() ->from($botname) ->to($channel) ->attachment(function ($attachment) use ($item, $note, $fields) { - $attachment->title(htmlspecialchars_decode($item->present()->name), $item->present()->viewUrl()) + $attachment->title(htmlspecialchars_decode($item->display_name), $item->present()->viewUrl()) ->fields($fields) ->content($note); }); diff --git a/resources/views/account/accept/create.blade.php b/resources/views/account/accept/create.blade.php index 54a4371f1f32..61528ef72866 100644 --- a/resources/views/account/accept/create.blade.php +++ b/resources/views/account/accept/create.blade.php @@ -2,7 +2,7 @@ {{-- Page title --}} @section('title') - {{trans('general.accept', ['asset' => $acceptance->checkoutable->present()->name()])}} + {{trans('general.accept', ['asset' => $acceptance->checkoutable->display_name])}} @parent @stop @@ -38,7 +38,7 @@

    - {{$acceptance->checkoutable->present()->name()}} + {{ $acceptance->checkoutable->display_name }} {{ (($acceptance->checkoutable) && ($acceptance->checkoutable->serial)) ? ' - '.trans('general.serial_number').': '.$acceptance->checkoutable->serial : '' }}

    diff --git a/resources/views/hardware/bulk-delete.blade.php b/resources/views/hardware/bulk-delete.blade.php index 96c931ae2be4..0db67bd9ebe2 100644 --- a/resources/views/hardware/bulk-delete.blade.php +++ b/resources/views/hardware/bulk-delete.blade.php @@ -40,7 +40,7 @@ {{ $asset->id }} - {{ $asset->present()->name() }} + {{ $asset->display_name }} @if ($asset->location) {{ $asset->location->present()->name() }} diff --git a/resources/views/hardware/bulk-restore.blade.php b/resources/views/hardware/bulk-restore.blade.php index a998642685a8..4294cbddde0c 100644 --- a/resources/views/hardware/bulk-restore.blade.php +++ b/resources/views/hardware/bulk-restore.blade.php @@ -39,7 +39,7 @@ {{ $asset->id }} - {{ $asset->present()->name() }} + {{ $asset->display_name }} @if ($asset->location) {{ $asset->location->name }} diff --git a/resources/views/notifications/markdown/report-expected-checkins.blade.php b/resources/views/notifications/markdown/report-expected-checkins.blade.php index be50e07a9837..9e5259e12e16 100644 --- a/resources/views/notifications/markdown/report-expected-checkins.blade.php +++ b/resources/views/notifications/markdown/report-expected-checkins.blade.php @@ -13,7 +13,7 @@ $assignedToName = $asset->assignedTo ? $asset->assignedTo->present()->fullName : trans('general.unknown_user'); $assignedToRoute = $asset->assignedTo ? route($asset->targetShowRoute().'.show', [$asset->assignedTo->id]) : ''; @endphp -| [{{ $asset->present()->name }}]({{ route('hardware.show', $asset) }}) | @if ($asset->assignedTo) [{{ $assignedToName }}]({{ $assignedToRoute }}) @else {{ $assignedToName }} @endif | {{ $checkin['formatted'] }} +| [{{ $asset->display_name }}]({{ route('hardware.show', $asset) }}) | @if ($asset->assignedTo) [{{ $assignedToName }}]({{ $assignedToRoute }}) @else {{ $assignedToName }} @endif | {{ $checkin['formatted'] }} @endforeach @endcomponent diff --git a/resources/views/notifications/markdown/report-expiring-assets.blade.php b/resources/views/notifications/markdown/report-expiring-assets.blade.php index f6391aa64e9b..4c7ac47f1fa8 100644 --- a/resources/views/notifications/markdown/report-expiring-assets.blade.php +++ b/resources/views/notifications/markdown/report-expiring-assets.blade.php @@ -10,7 +10,7 @@ $diff = round(abs(strtotime($asset->present()->warranty_expires) - strtotime(date('Y-m-d')))/86400); $icon = ($diff <= ($threshold / 2)) ? '🚨' : (($diff <= $threshold) ? '⚠️' : ' '); @endphp - {{ $icon }} {{ $asset->present()->name }}
    {{trans('mail.serial').': '.$asset->serial}} {{ $diff }} {{ trans('mail.Days') }} {{ !is_null($expires) ? $expires['formatted'] : '' }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} {{ ($asset->assignedTo ? e($asset->assignedTo->present()->display_name) : '') }} + {{ $icon }} {{ $asset->display_name }}
    {{trans('mail.serial').': '.$asset->serial}} {{ $diff }} {{ trans('mail.Days') }} {{ !is_null($expires) ? $expires['formatted'] : '' }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} {{ ($asset->assignedTo ? e($asset->assignedTo->present()->display_name) : '') }} @endforeach @endcomponent diff --git a/resources/views/notifications/markdown/upcoming-audits.blade.php b/resources/views/notifications/markdown/upcoming-audits.blade.php index 35a30721b905..c0c2ab2a73eb 100644 --- a/resources/views/notifications/markdown/upcoming-audits.blade.php +++ b/resources/views/notifications/markdown/upcoming-audits.blade.php @@ -27,12 +27,12 @@ {{ $icon }} - {{ $asset->present()->name }} + {{ $asset->display_name }} {{ $last_audit_date }} {{ $next_audit_date }} {{ $diff }} {{ ($asset->supplier ? e($asset->supplier->name) : '') }} - {{ ($asset->assignedTo ? $asset->assignedTo->present()->name() : '') }} + {{ ($asset->assignedTo ? $asset->display_name : '') }} {!! nl2br(e($asset->notes)) !!} diff --git a/resources/views/notifications/markdown/user-inventory.blade.php b/resources/views/notifications/markdown/user-inventory.blade.php index 6c062b4a0ac5..207bc4c78942 100644 --- a/resources/views/notifications/markdown/user-inventory.blade.php +++ b/resources/views/notifications/markdown/user-inventory.blade.php @@ -14,7 +14,7 @@ @foreach($assets as $asset) - {{ $asset->present()->name }} + {{ $asset->display_name }} {{ $asset->asset_tag }} {{ $asset->serial }} {{ $asset->model->category->name }} From b3c583b6dc8bb1a85eb7ccdc52f67c75315bc2f3 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 29 Aug 2025 10:17:16 +0100 Subject: [PATCH 11/14] Few more ->display_name Signed-off-by: snipe --- app/Http/Controllers/ReportsController.php | 4 ++-- resources/views/hardware/bulk-delete.blade.php | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/ReportsController.php b/app/Http/Controllers/ReportsController.php index 6883e8cea3ac..89a0a07a2135 100644 --- a/app/Http/Controllers/ReportsController.php +++ b/app/Http/Controllers/ReportsController.php @@ -830,7 +830,7 @@ public function postCustom(CustomAssetReportRequest $request) : StreamedResponse } if ($request->filled('location')) { - $row[] = ($asset->location) ? $asset->location->present()->name() : ''; + $row[] = ($asset->location) ? $asset->location->display_name : ''; } if ($request->filled('location_address')) { @@ -843,7 +843,7 @@ public function postCustom(CustomAssetReportRequest $request) : StreamedResponse } if ($request->filled('rtd_location')) { - $row[] = ($asset->defaultLoc) ? $asset->defaultLoc->present()->name() : ''; + $row[] = ($asset->defaultLoc) ? $asset->defaultLoc->display_name : ''; } if ($request->filled('rtd_location_address')) { diff --git a/resources/views/hardware/bulk-delete.blade.php b/resources/views/hardware/bulk-delete.blade.php index 0db67bd9ebe2..85185bdc0904 100644 --- a/resources/views/hardware/bulk-delete.blade.php +++ b/resources/views/hardware/bulk-delete.blade.php @@ -43,14 +43,14 @@ {{ $asset->display_name }} @if ($asset->location) - {{ $asset->location->present()->name() }} + {{ $asset->location->display_name }} @elseif($asset->rtd_location) - {{ $asset->defaultLoc->present()->name() }} + {{ $asset->defaultLoc->display_name }} @endif @if ($asset->assigned) - {{ $asset->assigned->present()->name() }} + {{ $asset->assigned->display_name }} @endif From 53b96168a992d4b8e1366d72a1ca3ecdcb91a500 Mon Sep 17 00:00:00 2001 From: Speedyduck300000 Date: Mon, 1 Sep 2025 07:34:18 +0200 Subject: [PATCH 12/14] fixed uploadfilescontroller to use the file_id to delete the correct entry. --- app/Http/Controllers/UploadedFilesController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/UploadedFilesController.php b/app/Http/Controllers/UploadedFilesController.php index eb1c45110db6..463cfc2b238a 100644 --- a/app/Http/Controllers/UploadedFilesController.php +++ b/app/Http/Controllers/UploadedFilesController.php @@ -139,7 +139,7 @@ public function destroy($object_type, $id, $file_id) : RedirectResponse // Check for the file - $log = Actionlog::find($file_id)->where('item_type', self::$map_object_type[$object_type]) + $log = Actionlog::where('id',$file_id)->where('item_type', self::$map_object_type[$object_type]) ->where('item_id', $object->id)->first(); if ($log) { From db477421b2eba0fb6be2727c9fa518ea901007b2 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 1 Sep 2025 11:54:48 +0100 Subject: [PATCH 13/14] Bumped to 8.3.1 Signed-off-by: snipe --- config/version.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/version.php b/config/version.php index a8cdfcae6ca2..536e65ac78ac 100644 --- a/config/version.php +++ b/config/version.php @@ -1,10 +1,10 @@ 'v8.3.0', - 'full_app_version' => 'v8.3.0 - build 19559-g0ba8f5cc5', - 'build_version' => '19559', + 'app_version' => 'v8.3.1', + 'full_app_version' => 'v8.3.1 - build 19577-g7dd493da3', + 'build_version' => '19577', 'prerelease_version' => '', - 'hash_version' => 'g0ba8f5cc5', - 'full_hash' => 'v8.3.0-489-g0ba8f5cc5', + 'hash_version' => 'g7dd493da3', + 'full_hash' => 'v8.3.1-15-g7dd493da3', 'branch' => 'develop', ); \ No newline at end of file From ec310bc8fb45a5c079a14783e742161324f6f65b Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 1 Sep 2025 11:56:01 +0100 Subject: [PATCH 14/14] Updated dev assets Signed-off-by: snipe --- public/css/build/app.css | 3 --- public/css/build/app.css.map | 2 +- public/css/dist/all.css | 3 --- public/mix-manifest.json | 4 ++-- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/public/css/build/app.css b/public/css/build/app.css index f2aac792a7cb..fab5f7fbe5ff 100644 --- a/public/css/build/app.css +++ b/public/css/build/app.css @@ -306,9 +306,6 @@ a.accordion-header { padding: 0px; /* adjust based on your layout */ } -.skin-blue .main-header .navbar .dropdown-menu li a { - color: #333; -} a.logo.no-hover a:hover { background-color: transparent; } diff --git a/public/css/build/app.css.map b/public/css/build/app.css.map index f459fbddf693..cb6c3b39ded4 100644 --- a/public/css/build/app.css.map +++ b/public/css/build/app.css.map @@ -1 +1 @@ -{"version":3,"file":"css/build/app.css","mappings":"AACA;EACE;EAGA;AAFF;AAKA;EACE;IACE;EAHF;EAMA;IACE;EAJF;AACF;AAOA;EACE;AALF;AAOA;EACE;EACA;EACA;EACA;EACA;AALF;AASA;EACE;AAPF;AAUA;EACE;EACA;AARF;AAWA;EACE;AATF;AAYA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAVF;AAaA;EACE;EACA;EACA;EACA;EACA;AAXF;AAcA;EACE;AAZF;AAeA;EACE;AAbF;AAgBA;EACE;EACA;AAdF;AAiBA;EACE;AAfF;AAkBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAhBF;AAmBA;EACE;AAjBF;AAoBA;EACE;AAlBF;AAqBA;EACE;AAnBF;AAsBA;EACE;AApBF;AAuBA;EACE;EACA;EACA;AArBF;AAwBA;EACE;EACA;EACA;AAtBF;AA6BA;EACE;AA3BF;AA8BA;EACE;EACA;AA5BF;AA+BA;EACE;AA7BF;AA+BA;EACE;EACA;AA7BF;AAgCA;;EAEE;EACA;AA9BF;AAiCA;EACE;EACA;AA/BF;AAiCA;EACE;AA/BF;AAkCA;EACE;EACA;EACA;AAhCF;AAmCA;EACE;AAjCF;AAoCA;EACE;AAlCF;AAqCA;EACE;AAnCF;AAsCA;EACE;AApCF;AAuCA;EACE;AArCF;AAwCA;;;;;EAKE;AAtCF;AAyCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAvCF;AA0CA;EACE;EACA;EACA;EACA;EACA;EACA;AAxCF;AA2CA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAzCF;AA4CA;EACE;AA1CF;AA6CA;EACE;EACA;EACA;EACA;AA3CF;AA8CA;EACE;EACA;AA5CF;AA+CA;EACE;EACA;EACA;EACA;EACA;AA7CF;AAgDA;EACE;EACA;AA9CF;AAiDA;EACE;EACA;EACA;EACA;AA/CF;AAkDA;EACE;EACA;AAhDF;AACA,cAAc;AAmDd;EACE;EACA;EACA;AAjDF;AAmDA;EACE;EACA;AAjDF;AAsDA;EACE;EACA;EACA;AApDF;AAuDA;EACE;EACA;AArDF;AAwDA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAtDF;AAyDA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAvDF;AA0DA;EACE;EACA;EACA;EACA;EACA;AAxDF;AA2DA;EACE;EACA;EACA;AAzDF;AA4DA;EACE;AA1DF;AA6DA;EACE;AA3DF;AA8DA;EACE;AA5DF;AA+DA;EACE;AA7DF;AAgEA;EACE;AA9DF;AAiEA;EACE;AA/DF;AAkEA;EACE;EACA;AAhEF;AAmEA;EACE;AAjEF;AAoEA;EACE;AAlEF;AACA,kBAAkB;AAqElB;EACE;EAEA;EACA;EACA;EApEA,gCAAgC;AAClC;AAuEA;EACE;AArEF;AAwEA;EACE;AAtEF;AAyEA;EACE;EACA;EACA;AAvEF;AAyEA;EACE;EACA;EACA;AAvEF;AA0EA;;;EACE;AAtEF;AAyEA;EACE;EACA;AAvEF;AA0EA;EACE;IACE;EAxEF;EA2EA;IACE;IACA;IACA;EAzEF;AACF;AA4EA;;EAEE;EACA;EACA;AA1EF;AA6EA;EACE;AA3EF;AA8EA;;EAEE;AA5EF;AA+EA;EACE;AA7EF;AAgFA;EACE;AA9EF;AAiFA;EACE;EACA;EACA;AA/EF;AAkFA;EACE;EACA;AAhFF;AAmFA;EACE;EACA;EACA;AAjFF;AAoFA;EACE;AAlFF;AC1XA;EAkBE;AD2WF;ACzWA;EACE;EACA;EACA;EACA;EACA;AD2WF;AC1WE;;;EACE;AD8WJ;AC3WA;EACE;AD6WF;AC1WA;EACE;EACA;AD4WF;ACzWA;EACE;AD2WF;ACvWA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ADyWF;ACtWA;EACE;EACA;EACA;EACA;EACA;ADwWF;ACrWA;EACE;ADuWF;ACpWA;EACE;ADsWF;ACnWA;EACE;EACA;ADqWF;ACjWA;EACE;ADmWF;AChWA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADkWF;AChWA;EACE;ADkWF;AChWA;EACE;ADkWF;AC9VA;EACE;ADgWF;AC9VA;EACE;ADgWF;AC5VA;EACE;EACA;EACA;AD8VF;AC3VA;EACE;EACA;EACA;AD6VF;ACtUA;EACE;ADwUF;ACrUA;EACE;EACA;EACA;ADuUF;ACpUA;EACE;EACA;ADsUF;ACnUA;EACE;ADqUF;AClUA;EACE;EACA;ADoUF;ACjUA;;EACE;EACA;ADoUF;ACjUA;EACE;EACA;ADmUF;ACjUA;EACE;ADmUF;AChUA;EACE;EACA;EACA;ADkUF;AC/TA;EACE;ADiUF;AC9TA;EACE;ADgUF;AC7TA;EACE;AD+TF;AC7TA;EACE;AD+TF;AC5TA;EACE;AD8TF;AC3TA;;;;EACE;ADgUF;AC7TA;;;;;EACE;ADmUF;AChUA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADkUF;AChUA;EACE;EACA;EACA;EACA;EACA;EACA;ADkUF;AChUA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADkUF;AChUA;EACE;ADkUF;AChUA;EACE;EACA;EACA;EACA;ADkUF;AChUA;EACE;EACA;ADkUF;AChUA;EACE;EACA;EACA;EACA;EACA;ADkUF;AChUA;EACE;EACA;ADkUF;AChUA;EACE;EACA;EACA;EACA;ADkUF;AC/TA;EACE;EACA;ADiUF;AC5TA;EAAY;AD+TZ;AACA,cAAc;AC7Td;EAAY;EAAkC;ADiU9C;AChUA;EAA8B;EAAY;ADoU1C;AClUA;EAAiD;EAAgB;EAAiB;ADuUlF;ACtUA;EAA8C;EAAa;AD0U3D;ACzUA;EAA+C;EAAoB;EAAa;EAAc;EAAgB;EAAqB;EAAW;EAAW;EAAmB;EAAoB;ADqVhM;ACpVA;EAAqD;EAAc;EAAa;EAAc;EAAqB;EAAqB;EAAoB;EAAU;AD8VtK;AC7VA;EAA0C;EAAoB;EAAoB;EAAa;EAAkB;ADoWjH;ACnWA;EAA0D;EAAW;EAAkB;ADwWvF;ACvWA;EAAmE;AD0WnE;ACzWA;EAAiE;AD4WjE;AC3WA;EAA6E;AD8W7E;AC7WA;EAA4E;ADgX5E;AC/WA;EAAwD;ADkXxD;ACjXA;EAA8D;ADoX9D;ACnXA;EAAuD;EAAW;ADuXlE;ACtXA;EAAsD;ADyXtD;ACxXA;EAAuD;AD2XvD;AACA,kBAAkB;ACzXlB;EACE;EACA;EACA;EACA;EACA;ED2XA,gCAAgC;AAClC;ACxXA;EAkBE;ADyWF;ACtWA;EACE;ADwWF;ACpWA;;EACE;ADuWF;ACrWA;;EACE;ADwWF;ACrWA;EACE;EAIA;ADoWF;ACjWA;EACE;EACA;ADmWF;AChWA;EACE;ADkWF;AC/VA;EACE;ADiWF;AC9VA;EAEE;IACE;IACA;ED+VF;EC5VA;IACE;IACA;IACA;ED8VF;EC3VA;IACE;ED6VF;EC1VA;;IACE;ED6VF;EC1VA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;ED4VF;EACA,+CAA+C;ECzV/C;IACE;ED2VF;ECxVA;IACE;ED0VF;ECvVA;IACE;EDyVF;ECtVA;IACE;EDwVF;EACA,qCAAqC;ECrVrC;;IACE;EDwVF;EACA,QAAQ;ECrVR;;IACE;IACA;IACA;EDwVF;ECrVA;IACE;EDuVF;ECpVA;IACE;EDsVF;ECnVA;IACE;IACA;IACA;EDqVF;EClVA;IACE;IACA;EDoVF;ECjVA;;IACE;EDoVF;EClVA;;;;;;;;;;;;IACE;ED+VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;EC5VA;IACE;ED8VF;AACF;ACzVA;EACE;AD2VF;ACxVA;EACI;EACA;AD0VJ;ACvVA;EACE;ADyVF;ACtVA;EACE;EACA;EACA;ADwVF;ACnVA;EACE;EACA;OAAA;EACA;EACA;ADqVF;AClVA;;EACE;EACA;EACA;ADqVF;AClVA;;;EACE;ADsVF;ACnVA;;EACE;ADsVF;ACnVA;EACE;ADqVF;AClVA;EACE;ADoVF;ACjVA;EACE;EACA;EACA;ADmVF;AChVA;EACE;EACA;ADkVF;AC/UA;EACE;EACA;EACA;ADiVF;AC7UA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AD+UF;AC7UA;;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADgVF;AC7UA;EACE;AD+UF;AC5UA;EACE;AD8UF;AC3UA;EACE;AD6UF;AC1UA;EACE;AD4UF;ACzUA;EACE;AD2UF;ACvUA;EACE;EACA;EACA;EACA;EACA;EAGA;ADuUF;ACpUA;EACE;EACA;EACA;EACA;ADsUF;ACnUA;EACE;EACA;EACA;EACA;ADqUF;ACjUA;EACE;EACA;EACA;EACA;EACA;EACA;ADmUF;AACA;;;;EAIE;AChUF;EACE;EACA;EACA;EACA;ADkUF;AC/TA;EACE;EACA;EACA;EACA;EACA;ADiUF;AC9TA;EACE;EACA;EACA;ADgUF;AC7TA;EACE;EACA;EACA;AD+TF;AC3TA;EACE;AD6TF;AACA;;EAEE;ACxTF;EACE;IACE;IACA;ED0TF;ECvTA;IACE;EDyTF;ECtTA;IACE;EDwTF;ECrTA;IACE;EDuTF;AACF;ACpTA;EACE;EACA;EACA;ADsTF;ACnTA;EACE;EACA;ADqTF;AACA;;;;;;;;;;;EAWE;AChTF;;;;;;;;;;;;;;EAeE;EACA;EACA;EACA;EACA;EACA;ADiTF;AC7SA;;;;;;;;;;;;;;;EAgBE;EACA;EACA;EACA;AD8SF;AACA;;;EAGE;AC3SF;EAEE;EAAkB;EAAoC;AD8SxD;AC3SA;EAEE;EAAkB;EAAoC;AD8SxD;AC3SA;EAEE;EAAkB;EAAoC;AD8SxD;AC3SA;EAEE;EAAkB;EAAoC;AD8SxD;AC3SA;EAEE;EAAkB;EAAoC;AD8SxD;AC3SA;EACE;EAAkB;EAAoC;AD+SxD;AC5SA;EACE;EAAkB;EAAoC;EAAiB;ADiTzE;AC9SA;EAEE;EAAkB;EAAoC;ADiTxD;AC9SA;EAEE;EAAkB;EAClB;EACA;ADgTF;AC7SA;EACE;EACA;EACA;EACA;AD+SF;AC7SA;EACE;EACA;EACA;EACA;AD+SF;AC7SA;EACE;EACA;EACA;EACA;AD+SF;AC7SA;EACE;EACA;EACA;EACA;AD+SF;AC5SA;EACE;EACA;EACA;EACA;AD8SF;AC3SA;EACE;EACA;EACA;EACA;AD6SF;ACzSA;EACE;EACA;EACA;EACA;AD2SF;ACvSA;;;EACE;AD2SF;ACxSA;;EACE;EACA;EACA;EACA;AD2SF;ACxSA;;EACE;AD2SF;ACxSA;EACE;AD0SF;ACvSA;EACE;IACE;EDySF;ECvSA;IACE;EDySF;AACF;ACvSA;EACE;IACE;EDySF;ECvSA;IACE;EDySF;ECvSA;IACE;EDySF;AACF;ACtSA;EACE;IACE;EDwSF;AACF;ACtSA;EACE;IACE;EDwSF;ECtSA;IACE;IACA;EDwSF;ECtSA;IACE;IACA;EDwSF;ECtSA;IACE;IACA;EDwSF;AACF;ACtSA;EACE;IACE;EDwSF;AACF;ACrSA;EACE;IACE;EDuSF;AACF;ACrSA;EACE;IACE;IACA;IACA;IACA;IACA;EDuSF;AACF;AACA,oDAAoD;ACnSpD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADqSF;AClSA;EACE;EACA;ADoSF;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AChS9C;EDkSE,kCAAkC;EChSlC;EACA;OAAA;EDkSA,+CAA+C;EChS/C;EDkSA,+BAA+B;EChS/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EDkSA,6BAA6B;AAC/B;AACA,yFAAyF;AC9RzF;EDgSE,2EAA2E;ECxR3E;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EDyRA,+BAA+B;ECvR/B;ADyRF;AACA,wEAAwE;ACtRxE;EACE;ADwRF;AACA,wEAAwE;ACrRxE;;EACE;EACA;EACA;EACA;EACA;ADwRF;AACA,6EAA6E;ACrR7E;;EACE;EACA;EACA;EACA;ADwRF;AACA,+EAA+E;ACrR/E;;EACE;EACA;EACA;EACA;ADwRF;AACA,qCAAqC;ACnRrC;EACE;KAAA;UAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADqRF;AClRA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ADoRF;ACjRA;EACE;ADmRF;AACA;;;;EAIE;AC/QF;EACE;ADiRF;AC9QA;EACE;EACA;EACA;EACA;ADgRF;AC7QA;EACE;AD+QF;AC5QA;EACE;AD8QF;AC3QA;EACE;AD6QF;AC1QA;EACE;AD4QF;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AAC9C;;;EAGE;ACvQF;EACE;EACA;EACA;EACA;EACA;ADyQF;ACtQA;;EAEE;EACA;EACA;ADwQF;ACrQA;EACE;ADuQF;ACpQA;EACE;ADsQF;ACpQA;EACE;ADsQF;ACnQA;EACE;EACA;EACA;ADqQF;AACA,kEAAkE;AClQlE;EACE;ADoQF;ACjQA;EACE;ADmQF;AC/PA;EACE;EACA;ADiQF;AC9PA;EACE;EACA;ADgQF;AC7PA;EACE;EACA;EACA;EACA;EACA;EACA;AD+PF;AC5PA;;EACE;AD+PF;AC5PA;EACE;EAQA;EACA;EACA;ADuPF;ACpPA;EACE;EACA;ADsPF;ACnPA;EACE;ADqPF;AClPA;EACE;EACA;ADoPF;AChPA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADkPF;AChPA;;;;;EAKE;ADkPF;AC/OA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ADiPF","sources":["webpack:///./resources/assets/less/app.less","webpack:///./resources/assets/less/overrides.less"],"sourcesContent":["\nbody {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n font-size: 13px;\n}\n// Moved from default.blade.php\n@media (max-width: 400px) {\n .navbar-left {\n margin: 2px;\n }\n\n .nav::after {\n clear: none;\n }\n}\n\n.skin-blue .main-header .logo {\n background-color: inherit !important;\n}\n.main-header .logo {\n width: 100% !important;\n white-space: nowrap;\n text-align: left;\n display: block;\n clear: both;\n //text-overflow: hidden;\n}\n\n.huge {\n font-size: 40px;\n}\n\n.btn-file {\n position: relative;\n overflow: hidden;\n}\n\n.dropdown-menu > li > a {\n color: #354044;\n}\n\n#sort tr.cansort {\n border-radius: 2px;\n padding: 10px;\n background: #f4f4f4;\n margin-bottom: 3px;\n border-left: 2px solid #e6e7e8;\n color: #444;\n cursor: move;\n}\n\n.user-image-inline {\n float: left;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n margin-right: 10px;\n}\n\n.input-group .input-group-addon {\n background-color: #f4f4f4;\n}\n\na.accordion-header {\n color: #333;\n}\n\n.dynamic-form-row {\n padding: 10px;\n margin: 20px;\n}\n\n.handle {\n padding-left: 10px;\n}\n\n.btn-file input[type=\"file\"] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n filter: alpha(opacity=0);\n opacity: 0;\n outline: none;\n background: white;\n cursor: inherit;\n display: block;\n}\n\n.main-footer {\n font-size: 13px;\n}\n\n.main-header {\n max-height: 150px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n width: inherit;\n}\n\n.main-header .logo {\n padding: 0px 5px 0px 15px;\n}\n\n.sidebar-toggle {\n margin-left: -48px;\n z-index: 100;\n background-color: inherit;\n}\n\n.sidebar-toggle-mobile {\n z-index: 100;\n width: 50px;\n padding-top: 10px;\n}\n\n// .skin-blue .main-header .navbar .dropdown-menu li a {\n// //color: inherit;\n// }\n\n.main-header .sidebar-toggle:before {\n content: \"\\f0c9\";\n}\n\n.direct-chat-contacts {\n padding: 10px;\n height: 150px;\n}\n\n.select2-container {\n width: 100%;\n}\n.error input {\n color: #a94442;\n border: 2px solid #a94442 !important;\n}\n\n.error label,\n.alert-msg {\n color: #a94442;\n display: block;\n}\n\n.input-group[class*=\"col-\"] {\n padding-right: 15px;\n padding-left: 15px;\n}\n.control-label.multiline {\n padding-top: 10px;\n}\n\n.btn-outline {\n color: inherit;\n background-color: transparent;\n transition: all 0.5s;\n}\n\n.btn-primary.btn-outline {\n color: #428bca;\n}\n\n.btn-success.btn-outline {\n color: #5cb85c;\n}\n\n.btn-info.btn-outline {\n color: #5bc0de;\n}\n\n.btn-warning.btn-outline {\n color: #f0ad4e;\n}\n\n.btn-danger.btn-outline {\n color: #d9534f;\n}\n\n.btn-primary.btn-outline:hover,\n.btn-success.btn-outline:hover,\n.btn-info.btn-outline:hover,\n.btn-warning.btn-outline:hover,\n.btn-danger.btn-outline:hover {\n color: #fff;\n}\n\n.slideout-menu {\n position: fixed;\n top: 0;\n right: -250px;\n width: 250px;\n height: 100%;\n background: #333;\n z-index: 100;\n margin-top: 100px;\n color: white;\n padding: 10px;\n}\n\n.slideout-menu h3 {\n position: relative;\n padding: 5px 5px;\n color: #fff;\n font-size: 1.2em;\n font-weight: 400;\n border-bottom: 4px solid #222;\n}\n\n.slideout-menu .slideout-menu-toggle {\n position: absolute;\n top: 12px;\n right: 10px;\n display: inline-block;\n padding: 6px 9px 5px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n line-height: 1;\n background: #222;\n color: #999;\n text-decoration: none;\n vertical-align: top;\n}\n\n.slideout-menu .slideout-menu-toggle:hover {\n color: #fff;\n}\n\n.slideout-menu ul {\n list-style: none;\n font-weight: 300;\n border-top: 1px solid #151515;\n border-bottom: 1px solid #454545;\n}\n\n.slideout-menu ul li {\n border-top: 1px solid #454545;\n border-bottom: 1px solid #151515;\n}\n\n.slideout-menu ul li a {\n position: relative;\n display: block;\n padding: 10px;\n color: #999;\n text-decoration: none;\n}\n\n.slideout-menu ul li a:hover {\n background: #000;\n color: #fff;\n}\n\n.slideout-menu ul li a i {\n position: absolute;\n top: 15px;\n right: 10px;\n opacity: 0.5;\n}\n\n.btn-box-tool-lg {\n font-size: 16px;\n color: orange;\n}\n\n/*Form Wizard*/\n.bs-wizard {\n margin-top: 20px;\n border-bottom: solid 1px #e0e0e0;\n padding: 0 0 10px 0;\n}\n.bs-wizard > .bs-wizard-step {\n padding: 0;\n position: relative;\n}\n\n// .bs-wizard > .bs-wizard-step + .bs-wizard-step {}\n\n.bs-wizard > .bs-wizard-step .bs-wizard-stepnum {\n color: #595959;\n font-size: 16px;\n margin-bottom: 5px;\n}\n\n.bs-wizard > .bs-wizard-step .bs-wizard-info {\n color: #999;\n font-size: 14px;\n}\n\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot {\n position: absolute;\n width: 30px;\n height: 30px;\n display: block;\n background: #fbe8aa;\n top: 45px;\n left: 50%;\n margin-top: -15px;\n margin-left: -15px;\n border-radius: 50%;\n}\n\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot:after {\n content: \" \";\n width: 14px;\n height: 14px;\n background: #fbbd19;\n border-radius: 50px;\n position: absolute;\n top: 8px;\n left: 8px;\n}\n\n.bs-wizard > .bs-wizard-step > .progress {\n position: relative;\n border-radius: 0px;\n height: 8px;\n box-shadow: none;\n margin: 20px 0;\n}\n\n.bs-wizard > .bs-wizard-step > .progress > .progress-bar {\n width: 0px;\n box-shadow: none;\n background: #fbe8aa;\n}\n\n.bs-wizard > .bs-wizard-step.complete > .progress > .progress-bar {\n width: 100%;\n}\n\n.bs-wizard > .bs-wizard-step.active > .progress > .progress-bar {\n width: 50%;\n}\n\n.bs-wizard > .bs-wizard-step:first-child.active > .progress > .progress-bar {\n width: 0%;\n}\n\n.bs-wizard > .bs-wizard-step:last-child.active > .progress > .progress-bar {\n width: 100%;\n}\n\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot {\n background-color: #f5f5f5;\n}\n\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot:after {\n opacity: 0;\n}\n\n.bs-wizard > .bs-wizard-step:first-child > .progress {\n left: 50%;\n width: 50%;\n}\n\n.bs-wizard > .bs-wizard-step:last-child > .progress {\n width: 50%;\n}\n\n.bs-wizard > .bs-wizard-step.disabled a.bs-wizard-dot {\n pointer-events: none;\n}\n/*END Form Wizard*/\n\n.left-navblock {\n display: inline-block;\n // float: left;\n text-align: left;\n color: white;\n padding: 0px;\n /* adjust based on your layout */\n}\n\n.skin-blue .main-header .navbar .dropdown-menu li a {\n color: #333;\n}\n\na.logo.no-hover a:hover {\n background-color: transparent;\n}\n\n.index-block {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.index-block:hover{\n overflow: visible;\n white-space: normal;\n height:auto;\n}\n\ninput:required, select:required, textarea:required {\n border-right: 6px solid orange;\n}\n\n.sidebar-menu {\n font-size: 14px;\n white-space: normal;\n}\n\n@media print {\n a[href]:after {\n content: none;\n }\n\n .tab-content > .tab-pane {\n display: block !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n}\n\nimg.navbar-brand-img,\n.navbar-brand > img {\n float: left;\n padding: 5px 5px 5px 0;\n max-height: 50px;\n}\n\n.input-daterange {\n border-radius: 0px;\n}\n\n.btn.bg-maroon,\n.btn.bg-purple {\n min-width: 90px;\n}\n\n[hidden] {\n display: none !important;\n}\n\n#toolbar {\n margin-top: 10px;\n}\n\n#uploadPreview {\n border-color: grey;\n border-width: 1px;\n border-style: solid;\n}\n\n.icon-med {\n font-size: 20px;\n color: #889195;\n}\n\n#login-logo {\n padding-top: 20px;\n padding-bottom: 10px;\n max-width: 200px;\n}\n\n.left-navblock {\n max-width: 500px;\n}\n\n@import \"overrides.less\";",".skin-red\n.skin-purple\n.skin-blue\n.skin-black\n.skin-orange\n.skin-yellow\n.skin-green\n.skin-red-dark\n.skin-purple-dark\n.skin-blue-dark\n.skin-black-dark\n.skin-orange-dark\n.skin-yellow-dark\n.skin-green-dark\n.skin-contrast\n.main-header\n\n.logo {\n background-color: inherit;\n}\n.main-header .logo {\n width: 100% !important;\n white-space: nowrap;\n text-align: left;\n display: block;\n clear: both;\n &a:link, a:hover, a:visited {\n color: #fff\n }\n}\n.huge {\n font-size: 40px;\n}\n\n.btn-file {\n position: relative;\n overflow: hidden;\n}\n\n.dropdown-menu>li>a {\n color: #354044;\n}\n\n\n#sort tr.cansort {\n border-radius: 2px;\n padding: 10px;\n background: #f4f4f4;\n margin-bottom: 3px;\n border-inline: 2px solid #e6e7e8;\n color: #444;\n cursor: move;\n}\n\n.user-image-inline {\n float: left;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n margin-right: 10px;\n}\n\n.input-group .input-group-addon {\n background-color: #f4f4f4;\n}\n\na.accordion-header {\n color: #333;\n}\n\n.dynamic-form-row {\n padding: 10px;\n margin: 20px;\n}\n\n\n.handle {\n padding-left: 10px;\n}\n\n.btn-file input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n filter: alpha(opacity=0);\n opacity: 0;\n outline: none;\n background: white;\n cursor: inherit;\n display: block;\n}\n.main-footer {\n font-size: 13px;\n}\n.main-header {\n max-height: 150px;\n}\n\n\n.navbar-nav>.user-menu>.dropdown-menu {\n width: inherit;\n}\n.main-header .logo {\n padding: 0px 5px 0px 15px;\n}\n\n\n.sidebar-toggle {\n margin-left: -48px;\n z-index: 100;\n background-color: inherit;\n}\n\n.sidebar-toggle-mobile {\n z-index: 100;\n width: 50px;\n padding-top: 10px;\n}\n\n.skin-red\n.skin-purple\n.skin-blue\n.skin-black\n.skin-orange\n.skin-yellow\n.skin-green\n.skin-red-dark\n.skin-purple-dark\n.skin-blue-dark\n.skin-black-dark\n.skin-orange-dark\n.skin-yellow-dark\n.skin-green-dark\n.skin-contrast\n.main-header\n.navbar\n.dropdown-menu li a {\n //color: inherit;\n}\n.pull-text-right{\n text-align: right !important;\n}\n\n.main-header .sidebar-toggle:before {\n content: \"\\f0c9\";\n font-weight: 900;\n font-family: 'Font Awesome\\ 5 Free';\n}\n\n.direct-chat-contacts {\n padding: 10px;\n height: 150px;\n}\n\n.select2-container {\n width: 100%;\n}\n\n.error input {\n color: #a94442;\n border: 2px solid #a94442 !important;\n}\n\n.error label, .alert-msg {\n color: #a94442;\n display: block;\n}\n\n.input-group[class*=\"col-\"] {\n padding-right: 15px;\n padding-left: 15px;\n}\n.control-label.multiline {\n padding-top: 10px;\n}\n\n.btn-outline {\n color: inherit;\n background-color: transparent;\n transition: all .5s;\n}\n\n.btn-primary.btn-outline {\n color: #428bca;\n}\n\n.btn-success.btn-outline {\n color: #5cb85c;\n}\n\n.btn-info.btn-outline {\n color: #5bc0de;\n}\n.btn-warning{\n background-color:#f39c12 !important;\n}\n\n.btn-warning.btn-outline {\n color: #f0ad4e;\n}\n\n.btn-danger.btn-outline, a.link-danger:link, a.link-danger:visited, a.link-danger:hover {\n color: #dd4b39;\n}\n\n.btn-primary.btn-outline:hover, .btn-success.btn-outline:hover, .btn-info.btn-outline:hover, .btn-warning.btn-outline:hover, .btn-danger.btn-outline:hover {\n color: #fff;\n}\n\n.slideout-menu {\n position: fixed;\n top: 0;\n right: -250px;\n width: 250px;\n height: 100%;\n background: #333;\n z-index: 100;\n margin-top: 100px;\n color: white;\n padding: 10px;\n}\n.slideout-menu h3 {\n position: relative;\n padding: 5px 5px;\n color: #fff;\n font-size: 1.2em;\n font-weight: 400;\n border-bottom: 4px solid #222;\n}\n.slideout-menu .slideout-menu-toggle {\n position: absolute;\n top: 12px;\n right: 10px;\n display: inline-block;\n padding: 6px 9px 5px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n line-height: 1;\n background: #222;\n color: #999;\n text-decoration: none;\n vertical-align: top;\n}\n.slideout-menu .slideout-menu-toggle:hover {\n color: #fff;\n}\n.slideout-menu ul {\n list-style: none;\n font-weight: 300;\n border-top: 1px solid #151515;\n border-bottom: 1px solid #454545;\n}\n.slideout-menu ul li {\n border-top: 1px solid #454545;\n border-bottom: 1px solid #151515;\n}\n.slideout-menu ul li a {\n position: relative;\n display: block;\n padding: 10px;\n color: #999;\n text-decoration: none;\n}\n.slideout-menu ul li a:hover {\n background: #000;\n color: #fff;\n}\n.slideout-menu ul li a i {\n position: absolute;\n top: 15px;\n right: 10px;\n opacity: .5;\n}\n\n.btn-box-tool-lg {\n font-size: 16px;\n color: orange;\n}\n\n\n\n.bs-wizard {margin-top: 20px;}\n\n/*Form Wizard*/\n.bs-wizard {border-bottom: solid 1px #e0e0e0; padding: 0 0 10px 0;}\n.bs-wizard > .bs-wizard-step {padding: 0; position: relative;}\n.bs-wizard > .bs-wizard-step + .bs-wizard-step {}\n.bs-wizard > .bs-wizard-step .bs-wizard-stepnum {color: #595959; font-size: 16px; margin-bottom: 5px;}\n.bs-wizard > .bs-wizard-step .bs-wizard-info {color: #999; font-size: 14px;}\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot {position: absolute; width: 30px; height: 30px; display: block; background: #fbe8aa; top: 45px; left: 50%; margin-top: -15px; margin-left: -15px; border-radius: 50%;}\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot:after {content: ' '; width: 14px; height: 14px; background: #fbbd19; border-radius: 50px; position: absolute; top: 8px; left: 8px; }\n.bs-wizard > .bs-wizard-step > .progress {position: relative; border-radius: 0px; height: 8px; box-shadow: none; margin: 20px 0;}\n.bs-wizard > .bs-wizard-step > .progress > .progress-bar {width:0px; box-shadow: none; background: #fbe8aa;}\n.bs-wizard > .bs-wizard-step.complete > .progress > .progress-bar {width:100%;}\n.bs-wizard > .bs-wizard-step.active > .progress > .progress-bar {width:50%;}\n.bs-wizard > .bs-wizard-step:first-child.active > .progress > .progress-bar {width:0%;}\n.bs-wizard > .bs-wizard-step:last-child.active > .progress > .progress-bar {width: 100%;}\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot {background-color: #f5f5f5;}\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot:after {opacity: 0;}\n.bs-wizard > .bs-wizard-step:first-child > .progress {left: 50%; width: 50%;}\n.bs-wizard > .bs-wizard-step:last-child > .progress {width: 50%;}\n.bs-wizard > .bs-wizard-step.disabled a.bs-wizard-dot{ pointer-events: none; }\n/*END Form Wizard*/\n\n.left-navblock {\n display: inline-block;\n float: left;\n text-align: left;\n color: white;\n padding: 0px;\n /* adjust based on your layout */\n\n}\n.skin-red\n.skin-purple\n.skin-blue\n.skin-black\n.skin-orange\n.skin-yellow\n.skin-green\n.skin-red-dark\n.skin-purple-dark\n.skin-blue-dark\n.skin-black-dark\n.skin-orange-dark\n.skin-yellow-dark\n.skin-green-dark\n.skin-contrast\n.main-header\n.navbar\n.dropdown-menu li a {\n color: #333;\n}\n\na.logo.no-hover a:hover {\n background-color: transparent;\n}\n\n\ninput:required, select:required {\n border-right: 5px solid orange;\n}\nselect:required + .select2-container .select2-selection, select:required + .select2-container .select2-selection .select2-selection--multiple {\n border-right: 5px solid orange !important;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont,\n \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\",\n \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n font-size: 13px;\n}\n\n.sidebar-menu {\n font-size: 14px;\n white-space: normal;\n}\n\n.modal-warning .modal-help {\n color: #fff8af;\n}\n\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading {\n z-index: 0 !important;\n}\n\n@media print {\n\n @page {\n size: A4;\n margin: 0mm;\n }\n\n .tab-content > .tab-pane {\n display: block !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n\n .img-responsive {\n width: 200px;\n }\n\n html, body {\n width: 1024px;\n }\n\n body {\n margin: 0 auto;\n line-height: 1em;\n word-spacing:1px;\n letter-spacing:0.2px;\n font: 15px \"Times New Roman\", Times, serif;\n background:white;\n color:black;\n width: 100%;\n float: none;\n }\n\n /* avoid page-breaks inside a listingContainer*/\n .listingContainer {\n page-break-inside: avoid;\n }\n\n h1 {\n font: 28px \"Times New Roman\", Times, serif;\n }\n\n h2 {\n font: 24px \"Times New Roman\", Times, serif;\n }\n\n h3 {\n font: 20px \"Times New Roman\", Times, serif;\n }\n\n /* Improve colour contrast of links */\n a:link, a:visited {\n color: #781351\n }\n\n /* URL */\n a:link, a:visited {\n background: transparent;\n color:#333;\n text-decoration:none;\n }\n\n a[href]:after {\n content: \"\" !important;\n }\n\n a[href^=\"http://\"] {\n color:#000;\n }\n\n #header {\n height:75px;\n font-size: 24pt;\n color:black\n }\n\n div.row-new-striped {\n margin: 0px;\n padding: 0px;\n }\n\n .pagination-detail, .fixed-table-toolbar {\n visibility: hidden;\n }\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 .col-sm-pull-3 .col-sm-push-9 {\n float: left;\n }\n\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666666666666%;\n }\n .col-sm-10 {\n width: 83.33333333333334%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666666666666%;\n }\n .col-sm-7 {\n width: 58.333333333333336%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666666666667%;\n }\n .col-sm-4 {\n width: 33.33333333333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.666666666666664%;\n }\n .col-sm-1 {\n width: 8.333333333333332%;\n }\n\n}\n\n\n.select2-selection__choice__remove {\n color: white !important;\n}\n\n.select2-selection--multiple {\n border-color: #d2d6de !important;\n overflow-y: auto;\n}\n\n.select2-selection__choice {\n border-radius: 0px !important;\n}\n\n.select2-search select2-search--inline {\n height: 35px !important;\n float: left;\n margin: 0;\n}\n\n\n\n.select2-results__option {\n padding: 5px;\n user-select: none;\n -webkit-user-select: none;\n margin: 0px;\n}\n\nimg.navbar-brand-img, .navbar-brand>img {\n float: left;\n padding: 5px 5px 5px 0;\n max-height: 50px;\n}\n\n.input-daterange, .input-daterange input:first-child, .input-daterange input:last-child {\n border-radius: 0px !important;\n}\n\n.btn.bg-maroon, .btn.bg-purple{\n min-width:90px;\n}\n\n[hidden] {\n display: none !important;\n}\n\n#toolbar {\n margin-top: 10px;\n}\n\n#uploadPreview {\n border-color: grey;\n border-width: 1px;\n border-style: solid\n}\n\n.icon-med {\n font-size: 14px;\n color: #889195;\n}\n\n#login-logo {\n padding-top: 20px;\n padding-bottom: 10px;\n max-width: 200px\n}\n\n// accessibility skip link\na.skip-main {\n left:-999px;\n position:absolute;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n z-index:-999;\n}\na.skip-main:focus, a.skip-main:active {\n color: #fff;\n background-color:#000;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow:auto;\n margin: 10px 35%;\n padding:5px;\n border-radius: 15px;\n border:4px solid yellow;\n text-align:center;\n font-size:1.2em;\n z-index:999;\n}\n\nh2 {\n font-size: 22px;\n}\n\nh2.task_menu {\n font-size: 14px;\n}\n\nh2 small {\n font-size: 85%;\n}\n\nh3 {\n font-size: 20px;\n}\n\nh4 {\n font-size: 16px;\n}\n\n\n.row-striped {\n vertical-align: top;\n line-height: 2.6;\n padding: 0px;\n margin-left: 20px;\n box-sizing: border-box;\n //border-left: 1px solid #dddddd;\n //border-right: 1px solid #dddddd;\n display: table;\n}\n\n.row-striped .row:nth-of-type(odd) div {\n background-color: #f9f9f9;\n border-top: 1px solid #dddddd;\n display: table-cell;\n word-wrap: break-word;\n}\n\n.row-striped .row:nth-of-type(even) div {\n background: #FFFFFF;\n border-top: 1px solid #dddddd;\n display: table-cell;\n word-wrap: break-word;\n}\n\n\n.row-new-striped {\n vertical-align: top;\n padding: 3px;\n display: table;\n width: 100%;\n word-wrap: break-word;\n table-layout:fixed;\n}\n\n/**\n* NEW STRIPING\n* This section is for the new row striping for nicer \n* display for non-table data as of v6\n**/\n.row-new-striped > .row:nth-of-type(even) {\n background: #FFFFFF;\n border-top: 1px solid #dddddd;\n line-height: 1.9;\n display: table-row;\n}\n\n.row-new-striped > .row:nth-of-type(odd) {\n background-color: #F8F8F8;\n border-top: 1px solid #dddddd;\n display: table-row;\n line-height: 1.9;\n padding: 2px;\n}\n\n.row-new-striped div {\n display: table-cell;\n border-top: 1px solid #dddddd;\n padding: 6px;\n}\n\n.row-new-striped div {\n display: table-cell;\n border-top: 1px solid #dddddd;\n padding: 6px;\n}\n\n\n.row-new-striped div[class^=\"col\"]:first-child {\n font-weight: bold;\n}\n\n\n\n/**\n* This just adds a little extra padding on mobile\n**/\n@media only screen and (max-width: 520px) {\n h1.pagetitle {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n\n .firstnav {\n padding-top: 120px !important;\n }\n\n .product {\n width: 400px;\n }\n\n .product img {\n min-width: 400px;\n }\n}\n\n.card-view-title {\n min-width: 40% !important;\n line-height: 3.0!important;\n padding-right: 20px;\n}\n\n.card-view {\n display: table-row;\n flex-direction: column;\n}\n\n// ---------------\n\n/**\n\n COLUMN SELECTOR ICONS\n -----------------------------\n This is kind of weird, but it is necessary to prevent the column-selector code from barfing, since\n any HTML used in the UserPresenter \"title\" attribute breaks the column selector HTML.\n\n Instead, we use CSS to add the icon into the table header, which leaves the column selector\n \"title\" text as-is and hides the icon.\n\n See https://github.com/grokability/snipe-it/issues/7989\n */\nth.css-accessory > .th-inner,\nth.css-accessory-alt > .th-inner,\nth.css-barcode > .th-inner,\nth.css-component > .th-inner,\nth.css-consumable > .th-inner,\nth.css-envelope > .th-inner,\nth.css-house-flag > .th-inner,\nth.css-house-laptop > .th-inner,\nth.css-house-user > .th-inner,\nth.css-license > .th-inner,\nth.css-location > .th-inner,\nth.css-users > .th-inner,\nth.css-currency > .th-inner,\nth.css-history > .th-inner\n{\n font-size: 0px;\n line-height: 0.75 !important;\n text-align: left;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n\nth.css-location > .th-inner::before,\nth.css-accessory > .th-inner::before,\nth.css-accessory-alt > .th-inner::before,\nth.css-barcode > .th-inner::before,\nth.css-component > .th-inner::before,\nth.css-consumable > .th-inner::before,\nth.css-envelope > .th-inner::before,\nth.css-house-flag > .th-inner::before,\nth.css-house-laptop > .th-inner::before,\nth.css-house-user > .th-inner::before,\nth.css-license > .th-inner::before,\nth.css-location > .th-inner::before,\nth.css-users > .th-inner::before,\nth.css-currency > .th-inner::before,\nth.css-history > .th-inner::before\n{\n display: inline-block;\n font-size: 20px;\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n}\n\n/**\nBEGIN ICON TABLE HEADERS\nSet the font-weight css property as 900 (For Solid), 400 (Regular or Brands), 300 (Light for pro icons).\n**/\nth.css-barcode > .th-inner::before\n{\n content: \"\\f02a\"; font-family: \"Font Awesome 5 Free\"; font-weight: 900;\n}\n\nth.css-license > .th-inner::before\n{\n content: \"\\f0c7\"; font-family: \"Font Awesome 5 Free\"; font-weight: 400;\n}\n\nth.css-consumable > .th-inner::before\n{\n content: \"\\f043\"; font-family: \"Font Awesome 5 Free\"; font-weight: 900;\n}\n\nth.css-envelope > .th-inner::before\n{\n content: \"\\f0e0\"; font-family: \"Font Awesome 5 Free\"; font-weight: 400;\n}\n\nth.css-accessory > .th-inner::before\n{\n content: \"\\f11c\"; font-family: \"Font Awesome 5 Free\"; font-weight: 400;\n}\n\nth.css-users > .th-inner::before {\n content: \"\\f0c0\"; font-family: \"Font Awesome 5 Free\"; font-size: 15px;\n}\n\nth.css-location > .th-inner::before {\n content: \"\\f3c5\"; font-family: \"Font Awesome 5 Free\"; font-size: 19px; margin-bottom: 0px;\n}\n\nth.css-component > .th-inner::before\n{\n content: \"\\f0a0\"; font-family: \"Font Awesome 5 Free\"; font-weight: 500;\n}\n\nth.css-padlock > .th-inner::before\n{\n content: \"\\f023\"; font-family: \"Font Awesome 5 Free\";\n font-weight: 800;\n padding-right: 3px;\n}\n\nth.css-house-user > .th-inner::before {\n content: \"\\e1b0\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\nth.css-house-flag > .th-inner::before {\n content: \"\\e50d\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\nth.css-house-laptop > .th-inner::before {\n content: \"\\e066\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\nth.css-accessory-alt > .th-inner::before {\n content: \"\\f11c\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\n\nth.css-currency > .th-inner::before {\n content: \"\\24\"; // change this to f51e for coins\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\n\nth.css-history > .th-inner::before {\n content: \"\\f1da\"; // change this to f51e for coins\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\n\n\n.small-box .inner {\n padding-left: 15px;\n padding-right: 15px;\n padding-top: 15px;\n color: #fff;\n}\n\n\n.small-box > a:link, .small-box > a:visited, .small-box > a:hover {\n color: #fff;\n}\n\n.select2-container--default .select2-selection--single, .select2-selection .select2-selection--single {\n border: 1px solid #d2d6de;\n border-radius: 0;\n padding: 6px 12px;\n height: 34px;\n}\n\n.form-group.has-error label, .form-group.has-error .help-block {\n color: #a94442;\n}\n\n.select2-container--default .select2-selection--multiple {\n border-radius: 0px;\n}\n\n@media screen and (max-width: 511px){\n .tab-content .tab-pane .alert-block {\n margin-top: 120px\n }\n .sidebar-menu{\n margin-top:160px;\n }\n}\n@media screen and (max-width: 912px) and (min-width: 512px){\n .sidebar-menu {\n margin-top:100px\n }\n .navbar-custom-menu > .navbar-nav > li.dropdown.user.user-menu {\n float:right;\n }\n .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n margin-right:-39px;\n }\n}\n\n@media screen and (max-width: 1268px) and (min-width: 912px){\n .sidebar-menu {\n margin-top:50px\n }\n}\n@media screen and (max-width: 992px){\n .info-stack-container {\n flex-direction: column;\n }\n .col-md-3.col-xs-12.col-sm-push-9.info-stack{\n left:auto;\n order:1;\n }\n .col-md-9.col-xs-12.col-sm-pull-3.info-stack{\n right:auto;\n order:2;\n }\n .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2{\n width:auto;\n float:none;\n }\n}\n@media screen and (max-width: 992px){\n .row-new-striped div{\n width:100%;\n }\n}\n\n@media screen and (max-width: 1318px) and (min-width: 1200px){\n .admin.box{\n height:170px;\n }\n}\n@media screen and (max-width: 1494px) and (min-width: 1200px){\n .dashboard.small-box{\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: 188px;\n display: block;\n overflow: hidden;\n }\n}\n\n/** Form-stuff overrides for checkboxes and stuff **/\n\nlabel.form-control {\n display: grid;\n grid-template-columns: 1.8em auto;\n gap: 0.5em;\n border: 0px;\n padding-left: 0px;\n background-color: inherit;\n color: inherit;\n font-size: inherit;\n font-weight: inherit;\n}\n\nlabel.form-control--disabled {\n color: #959495;\n cursor: not-allowed;\n}\n\n\n/** --------------------------------------- **/\n/** Start checkbox styles to replace iCheck **/\n/** --------------------------------------- **/\ninput[type=\"checkbox\"] {\n /* Add if not using autoprefixer */\n -webkit-appearance: none;\n appearance: none;\n /* For iOS < 15 to remove gradient background */\n background-color: #fff;\n /* Not removed via appearance */\n margin: 0;\n font: inherit;\n color: #959495;\n width: 1.8em;\n height: 1.8em;\n border: 0.05em solid;\n border-radius: 0em;\n transform: translateY(-0.075em);\n display: grid;\n place-content: center;\n /*Windows High Contrast Mode*/\n}\n\n/** This sets the display of a checkbox, and what the \"fill\" checkmark should look like */\n\ninput[type=\"checkbox\"]::before {\n\n /** If you want to use the non-checkbox, filled square, use this instead **/\n content: \"\";\n width: 1em;\n height: 1em;\n transform: scale(0);\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em rgb(211, 211, 211);\n\n content: \"\";\n width: 1em;\n height: 1em;\n clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);\n transform: scale(0);\n transform-origin: bottom left;\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em #428bca;\n /* Windows High Contrast Mode */\n background-color: CanvasText;\n}\n\n/** This sets the size of the scale up for the shape we defined above **/\ninput[type=\"checkbox\"]:checked::before {\n transform: scale(1);\n}\n\n/** This sets the scale and color of the DISABLED but CHECKED checkbox */\ninput[type=checkbox]:disabled::before, input[type=radio]:disabled::before {\n content: \"\";\n width: 1em;\n height: 1em;\n transform: scale(1);\n box-shadow: inset 1em 1em rgb(211, 211, 211);\n}\n\n/* This sets the scale and style of a DISABLED checkbox that is NOT checked */\ninput[type=checkbox]:disabled:not(:checked)::before, input[type=radio]:disabled:not(:checked)::before {\n content: \"\";\n transform: scale(0);\n cursor: not-allowed;\n pointer-events:none;\n}\n\n/** this is the color of the checkbox and content on a disabled, checked box **/\ninput[type=checkbox]:disabled, input[type=radio]:disabled {\n --form-control-color: rgb(211, 211, 211);\n color: #959495;\n cursor: not-allowed;\n pointer-events:none;\n}\n\n\n/** Radio styles to replace iCheck **/\n\ninput[type=\"radio\"] {\n appearance: none;\n background-color: #fff;\n margin: 0;\n font: inherit;\n color: #959495;\n width: 1.8em;\n height: 1.8em;\n border: 0.05em solid;\n border-radius: 50%;\n transform: translateY(-0.075em);\n display: grid;\n place-content: center;\n}\n\ninput[type=\"radio\"]::before {\n content: \"\";\n width: 1em;\n height: 1em;\n border-radius: 50%;\n transform: scale(0);\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em #428bca;\n}\n\ninput[type=\"radio\"]:checked::before {\n transform: scale(1);\n}\n\n\n/**\n* This addresses the column selector in bootstrap-table. Without these two lines, the\n* checkbox and the with the label text that BS tables generates will\n* end up on two different lines and it looks assy.\n */\n.dropdown-item-marker input[type=checkbox] {\n font-size: 10px;\n}\n\n.bootstrap-table .fixed-table-toolbar li.dropdown-item-marker label {\n font-weight: normal;\n display: grid;\n grid-template-columns: .1em auto;\n gap: 1.5em;\n}\n\n.container.row-striped .col-md-6 {\n overflow-wrap:anywhere;\n}\n\n.nav-tabs-custom > .nav-tabs > li {\n z-index: 1;\n}\n\n.select2-container .select2-search--inline .select2-search__field{\n padding-left:15px;\n}\n\n.nav-tabs-custom > .nav-tabs > li.active {\n font-weight: bold;\n}\n\n/** --------------------------------------- **/\n/** End checkbox styles to replace iCheck **/\n/** --------------------------------------- **/\n\n/**\n/** Separator styles with text in the middle. Currently only used by the login page but\n/** could be used elsewhere.\n */\n\n.separator {\n display: flex;\n align-items: center;\n text-align: center;\n padding-top: 20px;\n color: #959495;\n}\n\n.separator::before,\n.separator::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #959495;\n}\n\n.separator:not(:empty)::before {\n margin-right: .25em;\n}\n\n.separator:not(:empty)::after {\n margin-left: .25em;\n}\n.datepicker.dropdown-menu {\n z-index: 1030 !important;\n}\n\n.sidebar-menu > li .badge {\n margin-top: 0px;\n filter: brightness(70%);\n font-size: 70%;\n}\n\n/** this is needed to override ekko-lightboxes card view styles **/\n.bootstrap-table .fixed-table-container .table tbody tr .card-view {\n display: table-row !important;\n}\n\n.form-control-static {\n padding-top: 0px;\n}\n\n\ntd.text-right.text-padding-number-cell {\n padding-right: 30px !important;\n white-space: nowrap;\n}\n\nth.text-right.text-padding-number-footer-cell {\n padding-right: 20px !important;\n white-space: nowrap;\n}\n\ncode.single-line {\n white-space: pre-wrap;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n max-width: 400px;\n}\n\np.monospace, span.monospace {\n font-family: monospace, monospace;\n}\n\nlegend.highlight {\n background: repeating-linear-gradient(\n 45deg,\n #222d32,\n #222d32 10px,\n #444 10px,\n #444 11px\n );\n\n color: #fff;\n font-size: 18px;\n padding: 6px 6px 6px 10px;\n}\n\nlegend.highlight a {\n color: #fff;\n cursor: pointer;\n}\n\nfieldset.bottom-padded {\n padding-bottom: 20px;\n}\n\ncaption.tableCaption {\n font-size: 18px;\n padding-left: 8px;\n}\n\n// via https://github.com/grokability/snipe-it/issues/11754\n.sidebar-toggle.btn {\n border-radius: 3px;\n box-shadow: none;\n border-top: 0px solid transparent;\n border-bottom: 0px solid transparent;\n padding-left: 15px;\n padding-right: 15px;\n padding-top: 12px;\n padding-bottom: 12px;\n margin-left: -47px;\n margin-top: 2px;\n}\n.popover.help-popover,\n.popover.help-popover .popover-content,\n.popover.help-popover .popover-body,\n.popover.help-popover .popover-title,\n.popover.help-popover .popover-header {\n color: #000;\n}\n\n.visually-hidden {\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n clip: rect(0,0,0,0);\n white-space: preserve;\n display: inline-block;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/build/app.css","mappings":"AACA;EACE;EAGA;AAFF;AAKA;EACE;IACE;EAHF;EAMA;IACE;EAJF;AACF;AAOA;EACE;AALF;AAOA;EACE;EACA;EACA;EACA;EACA;AALF;AASA;EACE;AAPF;AAUA;EACE;EACA;AARF;AAWA;EACE;AATF;AAYA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AAVF;AAaA;EACE;EACA;EACA;EACA;EACA;AAXF;AAcA;EACE;AAZF;AAeA;EACE;AAbF;AAgBA;EACE;EACA;AAdF;AAiBA;EACE;AAfF;AAkBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAhBF;AAmBA;EACE;AAjBF;AAoBA;EACE;AAlBF;AAqBA;EACE;AAnBF;AAsBA;EACE;AApBF;AAuBA;EACE;EACA;EACA;AArBF;AAwBA;EACE;EACA;EACA;AAtBF;AA6BA;EACE;AA3BF;AA8BA;EACE;EACA;AA5BF;AA+BA;EACE;AA7BF;AA+BA;EACE;EACA;AA7BF;AAgCA;;EAEE;EACA;AA9BF;AAiCA;EACE;EACA;AA/BF;AAiCA;EACE;AA/BF;AAkCA;EACE;EACA;EACA;AAhCF;AAmCA;EACE;AAjCF;AAoCA;EACE;AAlCF;AAqCA;EACE;AAnCF;AAsCA;EACE;AApCF;AAuCA;EACE;AArCF;AAwCA;;;;;EAKE;AAtCF;AAyCA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAvCF;AA0CA;EACE;EACA;EACA;EACA;EACA;EACA;AAxCF;AA2CA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAzCF;AA4CA;EACE;AA1CF;AA6CA;EACE;EACA;EACA;EACA;AA3CF;AA8CA;EACE;EACA;AA5CF;AA+CA;EACE;EACA;EACA;EACA;EACA;AA7CF;AAgDA;EACE;EACA;AA9CF;AAiDA;EACE;EACA;EACA;EACA;AA/CF;AAkDA;EACE;EACA;AAhDF;AACA,cAAc;AAmDd;EACE;EACA;EACA;AAjDF;AAmDA;EACE;EACA;AAjDF;AAsDA;EACE;EACA;EACA;AApDF;AAuDA;EACE;EACA;AArDF;AAwDA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAtDF;AAyDA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAvDF;AA0DA;EACE;EACA;EACA;EACA;EACA;AAxDF;AA2DA;EACE;EACA;EACA;AAzDF;AA4DA;EACE;AA1DF;AA6DA;EACE;AA3DF;AA8DA;EACE;AA5DF;AA+DA;EACE;AA7DF;AAgEA;EACE;AA9DF;AAiEA;EACE;AA/DF;AAkEA;EACE;EACA;AAhEF;AAmEA;EACE;AAjEF;AAoEA;EACE;AAlEF;AACA,kBAAkB;AAqElB;EACE;EAEA;EACA;EACA;EApEA,gCAAgC;AAClC;AAuEA;EACE;AArEF;AAwEA;EACE;EACA;EACA;AAtEF;AAwEA;EACE;EACA;EACA;AAtEF;AAyEA;;;EACE;AArEF;AAwEA;EACE;EACA;AAtEF;AAyEA;EACE;IACE;EAvEF;EA0EA;IACE;IACA;IACA;EAxEF;AACF;AA2EA;;EAEE;EACA;EACA;AAzEF;AA4EA;EACE;AA1EF;AA6EA;;EAEE;AA3EF;AA8EA;EACE;AA5EF;AA+EA;EACE;AA7EF;AAgFA;EACE;EACA;EACA;AA9EF;AAiFA;EACE;EACA;AA/EF;AAkFA;EACE;EACA;EACA;AAhFF;AAmFA;EACE;AAjFF;ACvXA;EAkBE;ADwWF;ACtWA;EACE;EACA;EACA;EACA;EACA;ADwWF;ACvWE;;;EACE;AD2WJ;ACxWA;EACE;AD0WF;ACvWA;EACE;EACA;ADyWF;ACtWA;EACE;ADwWF;ACpWA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ADsWF;ACnWA;EACE;EACA;EACA;EACA;EACA;ADqWF;AClWA;EACE;ADoWF;ACjWA;EACE;ADmWF;AChWA;EACE;EACA;ADkWF;AC9VA;EACE;ADgWF;AC7VA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AD+VF;AC7VA;EACE;AD+VF;AC7VA;EACE;AD+VF;AC3VA;EACE;AD6VF;AC3VA;EACE;AD6VF;ACzVA;EACE;EACA;EACA;AD2VF;ACxVA;EACE;EACA;EACA;AD0VF;ACnUA;EACE;ADqUF;AClUA;EACE;EACA;EACA;ADoUF;ACjUA;EACE;EACA;ADmUF;AChUA;EACE;ADkUF;AC/TA;EACE;EACA;ADiUF;AC9TA;;EACE;EACA;ADiUF;AC9TA;EACE;EACA;ADgUF;AC9TA;EACE;ADgUF;AC7TA;EACE;EACA;EACA;AD+TF;AC5TA;EACE;AD8TF;AC3TA;EACE;AD6TF;AC1TA;EACE;AD4TF;AC1TA;EACE;AD4TF;ACzTA;EACE;AD2TF;ACxTA;;;;EACE;AD6TF;AC1TA;;;;;EACE;ADgUF;AC7TA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AD+TF;AC7TA;EACE;EACA;EACA;EACA;EACA;EACA;AD+TF;AC7TA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AD+TF;AC7TA;EACE;AD+TF;AC7TA;EACE;EACA;EACA;EACA;AD+TF;AC7TA;EACE;EACA;AD+TF;AC7TA;EACE;EACA;EACA;EACA;EACA;AD+TF;AC7TA;EACE;EACA;AD+TF;AC7TA;EACE;EACA;EACA;EACA;AD+TF;AC5TA;EACE;EACA;AD8TF;ACzTA;EAAY;AD4TZ;AACA,cAAc;AC1Td;EAAY;EAAkC;AD8T9C;AC7TA;EAA8B;EAAY;ADiU1C;AC/TA;EAAiD;EAAgB;EAAiB;ADoUlF;ACnUA;EAA8C;EAAa;ADuU3D;ACtUA;EAA+C;EAAoB;EAAa;EAAc;EAAgB;EAAqB;EAAW;EAAW;EAAmB;EAAoB;ADkVhM;ACjVA;EAAqD;EAAc;EAAa;EAAc;EAAqB;EAAqB;EAAoB;EAAU;AD2VtK;AC1VA;EAA0C;EAAoB;EAAoB;EAAa;EAAkB;ADiWjH;AChWA;EAA0D;EAAW;EAAkB;ADqWvF;ACpWA;EAAmE;ADuWnE;ACtWA;EAAiE;ADyWjE;ACxWA;EAA6E;AD2W7E;AC1WA;EAA4E;AD6W5E;AC5WA;EAAwD;AD+WxD;AC9WA;EAA8D;ADiX9D;AChXA;EAAuD;EAAW;ADoXlE;ACnXA;EAAsD;ADsXtD;ACrXA;EAAuD;ADwXvD;AACA,kBAAkB;ACtXlB;EACE;EACA;EACA;EACA;EACA;EDwXA,gCAAgC;AAClC;ACrXA;EAkBE;ADsWF;ACnWA;EACE;ADqWF;ACjWA;;EACE;ADoWF;AClWA;;EACE;ADqWF;AClWA;EACE;EAIA;ADiWF;AC9VA;EACE;EACA;ADgWF;AC7VA;EACE;AD+VF;AC5VA;EACE;AD8VF;AC3VA;EAEE;IACE;IACA;ED4VF;ECzVA;IACE;IACA;IACA;ED2VF;ECxVA;IACE;ED0VF;ECvVA;;IACE;ED0VF;ECvVA;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;EDyVF;EACA,+CAA+C;ECtV/C;IACE;EDwVF;ECrVA;IACE;EDuVF;ECpVA;IACE;EDsVF;ECnVA;IACE;EDqVF;EACA,qCAAqC;EClVrC;;IACE;EDqVF;EACA,QAAQ;EClVR;;IACE;IACA;IACA;EDqVF;EClVA;IACE;EDoVF;ECjVA;IACE;EDmVF;EChVA;IACE;IACA;IACA;EDkVF;EC/UA;IACE;IACA;EDiVF;EC9UA;;IACE;EDiVF;EC/UA;;;;;;;;;;;;IACE;ED4VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;ECzVA;IACE;ED2VF;AACF;ACtVA;EACE;ADwVF;ACrVA;EACI;EACA;ADuVJ;ACpVA;EACE;ADsVF;ACnVA;EACE;EACA;EACA;ADqVF;AChVA;EACE;EACA;OAAA;EACA;EACA;ADkVF;AC/UA;;EACE;EACA;EACA;ADkVF;AC/UA;;;EACE;ADmVF;AChVA;;EACE;ADmVF;AChVA;EACE;ADkVF;AC/UA;EACE;ADiVF;AC9UA;EACE;EACA;EACA;ADgVF;AC7UA;EACE;EACA;AD+UF;AC5UA;EACE;EACA;EACA;AD8UF;AC1UA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AD4UF;AC1UA;;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AD6UF;AC1UA;EACE;AD4UF;ACzUA;EACE;AD2UF;ACxUA;EACE;AD0UF;ACvUA;EACE;ADyUF;ACtUA;EACE;ADwUF;ACpUA;EACE;EACA;EACA;EACA;EACA;EAGA;ADoUF;ACjUA;EACE;EACA;EACA;EACA;ADmUF;AChUA;EACE;EACA;EACA;EACA;ADkUF;AC9TA;EACE;EACA;EACA;EACA;EACA;EACA;ADgUF;AACA;;;;EAIE;AC7TF;EACE;EACA;EACA;EACA;AD+TF;AC5TA;EACE;EACA;EACA;EACA;EACA;AD8TF;AC3TA;EACE;EACA;EACA;AD6TF;AC1TA;EACE;EACA;EACA;AD4TF;ACxTA;EACE;AD0TF;AACA;;EAEE;ACrTF;EACE;IACE;IACA;EDuTF;ECpTA;IACE;EDsTF;ECnTA;IACE;EDqTF;EClTA;IACE;EDoTF;AACF;ACjTA;EACE;EACA;EACA;ADmTF;AChTA;EACE;EACA;ADkTF;AACA;;;;;;;;;;;EAWE;AC7SF;;;;;;;;;;;;;;EAeE;EACA;EACA;EACA;EACA;EACA;AD8SF;AC1SA;;;;;;;;;;;;;;;EAgBE;EACA;EACA;EACA;AD2SF;AACA;;;EAGE;ACxSF;EAEE;EAAkB;EAAoC;AD2SxD;ACxSA;EAEE;EAAkB;EAAoC;AD2SxD;ACxSA;EAEE;EAAkB;EAAoC;AD2SxD;ACxSA;EAEE;EAAkB;EAAoC;AD2SxD;ACxSA;EAEE;EAAkB;EAAoC;AD2SxD;ACxSA;EACE;EAAkB;EAAoC;AD4SxD;ACzSA;EACE;EAAkB;EAAoC;EAAiB;AD8SzE;AC3SA;EAEE;EAAkB;EAAoC;AD8SxD;AC3SA;EAEE;EAAkB;EAClB;EACA;AD6SF;AC1SA;EACE;EACA;EACA;EACA;AD4SF;AC1SA;EACE;EACA;EACA;EACA;AD4SF;AC1SA;EACE;EACA;EACA;EACA;AD4SF;AC1SA;EACE;EACA;EACA;EACA;AD4SF;ACzSA;EACE;EACA;EACA;EACA;AD2SF;ACxSA;EACE;EACA;EACA;EACA;AD0SF;ACtSA;EACE;EACA;EACA;EACA;ADwSF;ACpSA;;;EACE;ADwSF;ACrSA;;EACE;EACA;EACA;EACA;ADwSF;ACrSA;;EACE;ADwSF;ACrSA;EACE;ADuSF;ACpSA;EACE;IACE;EDsSF;ECpSA;IACE;EDsSF;AACF;ACpSA;EACE;IACE;EDsSF;ECpSA;IACE;EDsSF;ECpSA;IACE;EDsSF;AACF;ACnSA;EACE;IACE;EDqSF;AACF;ACnSA;EACE;IACE;EDqSF;ECnSA;IACE;IACA;EDqSF;ECnSA;IACE;IACA;EDqSF;ECnSA;IACE;IACA;EDqSF;AACF;ACnSA;EACE;IACE;EDqSF;AACF;AClSA;EACE;IACE;EDoSF;AACF;AClSA;EACE;IACE;IACA;IACA;IACA;IACA;EDoSF;AACF;AACA,oDAAoD;AChSpD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADkSF;AC/RA;EACE;EACA;ADiSF;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AC7R9C;ED+RE,kCAAkC;EC7RlC;EACA;OAAA;ED+RA,+CAA+C;EC7R/C;ED+RA,+BAA+B;EC7R/B;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ED+RA,6BAA6B;AAC/B;AACA,yFAAyF;AC3RzF;ED6RE,2EAA2E;ECrR3E;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EDsRA,+BAA+B;ECpR/B;ADsRF;AACA,wEAAwE;ACnRxE;EACE;ADqRF;AACA,wEAAwE;AClRxE;;EACE;EACA;EACA;EACA;EACA;ADqRF;AACA,6EAA6E;AClR7E;;EACE;EACA;EACA;EACA;ADqRF;AACA,+EAA+E;AClR/E;;EACE;EACA;EACA;EACA;ADqRF;AACA,qCAAqC;AChRrC;EACE;KAAA;UAAA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ADkRF;AC/QA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;ADiRF;AC9QA;EACE;ADgRF;AACA;;;;EAIE;AC5QF;EACE;AD8QF;AC3QA;EACE;EACA;EACA;EACA;AD6QF;AC1QA;EACE;AD4QF;ACzQA;EACE;AD2QF;ACxQA;EACE;AD0QF;ACvQA;EACE;ADyQF;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C,8CAA8C;AAC9C;;;EAGE;ACpQF;EACE;EACA;EACA;EACA;EACA;ADsQF;ACnQA;;EAEE;EACA;EACA;ADqQF;AClQA;EACE;ADoQF;ACjQA;EACE;ADmQF;ACjQA;EACE;ADmQF;AChQA;EACE;EACA;EACA;ADkQF;AACA,kEAAkE;AC/PlE;EACE;ADiQF;AC9PA;EACE;ADgQF;AC5PA;EACE;EACA;AD8PF;AC3PA;EACE;EACA;AD6PF;AC1PA;EACE;EACA;EACA;EACA;EACA;EACA;AD4PF;ACzPA;;EACE;AD4PF;ACzPA;EACE;EAQA;EACA;EACA;ADoPF;ACjPA;EACE;EACA;ADmPF;AChPA;EACE;ADkPF;AC/OA;EACE;EACA;ADiPF;AC7OA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AD+OF;AC7OA;;;;;EAKE;AD+OF;AC5OA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;AD8OF","sources":["webpack:///./resources/assets/less/app.less","webpack:///./resources/assets/less/overrides.less"],"sourcesContent":["\nbody {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n font-size: 13px;\n}\n// Moved from default.blade.php\n@media (max-width: 400px) {\n .navbar-left {\n margin: 2px;\n }\n\n .nav::after {\n clear: none;\n }\n}\n\n.skin-blue .main-header .logo {\n background-color: inherit !important;\n}\n.main-header .logo {\n width: 100% !important;\n white-space: nowrap;\n text-align: left;\n display: block;\n clear: both;\n //text-overflow: hidden;\n}\n\n.huge {\n font-size: 40px;\n}\n\n.btn-file {\n position: relative;\n overflow: hidden;\n}\n\n.dropdown-menu > li > a {\n color: #354044;\n}\n\n#sort tr.cansort {\n border-radius: 2px;\n padding: 10px;\n background: #f4f4f4;\n margin-bottom: 3px;\n border-left: 2px solid #e6e7e8;\n color: #444;\n cursor: move;\n}\n\n.user-image-inline {\n float: left;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n margin-right: 10px;\n}\n\n.input-group .input-group-addon {\n background-color: #f4f4f4;\n}\n\na.accordion-header {\n color: #333;\n}\n\n.dynamic-form-row {\n padding: 10px;\n margin: 20px;\n}\n\n.handle {\n padding-left: 10px;\n}\n\n.btn-file input[type=\"file\"] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n filter: alpha(opacity=0);\n opacity: 0;\n outline: none;\n background: white;\n cursor: inherit;\n display: block;\n}\n\n.main-footer {\n font-size: 13px;\n}\n\n.main-header {\n max-height: 150px;\n}\n\n.navbar-nav > .user-menu > .dropdown-menu {\n width: inherit;\n}\n\n.main-header .logo {\n padding: 0px 5px 0px 15px;\n}\n\n.sidebar-toggle {\n margin-left: -48px;\n z-index: 100;\n background-color: inherit;\n}\n\n.sidebar-toggle-mobile {\n z-index: 100;\n width: 50px;\n padding-top: 10px;\n}\n\n// .skin-blue .main-header .navbar .dropdown-menu li a {\n// //color: inherit;\n// }\n\n.main-header .sidebar-toggle:before {\n content: \"\\f0c9\";\n}\n\n.direct-chat-contacts {\n padding: 10px;\n height: 150px;\n}\n\n.select2-container {\n width: 100%;\n}\n.error input {\n color: #a94442;\n border: 2px solid #a94442 !important;\n}\n\n.error label,\n.alert-msg {\n color: #a94442;\n display: block;\n}\n\n.input-group[class*=\"col-\"] {\n padding-right: 15px;\n padding-left: 15px;\n}\n.control-label.multiline {\n padding-top: 10px;\n}\n\n.btn-outline {\n color: inherit;\n background-color: transparent;\n transition: all 0.5s;\n}\n\n.btn-primary.btn-outline {\n color: #428bca;\n}\n\n.btn-success.btn-outline {\n color: #5cb85c;\n}\n\n.btn-info.btn-outline {\n color: #5bc0de;\n}\n\n.btn-warning.btn-outline {\n color: #f0ad4e;\n}\n\n.btn-danger.btn-outline {\n color: #d9534f;\n}\n\n.btn-primary.btn-outline:hover,\n.btn-success.btn-outline:hover,\n.btn-info.btn-outline:hover,\n.btn-warning.btn-outline:hover,\n.btn-danger.btn-outline:hover {\n color: #fff;\n}\n\n.slideout-menu {\n position: fixed;\n top: 0;\n right: -250px;\n width: 250px;\n height: 100%;\n background: #333;\n z-index: 100;\n margin-top: 100px;\n color: white;\n padding: 10px;\n}\n\n.slideout-menu h3 {\n position: relative;\n padding: 5px 5px;\n color: #fff;\n font-size: 1.2em;\n font-weight: 400;\n border-bottom: 4px solid #222;\n}\n\n.slideout-menu .slideout-menu-toggle {\n position: absolute;\n top: 12px;\n right: 10px;\n display: inline-block;\n padding: 6px 9px 5px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n line-height: 1;\n background: #222;\n color: #999;\n text-decoration: none;\n vertical-align: top;\n}\n\n.slideout-menu .slideout-menu-toggle:hover {\n color: #fff;\n}\n\n.slideout-menu ul {\n list-style: none;\n font-weight: 300;\n border-top: 1px solid #151515;\n border-bottom: 1px solid #454545;\n}\n\n.slideout-menu ul li {\n border-top: 1px solid #454545;\n border-bottom: 1px solid #151515;\n}\n\n.slideout-menu ul li a {\n position: relative;\n display: block;\n padding: 10px;\n color: #999;\n text-decoration: none;\n}\n\n.slideout-menu ul li a:hover {\n background: #000;\n color: #fff;\n}\n\n.slideout-menu ul li a i {\n position: absolute;\n top: 15px;\n right: 10px;\n opacity: 0.5;\n}\n\n.btn-box-tool-lg {\n font-size: 16px;\n color: orange;\n}\n\n/*Form Wizard*/\n.bs-wizard {\n margin-top: 20px;\n border-bottom: solid 1px #e0e0e0;\n padding: 0 0 10px 0;\n}\n.bs-wizard > .bs-wizard-step {\n padding: 0;\n position: relative;\n}\n\n// .bs-wizard > .bs-wizard-step + .bs-wizard-step {}\n\n.bs-wizard > .bs-wizard-step .bs-wizard-stepnum {\n color: #595959;\n font-size: 16px;\n margin-bottom: 5px;\n}\n\n.bs-wizard > .bs-wizard-step .bs-wizard-info {\n color: #999;\n font-size: 14px;\n}\n\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot {\n position: absolute;\n width: 30px;\n height: 30px;\n display: block;\n background: #fbe8aa;\n top: 45px;\n left: 50%;\n margin-top: -15px;\n margin-left: -15px;\n border-radius: 50%;\n}\n\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot:after {\n content: \" \";\n width: 14px;\n height: 14px;\n background: #fbbd19;\n border-radius: 50px;\n position: absolute;\n top: 8px;\n left: 8px;\n}\n\n.bs-wizard > .bs-wizard-step > .progress {\n position: relative;\n border-radius: 0px;\n height: 8px;\n box-shadow: none;\n margin: 20px 0;\n}\n\n.bs-wizard > .bs-wizard-step > .progress > .progress-bar {\n width: 0px;\n box-shadow: none;\n background: #fbe8aa;\n}\n\n.bs-wizard > .bs-wizard-step.complete > .progress > .progress-bar {\n width: 100%;\n}\n\n.bs-wizard > .bs-wizard-step.active > .progress > .progress-bar {\n width: 50%;\n}\n\n.bs-wizard > .bs-wizard-step:first-child.active > .progress > .progress-bar {\n width: 0%;\n}\n\n.bs-wizard > .bs-wizard-step:last-child.active > .progress > .progress-bar {\n width: 100%;\n}\n\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot {\n background-color: #f5f5f5;\n}\n\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot:after {\n opacity: 0;\n}\n\n.bs-wizard > .bs-wizard-step:first-child > .progress {\n left: 50%;\n width: 50%;\n}\n\n.bs-wizard > .bs-wizard-step:last-child > .progress {\n width: 50%;\n}\n\n.bs-wizard > .bs-wizard-step.disabled a.bs-wizard-dot {\n pointer-events: none;\n}\n/*END Form Wizard*/\n\n.left-navblock {\n display: inline-block;\n // float: left;\n text-align: left;\n color: white;\n padding: 0px;\n /* adjust based on your layout */\n}\n\na.logo.no-hover a:hover {\n background-color: transparent;\n}\n\n.index-block {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.index-block:hover{\n overflow: visible;\n white-space: normal;\n height:auto;\n}\n\ninput:required, select:required, textarea:required {\n border-right: 6px solid orange;\n}\n\n.sidebar-menu {\n font-size: 14px;\n white-space: normal;\n}\n\n@media print {\n a[href]:after {\n content: none;\n }\n\n .tab-content > .tab-pane {\n display: block !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n}\n\nimg.navbar-brand-img,\n.navbar-brand > img {\n float: left;\n padding: 5px 5px 5px 0;\n max-height: 50px;\n}\n\n.input-daterange {\n border-radius: 0px;\n}\n\n.btn.bg-maroon,\n.btn.bg-purple {\n min-width: 90px;\n}\n\n[hidden] {\n display: none !important;\n}\n\n#toolbar {\n margin-top: 10px;\n}\n\n#uploadPreview {\n border-color: grey;\n border-width: 1px;\n border-style: solid;\n}\n\n.icon-med {\n font-size: 20px;\n color: #889195;\n}\n\n#login-logo {\n padding-top: 20px;\n padding-bottom: 10px;\n max-width: 200px;\n}\n\n.left-navblock {\n max-width: 500px;\n}\n\n@import \"overrides.less\";",".skin-red\n.skin-purple\n.skin-blue\n.skin-black\n.skin-orange\n.skin-yellow\n.skin-green\n.skin-red-dark\n.skin-purple-dark\n.skin-blue-dark\n.skin-black-dark\n.skin-orange-dark\n.skin-yellow-dark\n.skin-green-dark\n.skin-contrast\n.main-header\n\n.logo {\n background-color: inherit;\n}\n.main-header .logo {\n width: 100% !important;\n white-space: nowrap;\n text-align: left;\n display: block;\n clear: both;\n &a:link, a:hover, a:visited {\n color: #fff\n }\n}\n.huge {\n font-size: 40px;\n}\n\n.btn-file {\n position: relative;\n overflow: hidden;\n}\n\n.dropdown-menu>li>a {\n color: #354044;\n}\n\n\n#sort tr.cansort {\n border-radius: 2px;\n padding: 10px;\n background: #f4f4f4;\n margin-bottom: 3px;\n border-inline: 2px solid #e6e7e8;\n color: #444;\n cursor: move;\n}\n\n.user-image-inline {\n float: left;\n width: 25px;\n height: 25px;\n border-radius: 50%;\n margin-right: 10px;\n}\n\n.input-group .input-group-addon {\n background-color: #f4f4f4;\n}\n\na.accordion-header {\n color: #333;\n}\n\n.dynamic-form-row {\n padding: 10px;\n margin: 20px;\n}\n\n\n.handle {\n padding-left: 10px;\n}\n\n.btn-file input[type=file] {\n position: absolute;\n top: 0;\n right: 0;\n min-width: 100%;\n min-height: 100%;\n font-size: 100px;\n text-align: right;\n filter: alpha(opacity=0);\n opacity: 0;\n outline: none;\n background: white;\n cursor: inherit;\n display: block;\n}\n.main-footer {\n font-size: 13px;\n}\n.main-header {\n max-height: 150px;\n}\n\n\n.navbar-nav>.user-menu>.dropdown-menu {\n width: inherit;\n}\n.main-header .logo {\n padding: 0px 5px 0px 15px;\n}\n\n\n.sidebar-toggle {\n margin-left: -48px;\n z-index: 100;\n background-color: inherit;\n}\n\n.sidebar-toggle-mobile {\n z-index: 100;\n width: 50px;\n padding-top: 10px;\n}\n\n.skin-red\n.skin-purple\n.skin-blue\n.skin-black\n.skin-orange\n.skin-yellow\n.skin-green\n.skin-red-dark\n.skin-purple-dark\n.skin-blue-dark\n.skin-black-dark\n.skin-orange-dark\n.skin-yellow-dark\n.skin-green-dark\n.skin-contrast\n.main-header\n.navbar\n.dropdown-menu li a {\n //color: inherit;\n}\n.pull-text-right{\n text-align: right !important;\n}\n\n.main-header .sidebar-toggle:before {\n content: \"\\f0c9\";\n font-weight: 900;\n font-family: 'Font Awesome\\ 5 Free';\n}\n\n.direct-chat-contacts {\n padding: 10px;\n height: 150px;\n}\n\n.select2-container {\n width: 100%;\n}\n\n.error input {\n color: #a94442;\n border: 2px solid #a94442 !important;\n}\n\n.error label, .alert-msg {\n color: #a94442;\n display: block;\n}\n\n.input-group[class*=\"col-\"] {\n padding-right: 15px;\n padding-left: 15px;\n}\n.control-label.multiline {\n padding-top: 10px;\n}\n\n.btn-outline {\n color: inherit;\n background-color: transparent;\n transition: all .5s;\n}\n\n.btn-primary.btn-outline {\n color: #428bca;\n}\n\n.btn-success.btn-outline {\n color: #5cb85c;\n}\n\n.btn-info.btn-outline {\n color: #5bc0de;\n}\n.btn-warning{\n background-color:#f39c12 !important;\n}\n\n.btn-warning.btn-outline {\n color: #f0ad4e;\n}\n\n.btn-danger.btn-outline, a.link-danger:link, a.link-danger:visited, a.link-danger:hover {\n color: #dd4b39;\n}\n\n.btn-primary.btn-outline:hover, .btn-success.btn-outline:hover, .btn-info.btn-outline:hover, .btn-warning.btn-outline:hover, .btn-danger.btn-outline:hover {\n color: #fff;\n}\n\n.slideout-menu {\n position: fixed;\n top: 0;\n right: -250px;\n width: 250px;\n height: 100%;\n background: #333;\n z-index: 100;\n margin-top: 100px;\n color: white;\n padding: 10px;\n}\n.slideout-menu h3 {\n position: relative;\n padding: 5px 5px;\n color: #fff;\n font-size: 1.2em;\n font-weight: 400;\n border-bottom: 4px solid #222;\n}\n.slideout-menu .slideout-menu-toggle {\n position: absolute;\n top: 12px;\n right: 10px;\n display: inline-block;\n padding: 6px 9px 5px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n line-height: 1;\n background: #222;\n color: #999;\n text-decoration: none;\n vertical-align: top;\n}\n.slideout-menu .slideout-menu-toggle:hover {\n color: #fff;\n}\n.slideout-menu ul {\n list-style: none;\n font-weight: 300;\n border-top: 1px solid #151515;\n border-bottom: 1px solid #454545;\n}\n.slideout-menu ul li {\n border-top: 1px solid #454545;\n border-bottom: 1px solid #151515;\n}\n.slideout-menu ul li a {\n position: relative;\n display: block;\n padding: 10px;\n color: #999;\n text-decoration: none;\n}\n.slideout-menu ul li a:hover {\n background: #000;\n color: #fff;\n}\n.slideout-menu ul li a i {\n position: absolute;\n top: 15px;\n right: 10px;\n opacity: .5;\n}\n\n.btn-box-tool-lg {\n font-size: 16px;\n color: orange;\n}\n\n\n\n.bs-wizard {margin-top: 20px;}\n\n/*Form Wizard*/\n.bs-wizard {border-bottom: solid 1px #e0e0e0; padding: 0 0 10px 0;}\n.bs-wizard > .bs-wizard-step {padding: 0; position: relative;}\n.bs-wizard > .bs-wizard-step + .bs-wizard-step {}\n.bs-wizard > .bs-wizard-step .bs-wizard-stepnum {color: #595959; font-size: 16px; margin-bottom: 5px;}\n.bs-wizard > .bs-wizard-step .bs-wizard-info {color: #999; font-size: 14px;}\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot {position: absolute; width: 30px; height: 30px; display: block; background: #fbe8aa; top: 45px; left: 50%; margin-top: -15px; margin-left: -15px; border-radius: 50%;}\n.bs-wizard > .bs-wizard-step > .bs-wizard-dot:after {content: ' '; width: 14px; height: 14px; background: #fbbd19; border-radius: 50px; position: absolute; top: 8px; left: 8px; }\n.bs-wizard > .bs-wizard-step > .progress {position: relative; border-radius: 0px; height: 8px; box-shadow: none; margin: 20px 0;}\n.bs-wizard > .bs-wizard-step > .progress > .progress-bar {width:0px; box-shadow: none; background: #fbe8aa;}\n.bs-wizard > .bs-wizard-step.complete > .progress > .progress-bar {width:100%;}\n.bs-wizard > .bs-wizard-step.active > .progress > .progress-bar {width:50%;}\n.bs-wizard > .bs-wizard-step:first-child.active > .progress > .progress-bar {width:0%;}\n.bs-wizard > .bs-wizard-step:last-child.active > .progress > .progress-bar {width: 100%;}\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot {background-color: #f5f5f5;}\n.bs-wizard > .bs-wizard-step.disabled > .bs-wizard-dot:after {opacity: 0;}\n.bs-wizard > .bs-wizard-step:first-child > .progress {left: 50%; width: 50%;}\n.bs-wizard > .bs-wizard-step:last-child > .progress {width: 50%;}\n.bs-wizard > .bs-wizard-step.disabled a.bs-wizard-dot{ pointer-events: none; }\n/*END Form Wizard*/\n\n.left-navblock {\n display: inline-block;\n float: left;\n text-align: left;\n color: white;\n padding: 0px;\n /* adjust based on your layout */\n\n}\n.skin-red\n.skin-purple\n.skin-blue\n.skin-black\n.skin-orange\n.skin-yellow\n.skin-green\n.skin-red-dark\n.skin-purple-dark\n.skin-blue-dark\n.skin-black-dark\n.skin-orange-dark\n.skin-yellow-dark\n.skin-green-dark\n.skin-contrast\n.main-header\n.navbar\n.dropdown-menu li a {\n color: #333;\n}\n\na.logo.no-hover a:hover {\n background-color: transparent;\n}\n\n\ninput:required, select:required {\n border-right: 5px solid orange;\n}\nselect:required + .select2-container .select2-selection, select:required + .select2-container .select2-selection .select2-selection--multiple {\n border-right: 5px solid orange !important;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont,\n \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\",\n \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n font-size: 13px;\n}\n\n.sidebar-menu {\n font-size: 14px;\n white-space: normal;\n}\n\n.modal-warning .modal-help {\n color: #fff8af;\n}\n\n.bootstrap-table .fixed-table-container .fixed-table-body .fixed-table-loading {\n z-index: 0 !important;\n}\n\n@media print {\n\n @page {\n size: A4;\n margin: 0mm;\n }\n\n .tab-content > .tab-pane {\n display: block !important;\n opacity: 1 !important;\n visibility: visible !important;\n }\n\n .img-responsive {\n width: 200px;\n }\n\n html, body {\n width: 1024px;\n }\n\n body {\n margin: 0 auto;\n line-height: 1em;\n word-spacing:1px;\n letter-spacing:0.2px;\n font: 15px \"Times New Roman\", Times, serif;\n background:white;\n color:black;\n width: 100%;\n float: none;\n }\n\n /* avoid page-breaks inside a listingContainer*/\n .listingContainer {\n page-break-inside: avoid;\n }\n\n h1 {\n font: 28px \"Times New Roman\", Times, serif;\n }\n\n h2 {\n font: 24px \"Times New Roman\", Times, serif;\n }\n\n h3 {\n font: 20px \"Times New Roman\", Times, serif;\n }\n\n /* Improve colour contrast of links */\n a:link, a:visited {\n color: #781351\n }\n\n /* URL */\n a:link, a:visited {\n background: transparent;\n color:#333;\n text-decoration:none;\n }\n\n a[href]:after {\n content: \"\" !important;\n }\n\n a[href^=\"http://\"] {\n color:#000;\n }\n\n #header {\n height:75px;\n font-size: 24pt;\n color:black\n }\n\n div.row-new-striped {\n margin: 0px;\n padding: 0px;\n }\n\n .pagination-detail, .fixed-table-toolbar {\n visibility: hidden;\n }\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 .col-sm-pull-3 .col-sm-push-9 {\n float: left;\n }\n\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666666666666%;\n }\n .col-sm-10 {\n width: 83.33333333333334%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666666666666%;\n }\n .col-sm-7 {\n width: 58.333333333333336%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666666666667%;\n }\n .col-sm-4 {\n width: 33.33333333333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.666666666666664%;\n }\n .col-sm-1 {\n width: 8.333333333333332%;\n }\n\n}\n\n\n.select2-selection__choice__remove {\n color: white !important;\n}\n\n.select2-selection--multiple {\n border-color: #d2d6de !important;\n overflow-y: auto;\n}\n\n.select2-selection__choice {\n border-radius: 0px !important;\n}\n\n.select2-search select2-search--inline {\n height: 35px !important;\n float: left;\n margin: 0;\n}\n\n\n\n.select2-results__option {\n padding: 5px;\n user-select: none;\n -webkit-user-select: none;\n margin: 0px;\n}\n\nimg.navbar-brand-img, .navbar-brand>img {\n float: left;\n padding: 5px 5px 5px 0;\n max-height: 50px;\n}\n\n.input-daterange, .input-daterange input:first-child, .input-daterange input:last-child {\n border-radius: 0px !important;\n}\n\n.btn.bg-maroon, .btn.bg-purple{\n min-width:90px;\n}\n\n[hidden] {\n display: none !important;\n}\n\n#toolbar {\n margin-top: 10px;\n}\n\n#uploadPreview {\n border-color: grey;\n border-width: 1px;\n border-style: solid\n}\n\n.icon-med {\n font-size: 14px;\n color: #889195;\n}\n\n#login-logo {\n padding-top: 20px;\n padding-bottom: 10px;\n max-width: 200px\n}\n\n// accessibility skip link\na.skip-main {\n left:-999px;\n position:absolute;\n top:auto;\n width:1px;\n height:1px;\n overflow:hidden;\n z-index:-999;\n}\na.skip-main:focus, a.skip-main:active {\n color: #fff;\n background-color:#000;\n left: auto;\n top: auto;\n width: 30%;\n height: auto;\n overflow:auto;\n margin: 10px 35%;\n padding:5px;\n border-radius: 15px;\n border:4px solid yellow;\n text-align:center;\n font-size:1.2em;\n z-index:999;\n}\n\nh2 {\n font-size: 22px;\n}\n\nh2.task_menu {\n font-size: 14px;\n}\n\nh2 small {\n font-size: 85%;\n}\n\nh3 {\n font-size: 20px;\n}\n\nh4 {\n font-size: 16px;\n}\n\n\n.row-striped {\n vertical-align: top;\n line-height: 2.6;\n padding: 0px;\n margin-left: 20px;\n box-sizing: border-box;\n //border-left: 1px solid #dddddd;\n //border-right: 1px solid #dddddd;\n display: table;\n}\n\n.row-striped .row:nth-of-type(odd) div {\n background-color: #f9f9f9;\n border-top: 1px solid #dddddd;\n display: table-cell;\n word-wrap: break-word;\n}\n\n.row-striped .row:nth-of-type(even) div {\n background: #FFFFFF;\n border-top: 1px solid #dddddd;\n display: table-cell;\n word-wrap: break-word;\n}\n\n\n.row-new-striped {\n vertical-align: top;\n padding: 3px;\n display: table;\n width: 100%;\n word-wrap: break-word;\n table-layout:fixed;\n}\n\n/**\n* NEW STRIPING\n* This section is for the new row striping for nicer \n* display for non-table data as of v6\n**/\n.row-new-striped > .row:nth-of-type(even) {\n background: #FFFFFF;\n border-top: 1px solid #dddddd;\n line-height: 1.9;\n display: table-row;\n}\n\n.row-new-striped > .row:nth-of-type(odd) {\n background-color: #F8F8F8;\n border-top: 1px solid #dddddd;\n display: table-row;\n line-height: 1.9;\n padding: 2px;\n}\n\n.row-new-striped div {\n display: table-cell;\n border-top: 1px solid #dddddd;\n padding: 6px;\n}\n\n.row-new-striped div {\n display: table-cell;\n border-top: 1px solid #dddddd;\n padding: 6px;\n}\n\n\n.row-new-striped div[class^=\"col\"]:first-child {\n font-weight: bold;\n}\n\n\n\n/**\n* This just adds a little extra padding on mobile\n**/\n@media only screen and (max-width: 520px) {\n h1.pagetitle {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n\n .firstnav {\n padding-top: 120px !important;\n }\n\n .product {\n width: 400px;\n }\n\n .product img {\n min-width: 400px;\n }\n}\n\n.card-view-title {\n min-width: 40% !important;\n line-height: 3.0!important;\n padding-right: 20px;\n}\n\n.card-view {\n display: table-row;\n flex-direction: column;\n}\n\n// ---------------\n\n/**\n\n COLUMN SELECTOR ICONS\n -----------------------------\n This is kind of weird, but it is necessary to prevent the column-selector code from barfing, since\n any HTML used in the UserPresenter \"title\" attribute breaks the column selector HTML.\n\n Instead, we use CSS to add the icon into the table header, which leaves the column selector\n \"title\" text as-is and hides the icon.\n\n See https://github.com/grokability/snipe-it/issues/7989\n */\nth.css-accessory > .th-inner,\nth.css-accessory-alt > .th-inner,\nth.css-barcode > .th-inner,\nth.css-component > .th-inner,\nth.css-consumable > .th-inner,\nth.css-envelope > .th-inner,\nth.css-house-flag > .th-inner,\nth.css-house-laptop > .th-inner,\nth.css-house-user > .th-inner,\nth.css-license > .th-inner,\nth.css-location > .th-inner,\nth.css-users > .th-inner,\nth.css-currency > .th-inner,\nth.css-history > .th-inner\n{\n font-size: 0px;\n line-height: 0.75 !important;\n text-align: left;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n\nth.css-location > .th-inner::before,\nth.css-accessory > .th-inner::before,\nth.css-accessory-alt > .th-inner::before,\nth.css-barcode > .th-inner::before,\nth.css-component > .th-inner::before,\nth.css-consumable > .th-inner::before,\nth.css-envelope > .th-inner::before,\nth.css-house-flag > .th-inner::before,\nth.css-house-laptop > .th-inner::before,\nth.css-house-user > .th-inner::before,\nth.css-license > .th-inner::before,\nth.css-location > .th-inner::before,\nth.css-users > .th-inner::before,\nth.css-currency > .th-inner::before,\nth.css-history > .th-inner::before\n{\n display: inline-block;\n font-size: 20px;\n font-family: \"Font Awesome 5 Free\";\n font-weight: 900;\n}\n\n/**\nBEGIN ICON TABLE HEADERS\nSet the font-weight css property as 900 (For Solid), 400 (Regular or Brands), 300 (Light for pro icons).\n**/\nth.css-barcode > .th-inner::before\n{\n content: \"\\f02a\"; font-family: \"Font Awesome 5 Free\"; font-weight: 900;\n}\n\nth.css-license > .th-inner::before\n{\n content: \"\\f0c7\"; font-family: \"Font Awesome 5 Free\"; font-weight: 400;\n}\n\nth.css-consumable > .th-inner::before\n{\n content: \"\\f043\"; font-family: \"Font Awesome 5 Free\"; font-weight: 900;\n}\n\nth.css-envelope > .th-inner::before\n{\n content: \"\\f0e0\"; font-family: \"Font Awesome 5 Free\"; font-weight: 400;\n}\n\nth.css-accessory > .th-inner::before\n{\n content: \"\\f11c\"; font-family: \"Font Awesome 5 Free\"; font-weight: 400;\n}\n\nth.css-users > .th-inner::before {\n content: \"\\f0c0\"; font-family: \"Font Awesome 5 Free\"; font-size: 15px;\n}\n\nth.css-location > .th-inner::before {\n content: \"\\f3c5\"; font-family: \"Font Awesome 5 Free\"; font-size: 19px; margin-bottom: 0px;\n}\n\nth.css-component > .th-inner::before\n{\n content: \"\\f0a0\"; font-family: \"Font Awesome 5 Free\"; font-weight: 500;\n}\n\nth.css-padlock > .th-inner::before\n{\n content: \"\\f023\"; font-family: \"Font Awesome 5 Free\";\n font-weight: 800;\n padding-right: 3px;\n}\n\nth.css-house-user > .th-inner::before {\n content: \"\\e1b0\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\nth.css-house-flag > .th-inner::before {\n content: \"\\e50d\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\nth.css-house-laptop > .th-inner::before {\n content: \"\\e066\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\nth.css-accessory-alt > .th-inner::before {\n content: \"\\f11c\";\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\n\nth.css-currency > .th-inner::before {\n content: \"\\24\"; // change this to f51e for coins\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\n\nth.css-history > .th-inner::before {\n content: \"\\f1da\"; // change this to f51e for coins\n font-family: \"Font Awesome 5 Free\";\n font-size: 19px;\n margin-bottom: 0px;\n}\n\n\n.small-box .inner {\n padding-left: 15px;\n padding-right: 15px;\n padding-top: 15px;\n color: #fff;\n}\n\n\n.small-box > a:link, .small-box > a:visited, .small-box > a:hover {\n color: #fff;\n}\n\n.select2-container--default .select2-selection--single, .select2-selection .select2-selection--single {\n border: 1px solid #d2d6de;\n border-radius: 0;\n padding: 6px 12px;\n height: 34px;\n}\n\n.form-group.has-error label, .form-group.has-error .help-block {\n color: #a94442;\n}\n\n.select2-container--default .select2-selection--multiple {\n border-radius: 0px;\n}\n\n@media screen and (max-width: 511px){\n .tab-content .tab-pane .alert-block {\n margin-top: 120px\n }\n .sidebar-menu{\n margin-top:160px;\n }\n}\n@media screen and (max-width: 912px) and (min-width: 512px){\n .sidebar-menu {\n margin-top:100px\n }\n .navbar-custom-menu > .navbar-nav > li.dropdown.user.user-menu {\n float:right;\n }\n .navbar-custom-menu > .navbar-nav > li > .dropdown-menu {\n margin-right:-39px;\n }\n}\n\n@media screen and (max-width: 1268px) and (min-width: 912px){\n .sidebar-menu {\n margin-top:50px\n }\n}\n@media screen and (max-width: 992px){\n .info-stack-container {\n flex-direction: column;\n }\n .col-md-3.col-xs-12.col-sm-push-9.info-stack{\n left:auto;\n order:1;\n }\n .col-md-9.col-xs-12.col-sm-pull-3.info-stack{\n right:auto;\n order:2;\n }\n .info-stack-container > .col-md-9.col-xs-12.col-sm-pull-3.info-stack > .row-new-striped > .row > .col-sm-2{\n width:auto;\n float:none;\n }\n}\n@media screen and (max-width: 992px){\n .row-new-striped div{\n width:100%;\n }\n}\n\n@media screen and (max-width: 1318px) and (min-width: 1200px){\n .admin.box{\n height:170px;\n }\n}\n@media screen and (max-width: 1494px) and (min-width: 1200px){\n .dashboard.small-box{\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: 188px;\n display: block;\n overflow: hidden;\n }\n}\n\n/** Form-stuff overrides for checkboxes and stuff **/\n\nlabel.form-control {\n display: grid;\n grid-template-columns: 1.8em auto;\n gap: 0.5em;\n border: 0px;\n padding-left: 0px;\n background-color: inherit;\n color: inherit;\n font-size: inherit;\n font-weight: inherit;\n}\n\nlabel.form-control--disabled {\n color: #959495;\n cursor: not-allowed;\n}\n\n\n/** --------------------------------------- **/\n/** Start checkbox styles to replace iCheck **/\n/** --------------------------------------- **/\ninput[type=\"checkbox\"] {\n /* Add if not using autoprefixer */\n -webkit-appearance: none;\n appearance: none;\n /* For iOS < 15 to remove gradient background */\n background-color: #fff;\n /* Not removed via appearance */\n margin: 0;\n font: inherit;\n color: #959495;\n width: 1.8em;\n height: 1.8em;\n border: 0.05em solid;\n border-radius: 0em;\n transform: translateY(-0.075em);\n display: grid;\n place-content: center;\n /*Windows High Contrast Mode*/\n}\n\n/** This sets the display of a checkbox, and what the \"fill\" checkmark should look like */\n\ninput[type=\"checkbox\"]::before {\n\n /** If you want to use the non-checkbox, filled square, use this instead **/\n content: \"\";\n width: 1em;\n height: 1em;\n transform: scale(0);\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em rgb(211, 211, 211);\n\n content: \"\";\n width: 1em;\n height: 1em;\n clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);\n transform: scale(0);\n transform-origin: bottom left;\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em #428bca;\n /* Windows High Contrast Mode */\n background-color: CanvasText;\n}\n\n/** This sets the size of the scale up for the shape we defined above **/\ninput[type=\"checkbox\"]:checked::before {\n transform: scale(1);\n}\n\n/** This sets the scale and color of the DISABLED but CHECKED checkbox */\ninput[type=checkbox]:disabled::before, input[type=radio]:disabled::before {\n content: \"\";\n width: 1em;\n height: 1em;\n transform: scale(1);\n box-shadow: inset 1em 1em rgb(211, 211, 211);\n}\n\n/* This sets the scale and style of a DISABLED checkbox that is NOT checked */\ninput[type=checkbox]:disabled:not(:checked)::before, input[type=radio]:disabled:not(:checked)::before {\n content: \"\";\n transform: scale(0);\n cursor: not-allowed;\n pointer-events:none;\n}\n\n/** this is the color of the checkbox and content on a disabled, checked box **/\ninput[type=checkbox]:disabled, input[type=radio]:disabled {\n --form-control-color: rgb(211, 211, 211);\n color: #959495;\n cursor: not-allowed;\n pointer-events:none;\n}\n\n\n/** Radio styles to replace iCheck **/\n\ninput[type=\"radio\"] {\n appearance: none;\n background-color: #fff;\n margin: 0;\n font: inherit;\n color: #959495;\n width: 1.8em;\n height: 1.8em;\n border: 0.05em solid;\n border-radius: 50%;\n transform: translateY(-0.075em);\n display: grid;\n place-content: center;\n}\n\ninput[type=\"radio\"]::before {\n content: \"\";\n width: 1em;\n height: 1em;\n border-radius: 50%;\n transform: scale(0);\n transition: 120ms transform ease-in-out;\n box-shadow: inset 1em 1em #428bca;\n}\n\ninput[type=\"radio\"]:checked::before {\n transform: scale(1);\n}\n\n\n/**\n* This addresses the column selector in bootstrap-table. Without these two lines, the\n* checkbox and the with the label text that BS tables generates will\n* end up on two different lines and it looks assy.\n */\n.dropdown-item-marker input[type=checkbox] {\n font-size: 10px;\n}\n\n.bootstrap-table .fixed-table-toolbar li.dropdown-item-marker label {\n font-weight: normal;\n display: grid;\n grid-template-columns: .1em auto;\n gap: 1.5em;\n}\n\n.container.row-striped .col-md-6 {\n overflow-wrap:anywhere;\n}\n\n.nav-tabs-custom > .nav-tabs > li {\n z-index: 1;\n}\n\n.select2-container .select2-search--inline .select2-search__field{\n padding-left:15px;\n}\n\n.nav-tabs-custom > .nav-tabs > li.active {\n font-weight: bold;\n}\n\n/** --------------------------------------- **/\n/** End checkbox styles to replace iCheck **/\n/** --------------------------------------- **/\n\n/**\n/** Separator styles with text in the middle. Currently only used by the login page but\n/** could be used elsewhere.\n */\n\n.separator {\n display: flex;\n align-items: center;\n text-align: center;\n padding-top: 20px;\n color: #959495;\n}\n\n.separator::before,\n.separator::after {\n content: '';\n flex: 1;\n border-bottom: 1px solid #959495;\n}\n\n.separator:not(:empty)::before {\n margin-right: .25em;\n}\n\n.separator:not(:empty)::after {\n margin-left: .25em;\n}\n.datepicker.dropdown-menu {\n z-index: 1030 !important;\n}\n\n.sidebar-menu > li .badge {\n margin-top: 0px;\n filter: brightness(70%);\n font-size: 70%;\n}\n\n/** this is needed to override ekko-lightboxes card view styles **/\n.bootstrap-table .fixed-table-container .table tbody tr .card-view {\n display: table-row !important;\n}\n\n.form-control-static {\n padding-top: 0px;\n}\n\n\ntd.text-right.text-padding-number-cell {\n padding-right: 30px !important;\n white-space: nowrap;\n}\n\nth.text-right.text-padding-number-footer-cell {\n padding-right: 20px !important;\n white-space: nowrap;\n}\n\ncode.single-line {\n white-space: pre-wrap;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n max-width: 400px;\n}\n\np.monospace, span.monospace {\n font-family: monospace, monospace;\n}\n\nlegend.highlight {\n background: repeating-linear-gradient(\n 45deg,\n #222d32,\n #222d32 10px,\n #444 10px,\n #444 11px\n );\n\n color: #fff;\n font-size: 18px;\n padding: 6px 6px 6px 10px;\n}\n\nlegend.highlight a {\n color: #fff;\n cursor: pointer;\n}\n\nfieldset.bottom-padded {\n padding-bottom: 20px;\n}\n\ncaption.tableCaption {\n font-size: 18px;\n padding-left: 8px;\n}\n\n// via https://github.com/grokability/snipe-it/issues/11754\n.sidebar-toggle.btn {\n border-radius: 3px;\n box-shadow: none;\n border-top: 0px solid transparent;\n border-bottom: 0px solid transparent;\n padding-left: 15px;\n padding-right: 15px;\n padding-top: 12px;\n padding-bottom: 12px;\n margin-left: -47px;\n margin-top: 2px;\n}\n.popover.help-popover,\n.popover.help-popover .popover-content,\n.popover.help-popover .popover-body,\n.popover.help-popover .popover-title,\n.popover.help-popover .popover-header {\n color: #000;\n}\n\n.visually-hidden {\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n clip: rect(0,0,0,0);\n white-space: preserve;\n display: inline-block;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/public/css/dist/all.css b/public/css/dist/all.css index d1e70a98a585..5e982e38ca8b 100644 --- a/public/css/dist/all.css +++ b/public/css/dist/all.css @@ -21642,9 +21642,6 @@ a.accordion-header { padding: 0px; /* adjust based on your layout */ } -.skin-blue .main-header .navbar .dropdown-menu li a { - color: #333; -} a.logo.no-hover a:hover { background-color: transparent; } diff --git a/public/mix-manifest.json b/public/mix-manifest.json index aed697518711..01d7e81d27f2 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -3,7 +3,7 @@ "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=42f97cd5b9ee7521b04a448e7fc16ac9", "/css/dist/skins/_all-skins.css": "/css/dist/skins/_all-skins.css?id=d81a7ed323f68a7c5e3e9115f7fb5404", "/css/build/overrides.css": "/css/build/overrides.css?id=257e65d85ce9cf5a413065df1b131c03", - "/css/build/app.css": "/css/build/app.css?id=a1136819126f6c7c3cd37861d69abb84", + "/css/build/app.css": "/css/build/app.css?id=3dcb1500ec5991cc4058fd5e4d9b8b49", "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=ee0ed88465dd878588ed044eefb67723", "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=3d8a3d2035ea28aaad4a703c2646f515", "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=3979929a3423ff35b96b1fc84299fdf3", @@ -19,7 +19,7 @@ "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=b2cd9f59d7e8587939ce27b2d3363d82", "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=7277edd636cf46aa7786a4449ce0ead7", "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=cbd06cc1d58197ccc81d4376bbaf0d28", - "/css/dist/all.css": "/css/dist/all.css?id=4130f13eb82937aa7147bd89f93aaca5", + "/css/dist/all.css": "/css/dist/all.css?id=a6b8969f0f70c07cf740f30bb7139b45", "/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced1cf5f13147f7", "/js/select2/i18n/af.js": "/js/select2/i18n/af.js?id=4f6fcd73488ce79fae1b7a90aceaecde",