├── .gitignore ├── screens ├── Login.png ├── Users.png ├── Profile.png ├── Tables.png ├── Dashboard.png ├── Register.png └── intro-white.gif ├── src ├── white-stubs │ ├── resources │ │ ├── assets │ │ │ ├── img │ │ │ │ ├── bg5.jpg │ │ │ │ ├── anime3.png │ │ │ │ ├── anime6.png │ │ │ │ ├── emilyz.jpg │ │ │ │ ├── header.jpg │ │ │ │ ├── james.jpg │ │ │ │ ├── mike.jpg │ │ │ │ ├── favicon.png │ │ │ │ ├── img_3115.jpg │ │ │ │ ├── apple-icon.png │ │ │ │ ├── card-primary.png │ │ │ │ └── default-avatar.png │ │ │ ├── fonts │ │ │ │ ├── nucleo.eot │ │ │ │ ├── nucleo.ttf │ │ │ │ ├── nucleo.woff │ │ │ │ └── nucleo.woff2 │ │ │ ├── css │ │ │ │ ├── theme.css │ │ │ │ └── nucleo-icons.css │ │ │ ├── demo │ │ │ │ └── demo.css │ │ │ └── js │ │ │ │ ├── white-dashboard.js.map │ │ │ │ ├── white-dashboard.min.js │ │ │ │ ├── white-dashboard.js │ │ │ │ ├── plugins │ │ │ │ ├── bootstrap-notify.js │ │ │ │ └── perfect-scrollbar.jquery.min.js │ │ │ │ └── core │ │ │ │ └── popper.min.js │ │ └── views │ │ │ ├── alerts │ │ │ ├── feedback.blade.php │ │ │ └── success.blade.php │ │ │ ├── layouts │ │ │ ├── navbars │ │ │ │ ├── navbar.blade.php │ │ │ │ ├── navs │ │ │ │ │ ├── guest.blade.php │ │ │ │ │ └── auth.blade.php │ │ │ │ └── sidebar.blade.php │ │ │ ├── footer.blade.php │ │ │ └── app.blade.php │ │ │ ├── pages │ │ │ ├── map.blade.php │ │ │ ├── maps.blade.php │ │ │ ├── notifications.blade.php │ │ │ ├── upgrade.blade.php │ │ │ ├── typography.blade.php │ │ │ ├── tables.blade.php │ │ │ └── table_list.blade.php │ │ │ ├── welcome.blade.php │ │ │ ├── auth │ │ │ ├── passwords │ │ │ │ ├── email.blade.php │ │ │ │ └── reset.blade.php │ │ │ ├── verify.blade.php │ │ │ ├── login.blade.php │ │ │ └── register.blade.php │ │ │ ├── profile │ │ │ └── edit.blade.php │ │ │ └── dashboard.blade.php │ ├── database │ │ └── seeds │ │ │ ├── DatabaseSeeder.php │ │ │ └── UsersTableSeeder.php │ └── app │ │ ├── Http │ │ ├── Controllers │ │ │ ├── UserController.php │ │ │ ├── HomeController.php │ │ │ ├── ProfileController.php │ │ │ ├── PageController.php │ │ │ └── Auth │ │ │ │ └── RegisterController.php │ │ └── Requests │ │ │ ├── ProfileRequest.php │ │ │ ├── UserRequest.php │ │ │ └── PasswordRequest.php │ │ └── Rules │ │ └── CurrentPasswordCheckRule.php ├── WhitePresetServiceProvider.php └── WhitePreset.php ├── changelog.md ├── composer.json ├── license.md └── ISSUE_TEMPLATE.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.vscode -------------------------------------------------------------------------------- /screens/Login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/Login.png -------------------------------------------------------------------------------- /screens/Users.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/Users.png -------------------------------------------------------------------------------- /screens/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/Profile.png -------------------------------------------------------------------------------- /screens/Tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/Tables.png -------------------------------------------------------------------------------- /screens/Dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/Dashboard.png -------------------------------------------------------------------------------- /screens/Register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/Register.png -------------------------------------------------------------------------------- /screens/intro-white.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/screens/intro-white.gif -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/bg5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/bg5.jpg -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/anime3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/anime3.png -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/anime6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/anime6.png -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/emilyz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/emilyz.jpg -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/header.jpg -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/james.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/james.jpg -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/mike.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/mike.jpg -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/fonts/nucleo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/fonts/nucleo.eot -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/fonts/nucleo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/fonts/nucleo.ttf -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/favicon.png -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/img_3115.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/img_3115.jpg -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/fonts/nucleo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/fonts/nucleo.woff -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/fonts/nucleo.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/fonts/nucleo.woff2 -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/apple-icon.png -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/card-primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/card-primary.png -------------------------------------------------------------------------------- /src/white-stubs/resources/views/alerts/feedback.blade.php: -------------------------------------------------------------------------------- 1 | @if ($errors->has($field)) 2 | {{ $errors->first($field) }} 3 | @endif 4 | -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/img/default-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/creativetimofficial/white-dashboard-laravel/HEAD/src/white-stubs/resources/assets/img/default-avatar.png -------------------------------------------------------------------------------- /src/white-stubs/resources/views/alerts/success.blade.php: -------------------------------------------------------------------------------- 1 | @if (session($key ?? 'status')) 2 | 5 | @endif 6 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/layouts/navbars/navbar.blade.php: -------------------------------------------------------------------------------- 1 | @auth() 2 | @include('layouts.navbars.navs.auth') 3 | @endauth 4 | 5 | @guest() 6 | @include('layouts.navbars.navs.guest') 7 | @endguest 8 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/map.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['activePage' => 'map', 'titlePage' => __('Map')]) 2 | 3 | @section('content') 4 |
5 | @endsection 6 | 7 | @push('js') 8 | 14 | @endpush -------------------------------------------------------------------------------- /src/white-stubs/database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call([UsersTableSeeder::class]); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to `White Dashboard` frontend preset for Laravel will be documented in this file. 4 | 5 | ## Version 1.0.0 6 | 7 | ### Added 8 | - White Dashboard v1.0.0 frontend theme 9 | - Laravel Auth preset 10 | - Change user profile 11 | - User CRUD 12 | 13 | ## Version 1.0.1 - 2019-09-23 14 | - Update to Laravel 6.x 15 | 16 | ## Version 1.0.2 - 2020-03-18 17 | - Update to Laravel 7.x 18 | 19 | ## Version 1.0.3 - 2020-09-23 20 | - Update to Laravel 8.x 21 | 22 | ## Version 1.0.4 - 2022-03-28 23 | - Update to Laravel 9.x 24 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Controllers/UserController.php: -------------------------------------------------------------------------------- 1 | $model->paginate(15)]); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Controllers/HomeController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 15 | } 16 | 17 | /** 18 | * Show the application dashboard. 19 | * 20 | * @return \Illuminate\View\View 21 | */ 22 | public function index() 23 | { 24 | return view('dashboard'); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/welcome.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
9 |

{{ __('Welcome!') }}

10 |

11 | {{ __('Use White Dashboard theme to create a great project.') }} 12 |

13 |
14 |
15 |
16 |
17 |
18 | @endsection 19 | -------------------------------------------------------------------------------- /src/white-stubs/database/seeds/UsersTableSeeder.php: -------------------------------------------------------------------------------- 1 | insert([ 18 | 'id' => 1, 19 | 'name' => 'Admin Admin', 20 | 'email' => 'admin@white.com', 21 | 'email_verified_at' => now(), 22 | 'password' => Hash::make('secret'), 23 | 'created_at' => now(), 24 | 'updated_at' => now() 25 | ]); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "laravel-frontend-presets/white-dashboard", 3 | "description": "Laravel 10.x Front-end preset for white dashboard", 4 | "license": "MIT", 5 | "homepage": "https://github.com/creativetimofficial/white-dashboard-laravel", 6 | "keywords": ["Laravel", "Preset", "White"], 7 | "require": { 8 | "laravel/framework": "^10.0", 9 | "laravel/legacy-factories": "^1.0" 10 | }, 11 | "autoload": { 12 | "psr-4": { 13 | "LaravelFrontendPresets\\WhitePreset\\": "src/" 14 | } 15 | }, 16 | "extra": { 17 | "laravel": { 18 | "providers": [ 19 | "LaravelFrontendPresets\\WhitePreset\\WhitePresetServiceProvider" 20 | ] 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/white-stubs/app/Rules/CurrentPasswordCheckRule.php: -------------------------------------------------------------------------------- 1 | user()->password); 20 | } 21 | 22 | /** 23 | * Get the validation error message. 24 | * 25 | * @return string 26 | */ 27 | public function message() 28 | { 29 | return __('The current password field does not match your password'); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Requests/ProfileRequest.php: -------------------------------------------------------------------------------- 1 | check(); 19 | } 20 | 21 | /** 22 | * Get the validation rules that apply to the request. 23 | * 24 | * @return array 25 | */ 26 | public function rules() 27 | { 28 | return [ 29 | 'name' => ['required', 'min:3'], 30 | 'email' => ['required', 'email', Rule::unique((new User)->getTable())->ignore(auth()->id())], 31 | ]; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/WhitePresetServiceProvider.php: -------------------------------------------------------------------------------- 1 | info('White Dashboard scaffolding installed successfully.'); 23 | }); 24 | } 25 | 26 | /** 27 | * Register any package services. 28 | * 29 | * @return void 30 | */ 31 | public function register() 32 | { 33 | // 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/maps.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['page' => __('Maps'), 'pageSlug' => 'maps']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 | Google Maps 9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | @endsection 17 | 18 | @push('js') 19 | 20 | 21 | 27 | @endpush 28 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Requests/UserRequest.php: -------------------------------------------------------------------------------- 1 | check(); 19 | } 20 | 21 | /** 22 | * Get the validation rules that apply to the request. 23 | * 24 | * @return array 25 | */ 26 | public function rules() 27 | { 28 | return [ 29 | 'name' => [ 30 | 'required', 'min:3' 31 | ], 32 | 'email' => [ 33 | 'required', 'email', Rule::unique((new User)->getTable())->ignore($this->route()->user->id ?? null) 34 | ], 35 | 'password' => [ 36 | $this->route()->user ? 'required_with:password_confirmation' : 'required', 'nullable', 'confirmed', 'min:6' 37 | ], 38 | ]; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Creative Tim (https://www.creative-tim.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | 3 | Please answer the following questions for yourself before submitting an issue. 4 | 5 | - [ ] I am running the latest version 6 | - [ ] I checked the documentation and found no answer 7 | - [ ] I checked to make sure that this issue has not already been filed 8 | - [ ] I'm reporting the issue to the correct repository (for multi-repository projects) 9 | 10 | # Expected Behavior 11 | 12 | Please describe the behavior you are expecting 13 | 14 | # Current Behavior 15 | 16 | What is the current behavior? 17 | 18 | # Failure Information (for bugs) 19 | 20 | Please help provide information about the failure if this is a bug. If it is not a bug, please remove the rest of this template. 21 | 22 | ## Steps to Reproduce 23 | 24 | Please provide detailed steps for reproducing the issue. 25 | 26 | 1. step 1 27 | 2. step 2 28 | 3. you get it... 29 | 30 | ## Context 31 | 32 | Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. 33 | 34 | * Device: 35 | * Operating System: 36 | * Browser and Version: 37 | 38 | ## Failure Logs 39 | 40 | Please include any relevant log snippets or files here. 41 | -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/css/theme.css: -------------------------------------------------------------------------------- 1 | .tim-row { 2 | margin-bottom: 20px; 3 | } 4 | 5 | .tim-white-buttons { 6 | background-color: #777777; 7 | } 8 | 9 | .typography-line { 10 | padding-left: 25%; 11 | margin-bottom: 35px; 12 | position: relative; 13 | display: block; 14 | width: 100%; 15 | } 16 | 17 | .typography-line span { 18 | bottom: 10px; 19 | color: #c0c1c2; 20 | display: block; 21 | font-weight: 400; 22 | font-size: 13px; 23 | line-height: 13px; 24 | left: 0; 25 | position: absolute; 26 | width: 260px; 27 | text-transform: none; 28 | } 29 | 30 | .tim-row { 31 | padding-top: 60px; 32 | } 33 | 34 | .tim-row h3 { 35 | margin-top: 0; 36 | } 37 | 38 | .offline-doc .page-header { 39 | display: flex; 40 | align-items: center; 41 | } 42 | 43 | .offline-doc .footer { 44 | position: absolute; 45 | width: 100%; 46 | background: transparent; 47 | bottom: 0; 48 | color: #fff; 49 | z-index: 1; 50 | } 51 | 52 | @media all and (min-width: 992px) { 53 | .sidebar .nav>li.active-pro { 54 | position: absolute; 55 | width: 100%; 56 | bottom: 10px; 57 | } 58 | } 59 | 60 | .card.card-upgrade .card-category { 61 | max-width: 530px; 62 | margin: 0 auto; 63 | } -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/demo/demo.css: -------------------------------------------------------------------------------- 1 | .tim-row { 2 | margin-bottom: 20px; 3 | } 4 | 5 | .tim-white-buttons { 6 | background-color: #777777; 7 | } 8 | 9 | .typography-line { 10 | padding-left: 25%; 11 | margin-bottom: 35px; 12 | position: relative; 13 | display: block; 14 | width: 100%; 15 | } 16 | 17 | .typography-line span { 18 | bottom: 10px; 19 | color: #c0c1c2; 20 | display: block; 21 | font-weight: 400; 22 | font-size: 13px; 23 | line-height: 13px; 24 | left: 0; 25 | position: absolute; 26 | width: 260px; 27 | text-transform: none; 28 | } 29 | 30 | .tim-row { 31 | padding-top: 60px; 32 | } 33 | 34 | .tim-row h3 { 35 | margin-top: 0; 36 | } 37 | 38 | .offline-doc .page-header { 39 | display: flex; 40 | align-items: center; 41 | } 42 | 43 | .offline-doc .footer { 44 | position: absolute; 45 | width: 100%; 46 | background: transparent; 47 | bottom: 0; 48 | color: #fff; 49 | z-index: 1; 50 | } 51 | 52 | @media all and (min-width: 992px) { 53 | .sidebar .nav>li.active-pro { 54 | position: absolute; 55 | width: 100%; 56 | bottom: 10px; 57 | } 58 | } 59 | 60 | .card.card-upgrade .card-category { 61 | max-width: 530px; 62 | margin: 0 auto; 63 | } -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Requests/PasswordRequest.php: -------------------------------------------------------------------------------- 1 | check(); 18 | } 19 | 20 | /** 21 | * Get the validation rules that apply to the request. 22 | * 23 | * @return array 24 | */ 25 | public function rules() 26 | { 27 | return [ 28 | 'old_password' => ['required', 'min:6', new CurrentPasswordCheckRule], 29 | 'password' => ['required', 'min:6', 'confirmed', 'different:old_password'], 30 | 'password_confirmation' => ['required', 'min:6'], 31 | ]; 32 | } 33 | 34 | /** 35 | * Get the validation attributes that apply to the request. 36 | * 37 | * @return array 38 | */ 39 | public function attributes() 40 | { 41 | return [ 42 | 'old_password' => __('current password'), 43 | ]; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Controllers/ProfileController.php: -------------------------------------------------------------------------------- 1 | user()->update($request->all()); 30 | 31 | return back()->withStatus(__('Profile successfully updated.')); 32 | } 33 | 34 | /** 35 | * Change the password 36 | * 37 | * @param \App\Http\Requests\PasswordRequest $request 38 | * @return \Illuminate\Http\RedirectResponse 39 | */ 40 | public function password(PasswordRequest $request) 41 | { 42 | auth()->user()->update(['password' => Hash::make($request->get('password'))]); 43 | 44 | return back()->withPasswordStatus(__('Password successfully updated.')); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/layouts/footer.blade.php: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Controllers/PageController.php: -------------------------------------------------------------------------------- 1 | 'login-page', 'page' => _('Reset password'), 'contentClass' => 'login-page']) 2 | 3 | @section('content') 4 |
5 |
6 | @csrf 7 | 8 | 30 |
31 |
32 | @endsection 33 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/auth/verify.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['class' => 'bg-default']) 2 | 3 | @section('content') 4 | @include('layouts.headers.guest') 5 | 6 |
7 |
8 |
9 |
10 |
11 |
12 | {{ __('Verify Your Email Address') }} 13 |
14 |
15 | @if (session('resent')) 16 | 19 | @endif 20 | 21 | {{ __('Before proceeding, please check your email for a verification link.') }} 22 | 23 | @if (Route::has('verification.resend')) 24 | {{ __('If you did not receive the email') }}, 25 |
26 | @csrf 27 | . 28 |
29 | @endif 30 |
31 |
32 |
33 |
34 |
35 |
36 | @endsection 37 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/layouts/navbars/navs/guest.blade.php: -------------------------------------------------------------------------------- 1 | 39 | -------------------------------------------------------------------------------- /src/white-stubs/app/Http/Controllers/Auth/RegisterController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 41 | } 42 | 43 | /** 44 | * Get a validator for an incoming registration request. 45 | * 46 | * @param array $data 47 | * @return \Illuminate\Contracts\Validation\Validator 48 | */ 49 | protected function validator(array $data) 50 | { 51 | return Validator::make($data, [ 52 | 'name' => ['required', 'string', 'max:255'], 53 | 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 54 | 'password' => ['required', 'string', 'min:8', 'confirmed'], 55 | 'agree_terms_and_conditions' => ['required'], 56 | ]); 57 | } 58 | 59 | /** 60 | * Create a new user instance after a valid registration. 61 | * 62 | * @param array $data 63 | * @return \App\Models\User 64 | */ 65 | protected function create(array $data) 66 | { 67 | return User::create([ 68 | 'name' => $data['name'], 69 | 'email' => $data['email'], 70 | 'password' => Hash::make($data['password']), 71 | ]); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/auth/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['class' => 'login-page', 'page' => _('Reset password'), 'contentClass' => 'login-page']) 2 | 3 | @section('content') 4 |
5 |
6 | @csrf 7 | 8 | 49 |
50 |
51 | @endsection 52 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['class' => 'login-page', 'page' => _('Login Page'), 'contentClass' => 'login-page']) 2 | 3 | @section('content') 4 |
5 |

Log in to see how you can speed up your web development with out of the box CRUD for #User Management and more.

6 |
7 |
8 |
9 | @csrf 10 | 11 | 51 |
52 |
53 | @endsection 54 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/layouts/navbars/sidebar.blade.php: -------------------------------------------------------------------------------- 1 | 83 | -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/js/white-dashboard.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["_site_dashboard_free/assets/js/dashboard-free.js"],"names":["transparent","transparentDemo","fixedTop","navbar_initialized","backgroundOrange","sidebar_mini_active","toggle_initialized","$html","$","$body","$navbar_minimize_fixed","$collapse","$navbar","$tagsinput","$selectpicker","$navbar_color","$full_screen_map","$datetimepicker","$datepicker","$timepicker","seq","delays","durations","seq2","delays2","durations2","hexToRGB","hex","alpha","r","parseInt","slice","g","b","navigator","platform","indexOf","length","PerfectScrollbar","wheelSpeed","wheelPropagation","minScrollbarLength","suppressScrollX","each","this","addClass","document","ready","offset","window","scroll","scrollTop","css","top","on","closest","removeClass","blackDashboard","initMinimizeSidebar","scroll_distance","attr","checkScrollForTransparentNavbar","parent","$this","data_on_label","data","data_off_label","bootstrapSwitch","onText","offText","$toggle","misc","navbar_menu_visible","setTimeout","remove","appendTo","click","resize","isExpanded","find","hasClass","width","showSidebarMessage","simulateWindowResize","setInterval","dispatchEvent","Event","clearInterval","message","notify","icon","type","timer","placement","from","align","e","console","log"],"mappings":"AAAA,IAAIA,aAAc,EACdC,iBAAkB,EAClBC,UAAW,EAEXC,oBAAqB,EACrBC,kBAAmB,EACnBC,qBAAsB,EACtBC,oBAAqB,EAErBC,MAAQC,EAAE,QACVC,MAAQD,EAAE,QACVE,uBAAyBF,EAAE,0BAC3BG,UAAYH,EAAE,aACdI,QAAUJ,EAAE,WACZK,WAAaL,EAAE,cACfM,cAAgBN,EAAE,iBAClBO,cAAgBP,EAAE,4BAClBQ,iBAAmBR,EAAE,oBACrBS,gBAAkBT,EAAE,mBACpBU,YAAcV,EAAE,eAChBW,YAAcX,EAAE,eAEhBY,IAAM,EAAGC,OAAS,GAAIC,UAAY,IAClCC,KAAO,EAAGC,QAAU,GAAIC,WAAa,IAwNzC,SAASC,SAASC,EAAKC,GACnB,IAAIC,EAAIC,SAASH,EAAII,MAAM,EAAG,GAAI,IAC9BC,EAAIF,SAASH,EAAII,MAAM,EAAG,GAAI,IAC9BE,EAAIH,SAASH,EAAII,MAAM,EAAG,GAAI,IAElC,OAAIH,EACO,QAAUC,EAAI,KAAOG,EAAI,KAAOC,EAAI,KAAOL,EAAQ,IAEnD,OAASC,EAAI,KAAOG,EAAI,KAAOC,EAAI,KA7MlD,WAGI,IAFqD,EAArCC,UAAUC,SAASC,QAAQ,OAE7B,CAEX,GAA8B,GAA3B5B,EAAE,eAAe6B,OACX,IAAIC,iBAAiB,cAAc,CAC1CC,WAAY,EACZC,kBAAkB,EAClBC,mBAAoB,GACpBC,iBAAiB,IAIrB,GAA4C,GAAzClC,EAAE,6BAA6B6B,OAAY,CAElC,IAAIC,iBAAiB,6BAC/B9B,EAAE,qBAAqBmC,KAAK,WAChB,IAAIL,iBAAiB9B,EAAEoC,MAAM,MAMzCrC,MAAMsC,SAAS,6BAEftC,MAAMsC,SAAS,yBA1BtB,GA8BArC,EAAEsC,UAAUC,MAAM,WAEhB,IAEIC,EADYxC,EAAE,QACOwC,WACgC,EAArCd,UAAUC,SAASC,QAAQ,OAAc5B,EAAE,OAAOA,EAAEyC,SAC1DC,OAAO,WAID,GAFH1C,EAAEoC,MAAMO,YAGrB3C,EAAE,0BAA0B4C,IAAI,UAAW,KAE3C5C,EAAE,0BAA0B4C,IAAI,UAAW,OAK/C5C,EAAEsC,UAAUI,OAAO,WACF1C,EAAEoC,MAAMO,YACLH,EAAOK,IACvB7C,EAAE,0BAA0B4C,IAAI,UAAW,KAE3C5C,EAAE,0BAA0B4C,IAAI,UAAW,OAIX,GAAhC5C,EAAE,oBAAoB6B,QAAuC,GAAxB7B,EAAE,YAAY6B,QAErD7B,EAAE,aAAa8C,GAAG,mBAAoB,WAClC9C,EAAEoC,MAAMW,QAAQ,WAAWC,YAAY,sBAAsBX,SAAS,cACvES,GAAG,mBAAoB,WACtB9C,EAAEoC,MAAMW,QAAQ,WAAWV,SAAS,sBAAsBW,YAAY,cAI5EC,eAAeC,sBAEf9C,QAAUJ,EAAE,4BACZmD,gBAAkB/C,QAAQgD,KAAK,oBAAsB,IAGV,GAAxCpD,EAAE,4BAA4B6B,SAC7BoB,eAAeI,kCACfrD,EAAEyC,QAAQK,GAAG,SAAUG,eAAeI,kCAG1CrD,EAAE,iBAAiB8C,GAAG,QAAS,WAC3B9C,EAAEoC,MAAMkB,OAAO,gBAAgBjB,SAAS,uBACzCS,GAAG,OAAQ,WACV9C,EAAEoC,MAAMkB,OAAO,gBAAgBN,YAAY,uBAI/ChD,EAAE,qBAAqBmC,KAAK,WACxBoB,MAAQvD,EAAEoC,MACVoB,cAAgBD,MAAME,KAAK,aAAe,GAC1CC,eAAiBH,MAAME,KAAK,cAAgB,GAE5CF,MAAMI,gBAAgB,CAClBC,OAAQJ,cACRK,QAASH,qBAKnB1D,EAAEsC,UAAUQ,GAAG,QAAS,iBAAkB,WACtC,IAAIgB,EAAU9D,EAAEoC,MAEhB,GAA8C,GAA3Ca,eAAec,KAAKC,oBACnBjE,MAAMiD,YAAY,YAClBC,eAAec,KAAKC,oBAAsB,EAC1CC,WAAW,WACPH,EAAQd,YAAY,WACpBhD,EAAE,cAAckE,UACjB,SAEA,CACHD,WAAW,WACPH,EAAQzB,SAAS,YAClB,KAGHrC,EADU,iCACHmE,SAAS,QAAQC,MAAM,WAC1BrE,MAAMiD,YAAY,YAClBC,eAAec,KAAKC,oBAAsB,EACtCC,WAAW,WACPH,EAAQd,YAAY,WACpBhD,EAAE,cAAckE,UAClB,OAGVnE,MAAMsC,SAAS,YACfY,eAAec,KAAKC,oBAAsB,KAIlDhE,EAAEyC,QAAQ4B,OAAO,WAIb,GAFAzD,IAAMG,KAAO,EAEiB,GAA3BP,iBAAiBqB,QAAuC,GAAxB7B,EAAE,YAAY6B,OAAY,CAC3D,IAAIyC,EAAalE,QAAQmE,KAAK,4BAA4BnB,KAAK,iBAC3DhD,QAAQoE,SAAS,aAAmC,IAApBxE,EAAEyC,QAAQgC,QAC5CrE,QAAQ4C,YAAY,YAAYX,SAAS,sBAChCjC,QAAQoE,SAAS,uBAAyBxE,EAAEyC,QAAQgC,QAAU,KAAqB,SAAdH,GAC9ElE,QAAQiC,SAAS,YAAYW,YAAY,yBAKjDC,eAAiB,CACfc,KAAK,CACDC,oBAAqB,GAGzBd,oBAAoB,WACgB,GAA7BlD,EAAE,iBAAiB6B,SACpBhC,qBAAsB,GAGxBG,EAAE,oBAAoBoE,MAAM,WACbpE,EAAEoC,MAEa,GAAvBvC,qBACCG,EAAE,QAAQgD,YAAY,gBACtBnD,qBAAsB,EACtBoD,eAAeyB,mBAAmB,iCAElC1E,EAAE,QAAQqC,SAAS,gBACnBxC,qBAAsB,EACtBoD,eAAeyB,mBAAmB,8BAItC,IAAIC,EAAuBC,YAAY,WACnCnC,OAAOoC,cAAc,IAAIC,MAAM,YACjC,KAGFb,WAAW,WACPc,cAAcJ,IAChB,QAIVD,mBAAoB,SAASM,GAC3B,IACEhF,EAAEiF,OAAO,CACLC,KAAM,yBACNF,QAASA,GACT,CACEG,KAAM,OACNC,MAAO,IACPC,UAAW,CACPC,KAAM,MACNC,MAAO,WAGjB,MAAOC,GACPC,QAAQC,IAAI"} -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/js/white-dashboard.min.js: -------------------------------------------------------------------------------- 1 | var transparent=!0,transparentDemo=!0,fixedTop=!1,navbar_initialized=!1,backgroundOrange=!1,sidebar_mini_active=!1,toggle_initialized=!1,$html=$("html"),$body=$("body"),$navbar_minimize_fixed=$(".navbar-minimize-fixed"),$collapse=$(".collapse"),$navbar=$(".navbar"),$tagsinput=$(".tagsinput"),$selectpicker=$(".selectpicker"),$navbar_color=$(".navbar[color-on-scroll]"),$full_screen_map=$(".full-screen-map"),$datetimepicker=$(".datetimepicker"),$datepicker=$(".datepicker"),$timepicker=$(".timepicker"),seq=0,delays=80,durations=500,seq2=0,delays2=80,durations2=500;function hexToRGB(a,e){var i=parseInt(a.slice(1,3),16),n=parseInt(a.slice(3,5),16),s=parseInt(a.slice(5,7),16);return e?"rgba("+i+", "+n+", "+s+", "+e+")":"rgb("+i+", "+n+", "+s+")"}!function(){if(-1a.top?$(".navbar-minimize-fixed").css("opacity","1"):$(".navbar-minimize-fixed").css("opacity","0")}),0==$(".full-screen-map").length&&0==$(".bd-docs").length&&$(".collapse").on("show.bs.collapse",function(){$(this).closest(".navbar").removeClass("navbar-transparent").addClass("bg-white")}).on("hide.bs.collapse",function(){$(this).closest(".navbar").addClass("navbar-transparent").removeClass("bg-white")}),blackDashboard.initMinimizeSidebar(),$navbar=$(".navbar[color-on-scroll]"),scroll_distance=$navbar.attr("color-on-scroll")||500,0!=$(".navbar[color-on-scroll]").length&&(blackDashboard.checkScrollForTransparentNavbar(),$(window).on("scroll",blackDashboard.checkScrollForTransparentNavbar)),$(".form-control").on("focus",function(){$(this).parent(".input-group").addClass("input-group-focus")}).on("blur",function(){$(this).parent(".input-group").removeClass("input-group-focus")}),$(".bootstrap-switch").each(function(){$this=$(this),data_on_label=$this.data("on-label")||"",data_off_label=$this.data("off-label")||"",$this.bootstrapSwitch({onText:data_on_label,offText:data_off_label})})}),$(document).on("click",".navbar-toggle",function(){var a=$(this);if(1==blackDashboard.misc.navbar_menu_visible)$html.removeClass("nav-open"),blackDashboard.misc.navbar_menu_visible=0,setTimeout(function(){a.removeClass("toggled"),$(".bodyClick").remove()},550);else{setTimeout(function(){a.addClass("toggled")},580);$('
').appendTo("body").click(function(){$html.removeClass("nav-open"),blackDashboard.misc.navbar_menu_visible=0,setTimeout(function(){a.removeClass("toggled"),$(".bodyClick").remove()},550)}),$html.addClass("nav-open"),blackDashboard.misc.navbar_menu_visible=1}}),$(window).resize(function(){if(seq=seq2=0,0==$full_screen_map.length&&0==$(".bd-docs").length){var a=$navbar.find('[data-toggle="collapse"]').attr("aria-expanded");$navbar.hasClass("bg-white")&&991<$(window).width()?$navbar.removeClass("bg-white").addClass("navbar-transparent"):$navbar.hasClass("navbar-transparent")&&$(window).width()<991&&"false"!=a&&$navbar.addClass("bg-white").removeClass("navbar-transparent")}}),blackDashboard={misc:{navbar_menu_visible:0},initMinimizeSidebar:function(){0!=$(".sidebar-mini").length&&(sidebar_mini_active=!0),$("#minimizeSidebar").click(function(){$(this);1==sidebar_mini_active?($("body").removeClass("sidebar-mini"),sidebar_mini_active=!1,blackDashboard.showSidebarMessage("Sidebar mini deactivated...")):($("body").addClass("sidebar-mini"),sidebar_mini_active=!0,blackDashboard.showSidebarMessage("Sidebar mini activated..."));var a=setInterval(function(){window.dispatchEvent(new Event("resize"))},180);setTimeout(function(){clearInterval(a)},1e3)})},showSidebarMessage:function(a){try{$.notify({icon:"tim-icons ui-1_bell-53",message:a},{type:"info",timer:4e3,placement:{from:"top",align:"right"}})}catch(a){console.log("Notify library is missing, please make sure you have the notifications library added.")}}}; 2 | //# sourceMappingURL=_site_dashboard_free/assets/js/dashboard-free.js.map -------------------------------------------------------------------------------- /src/white-stubs/resources/views/layouts/navbars/navs/auth.blade.php: -------------------------------------------------------------------------------- 1 | 75 | 87 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/profile/edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['page' => __('User Profile'), 'pageSlug' => 'profile']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
{{ _('Edit Profile') }}
9 |
10 |
11 |
12 | @csrf 13 | @method('put') 14 | 15 | @include('alerts.success') 16 | 17 |
18 | 19 | 20 | @include('alerts.feedback', ['field' => 'name']) 21 |
22 | 23 |
24 | 25 | 26 | @include('alerts.feedback', ['field' => 'email']) 27 |
28 |
29 | 32 |
33 |
34 | 35 |
36 |
37 |
{{ _('Password') }}
38 |
39 |
40 |
41 | @csrf 42 | @method('put') 43 | 44 | @include('alerts.success', ['key' => 'password_status']) 45 | 46 |
47 | 48 | 49 | @include('alerts.feedback', ['field' => 'old_password']) 50 |
51 | 52 |
53 | 54 | 55 | @include('alerts.feedback', ['field' => 'password']) 56 |
57 |
58 | 59 | 60 |
61 |
62 | 65 |
66 |
67 |
68 |
69 |
70 |
71 |

72 |

73 |
74 |
75 |
76 |
77 | 78 | 79 |
{{ auth()->user()->name }}
80 |
81 |

82 | {{ _('Ceo/Co-Founder') }} 83 |

84 |
85 |

86 |
87 | {{ _('Do not be scared of the truth because we need to restart the human foundation in truth And I love you like Kanye loves Kanye I love Rick Owens’ bed design but the back is...') }} 88 |
89 |
90 | 103 |
104 |
105 |
106 | @endsection 107 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/notifications.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['page' => __('Notifications'), 'pageSlug' => 'notifications']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |

Notifications Style

9 |
10 |
11 |
12 | This is a plain notification 13 |
14 |
15 | 18 | This is a notification with close button. 19 |
20 |
21 | 24 | 25 | This is a notification with close button and icon. 26 |
27 |
28 | 31 | 32 | This is a notification with close button and icon and have many lines. You can see that the icon and the close button are always vertically aligned. This is a beautiful notification. So you don't have to worry about the style. 33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |

Notification states

41 |
42 |
43 |
44 | 47 | 48 | Primary - This is a regular notification made with ".alert-primary" 49 |
50 |
51 | 54 | 55 | Info - This is a regular notification made with ".alert-info" 56 |
57 |
58 | 61 | 62 | Success - This is a regular notification made with ".alert-success" 63 |
64 |
65 | 68 | 69 | Warning - This is a regular notification made with ".alert-warning" 70 |
71 |
72 | 75 | 76 | Danger - This is a regular notification made with ".alert-danger" 77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |

88 | Notifications Places 89 |

Click to view notifications

90 |

91 |
92 |
93 |
94 |
95 |
96 |
97 | 98 |
99 |
100 | 101 |
102 |
103 | 104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 | 113 |
114 |
115 | 116 |
117 |
118 | 119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | @endsection 128 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['class' => 'register-page', 'page' => _('Register Page'), 'contentClass' => 'register-page']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 | 9 |
10 |
11 |

{{ _('Marketing') }}

12 |

13 | {{ _('We\'ve created the marketing campaign of the website. It was a very interesting collaboration.') }} 14 |

15 |
16 |
17 |
18 |
19 | 20 |
21 |
22 |

{{ _('Fully Coded in HTML5') }}

23 |

24 | {{ _('We\'ve developed the website with HTML5 and CSS3. The client has access to the code using GitHub.') }} 25 |

26 |
27 |
28 |
29 |
30 | 31 |
32 |
33 |

{{ _('Built Audience') }}

34 |

35 | {{ _('There is also a Fully Customizable CMS Admin Dashboard for this product.') }} 36 |

37 |
38 |
39 |
40 |
41 |
42 |
43 | Card image 44 |

{{ _('Register') }}

45 |
46 |
47 | @csrf 48 | 49 |
50 |
51 |
52 |
53 | 54 |
55 |
56 | 57 | @include('alerts.feedback', ['field' => 'name']) 58 |
59 |
60 |
61 |
62 | 63 |
64 |
65 | 66 | @include('alerts.feedback', ['field' => 'email']) 67 |
68 |
69 |
70 |
71 | 72 |
73 |
74 | 75 | @include('alerts.feedback', ['field' => 'password']) 76 |
77 |
78 |
79 |
80 | 81 |
82 |
83 | 84 |
85 |
86 | 93 |
94 |
95 | 98 |
99 |
100 |
101 |
102 | @endsection 103 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/upgrade.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['page' => __('Upgrade'), 'pageSlug' => 'upgrade']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |

White Dashboard PRO

9 |

Are you looking for more components? Please check our Premium Version of White Dashboard PRO.

10 |
11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 115 | 118 | 119 | 120 |
FreePRO

Laravel

Login, Register, Forgot password pages
User profile
Users management
User roles management
Items management
Categories management, Tags management
Image upload, date picker inputs
Radio button, checkbox, toggle inputs

Frontend

Components16160
Plugins414
Example Pages728
Login, Register, Pricing, Lock Pages
DataTables, VectorMap, SweetAlert, Wizard, jQueryValidation, FullCalendar etc...
Mini Sidebar
Premium Support
FreeJust $149
113 | Current Version 114 | 116 | Upgrade to PRO 117 |
121 |
122 |
123 |
124 |
125 |
126 | @endsection 127 | -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/typography.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['page' => __('Typography'), 'pageSlug' => 'typography']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
White Table Heading
9 |

Created using Poppins Font Family

10 |
11 |
12 |
13 |

14 | Header 1The Life of White Dashboard

15 |
16 |
17 |

18 | Header 2The Life of White Dashboard

19 |
20 |
21 |

22 | Header 3The Life of White Dashboard

23 |
24 |
25 |

26 | Header 4The Life of White Dashboard

27 |
28 |
29 |
30 | Header 5The Life of White Dashboard
31 |
32 |
33 |
34 | Header 6The Life of White Dashboard
35 |
36 |
37 |

38 | Paragraph 39 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers. I understand culture. I am the nucleus. I think that’s a responsibility that I have, to push possibilities, to show people, this is the level that things could be at. 40 |

41 |
42 |
43 | Quote 44 |
45 |

46 | "I will be the leader of a company that ends up being worth billions of dollars, because I got the answers. I understand culture. I am the nucleus. I think that’s a responsibility that I have, to push possibilities, to show people, this is the level that things could be at." 47 |
48 |
49 | 50 | - Noaa 51 | 52 |

53 |
54 |
55 |
56 | Muted Text 57 |

58 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers... 59 |

60 |
61 |
62 | Primary Text 63 |

64 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

65 |
66 |
67 | Info Text 68 |

69 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

70 |
71 |
72 | Success Text 73 |

74 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

75 |
76 |
77 | Warning Text 78 |

79 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers... 80 |

81 |
82 |
83 | Danger Text 84 |

85 | I will be the leader of a company that ends up being worth billions of dollars, because I got the answers...

86 |
87 |
88 |

89 | Small Tag 90 | Header with small subtitle 91 |
92 | Use "small" tag for the headers 93 |

94 |
95 |
96 | Lists 97 |
98 |
99 |
Unordered List
100 |
    101 |
  • List Item
  • 102 |
  • List Item
  • 103 |
  • 104 |
      105 |
    • List Item
    • 106 |
    • List Item
    • 107 |
    • List Item
    • 108 |
    109 |
  • 110 |
  • List Item
  • 111 |
112 |
113 |
114 |
Ordered List
115 |
    116 |
  1. List Item
  2. 117 |
  3. List Item
  4. 118 |
  5. List item
  6. 119 |
  7. List Item
  8. 120 |
121 |
122 |
123 |
Unstyled List
124 |
    125 |
  • List Item
  • 126 |
  • List Item
  • 127 |
  • List item
  • 128 |
  • List Item
  • 129 |
130 |
131 |
132 |
Inline List
133 |
    134 |
  • List1
  • 135 |
  • List2
  • 136 |
  • List3
  • 137 |
138 |
139 |
140 |
141 |
142 | Code 143 |

This is 144 | .css-class-as-code, an example of an inline code element. Wrap inline code within a 145 | <code>...</code>tag. 146 |

147 |
1. #This is an example of preformatted text.
2. #Here is another line of code
148 |
149 |
150 |
151 |
152 |
153 | @endsection 154 | -------------------------------------------------------------------------------- /src/WhitePreset.php: -------------------------------------------------------------------------------- 1 | name('home')->middleware('auth');\n\n", 108 | FILE_APPEND 109 | ); 110 | 111 | // Copy white auth views from the stubs folder 112 | static::deleteResource('views/home.blade.php'); 113 | static::copyDirectory('resources/views/auth', resource_path('views/auth')); 114 | static::copyDirectory('resources/views/alerts', resource_path('views/alerts')); 115 | static::copyFile('app/Http/Controllers/Auth/RegisterController.php', app_path('Http/Controllers/Auth/RegisterController.php')); 116 | } 117 | 118 | /** 119 | * Copy user management and profile edit files 120 | * 121 | * @return void 122 | */ 123 | public static function addUserManagement() 124 | { 125 | // Add seeder, controllers, requests and rules 126 | static::copyDirectory('database/seeds', app_path('../database/seeders')); 127 | 128 | static::copyFile('app/Http/Controllers/UserController.php', app_path('Http/Controllers/UserController.php')); 129 | static::copyFile('app/Http/Controllers/ProfileController.php', app_path('Http/Controllers/ProfileController.php')); 130 | static::copyDirectory('app/Http/Requests', app_path('Http/Requests')); 131 | static::copyDirectory('app/Rules', app_path('Rules')); 132 | 133 | // Add routes 134 | file_put_contents( 135 | './routes/web.php', 136 | "Route::group(['middleware' => 'auth'], function () {\n\tRoute::resource('user', 'App\Http\Controllers\UserController', ['except' => ['show']]);\n\tRoute::get('profile', ['as' => 'profile.edit', 'uses' => 'App\Http\Controllers\ProfileController@edit']);\n\tRoute::put('profile', ['as' => 'profile.update', 'uses' => 'App\Http\Controllers\ProfileController@update']);\n\tRoute::put('profile/password', ['as' => 'profile.password', 'uses' => 'App\Http\Controllers\ProfileController@password']);\n});\n\n", 137 | FILE_APPEND 138 | ); 139 | 140 | // Copy views 141 | static::copyDirectory('resources/views/users', resource_path('views/users')); 142 | static::copyDirectory('resources/views/profile', resource_path('views/profile')); 143 | } 144 | 145 | /** 146 | * Copy internal pages files 147 | * 148 | * @return void 149 | */ 150 | public static function addPagesViews() 151 | { 152 | // Add routes 153 | file_put_contents( 154 | './routes/web.php', 155 | "Route::group(['middleware' => 'auth'], function () {\n\t\tRoute::get('icons', ['as' => 'pages.icons', 'uses' => 'App\Http\Controllers\PageController@icons']);\n\t\tRoute::get('maps', ['as' => 'pages.maps', 'uses' => 'App\Http\Controllers\PageController@maps']);\n\t\tRoute::get('notifications', ['as' => 'pages.notifications', 'uses' => 'App\Http\Controllers\PageController@notifications']);\n\t\tRoute::get('rtl', ['as' => 'pages.rtl', 'uses' => 'App\Http\Controllers\PageController@rtl']);\n\t\tRoute::get('tables', ['as' => 'pages.tables', 'uses' => 'App\Http\Controllers\PageController@tables']);\n\t\tRoute::get('typography', ['as' => 'pages.typography', 'uses' => 'App\Http\Controllers\PageController@typography']);\n\t\tRoute::get('upgrade', ['as' => 'pages.upgrade', 'uses' => 'App\Http\Controllers\PageController@upgrade']);\n});\n\n", 156 | FILE_APPEND 157 | ); 158 | 159 | static::copyFile('app/Http/Controllers/PageController.php', app_path('Http/Controllers/PageController.php')); 160 | 161 | // Copy views 162 | static::copyDirectory('resources/views/pages', resource_path('views/pages')); 163 | } 164 | 165 | /** 166 | * Delete a resource 167 | * 168 | * @param string $resource 169 | * @return void 170 | */ 171 | private static function deleteResource($resource) 172 | { 173 | (new Filesystem)->delete(resource_path($resource)); 174 | } 175 | 176 | /** 177 | * Copy a directory 178 | * 179 | * @param string $file 180 | * @param string $destination 181 | * @return void 182 | */ 183 | private static function copyFile($file, $destination) 184 | { 185 | (new Filesystem)->copy(static::STUBSPATH.$file, $destination); 186 | } 187 | 188 | /** 189 | * Copy a directory 190 | * 191 | * @param string $directory 192 | * @param string $destination 193 | * @return void 194 | */ 195 | private static function copyDirectory($directory, $destination) 196 | { 197 | (new Filesystem)->copyDirectory(static::STUBSPATH.$directory, $destination); 198 | } 199 | } -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/tables.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['page' => __('Tables'), 'pageSlug' => 'tables']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |

Simple Table

9 |
10 |
11 |
12 | 13 | 14 | 15 | 18 | 21 | 24 | 27 | 28 | 29 | 30 | 31 | 34 | 37 | 40 | 43 | 44 | 45 | 48 | 51 | 54 | 57 | 58 | 59 | 62 | 65 | 68 | 71 | 72 | 73 | 76 | 79 | 82 | 85 | 86 | 87 | 90 | 93 | 96 | 99 | 100 | 101 | 104 | 107 | 110 | 113 | 114 | 115 | 118 | 121 | 124 | 127 | 128 | 129 |
16 | Name 17 | 19 | Country 20 | 22 | City 23 | 25 | Salary 26 |
32 | Dakota Rice 33 | 35 | Niger 36 | 38 | Oud-Turnhout 39 | 41 | $36,738 42 |
46 | Minerva Hooper 47 | 49 | Curaçao 50 | 52 | Sinaai-Waas 53 | 55 | $23,789 56 |
60 | Sage Rodriguez 61 | 63 | Netherlands 64 | 66 | Baileux 67 | 69 | $56,142 70 |
74 | Philip Chaney 75 | 77 | Korea, South 78 | 80 | Overland Park 81 | 83 | $38,735 84 |
88 | Doris Greene 89 | 91 | Malawi 92 | 94 | Feldkirchen in Kärnten 95 | 97 | $63,542 98 |
102 | Mason Porter 103 | 105 | Chile 106 | 108 | Gloucester 109 | 111 | $78,615 112 |
116 | Jon Porter 117 | 119 | Portugal 120 | 122 | Gloucester 123 | 125 | $98,615 126 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |

Table on Plain Background

138 |

Here is a subtitle for this table

139 |
140 |
141 |
142 | 143 | 144 | 145 | 148 | 151 | 154 | 157 | 158 | 159 | 160 | 161 | 164 | 167 | 170 | 173 | 174 | 175 | 178 | 181 | 184 | 187 | 188 | 189 | 192 | 195 | 198 | 201 | 202 | 203 | 206 | 209 | 212 | 215 | 216 | 217 | 220 | 223 | 226 | 229 | 230 | 231 | 234 | 237 | 240 | 243 | 244 | 245 | 248 | 251 | 254 | 257 | 258 | 259 |
146 | Name 147 | 149 | Country 150 | 152 | City 153 | 155 | Salary 156 |
162 | Dakota Rice 163 | 165 | Niger 166 | 168 | Oud-Turnhout 169 | 171 | $36,738 172 |
176 | Minerva Hooper 177 | 179 | Curaçao 180 | 182 | Sinaai-Waas 183 | 185 | $23,789 186 |
190 | Sage Rodriguez 191 | 193 | Netherlands 194 | 196 | Baileux 197 | 199 | $56,142 200 |
204 | Philip Chaney 205 | 207 | Korea, South 208 | 210 | Overland Park 211 | 213 | $38,735 214 |
218 | Doris Greene 219 | 221 | Malawi 222 | 224 | Feldkirchen in Kärnten 225 | 227 | $63,542 228 |
232 | Mason Porter 233 | 235 | Chile 236 | 238 | Gloucester 239 | 241 | $78,615 242 |
246 | Jon Porter 247 | 249 | Portugal 250 | 252 | Gloucester 253 | 255 | $98,615 256 |
260 |
261 |
262 |
263 |
264 |
265 | @endsection 266 | -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/js/white-dashboard.js: -------------------------------------------------------------------------------- 1 | var transparent = true; 2 | var transparentDemo = true; 3 | var fixedTop = false; 4 | 5 | var navbar_initialized = false; 6 | var backgroundOrange = false; 7 | var sidebar_mini_active = false; 8 | var toggle_initialized = false; 9 | 10 | var $html = $('html'); 11 | var $body = $('body'); 12 | var $navbar_minimize_fixed = $('.navbar-minimize-fixed'); 13 | var $collapse = $('.collapse'); 14 | var $navbar = $('.navbar'); 15 | var $tagsinput = $('.tagsinput'); 16 | var $selectpicker = $('.selectpicker'); 17 | var $navbar_color = $('.navbar[color-on-scroll]'); 18 | var $full_screen_map = $('.full-screen-map'); 19 | var $datetimepicker = $('.datetimepicker'); 20 | var $datepicker = $('.datepicker'); 21 | var $timepicker = $('.timepicker'); 22 | 23 | var seq = 0, 24 | delays = 80, 25 | durations = 500; 26 | var seq2 = 0, 27 | delays2 = 80, 28 | durations2 = 500; 29 | 30 | /*! 31 | 32 | ========================================================= 33 | * White Dashboard - v1.0.0 34 | ========================================================= 35 | 36 | * Product Page: https://www.creative-tim.com/product/white-dashboard 37 | * Copyright 2018 Creative Tim (http://www.creative-tim.com) & UPDIVISION (https://updivision.com) 38 | 39 | * Coded by www.creative-tim.com & www.updivision.com 40 | 41 | ========================================================= 42 | 43 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 44 | 45 | */ 46 | 47 | (function() { 48 | var isWindows = navigator.platform.indexOf('Win') > -1 ? true : false; 49 | 50 | if (isWindows) { 51 | // if we are on windows OS we activate the perfectScrollbar function 52 | if ($('.main-panel').length != 0) { 53 | var ps = new PerfectScrollbar('.main-panel', { 54 | wheelSpeed: 2, 55 | wheelPropagation: true, 56 | minScrollbarLength: 20, 57 | suppressScrollX: true 58 | }); 59 | } 60 | 61 | if ($('.sidebar .sidebar-wrapper').length != 0) { 62 | 63 | var ps1 = new PerfectScrollbar('.sidebar .sidebar-wrapper'); 64 | $('.table-responsive').each(function() { 65 | var ps2 = new PerfectScrollbar($(this)[0]); 66 | }); 67 | } 68 | 69 | 70 | 71 | $html.addClass('perfect-scrollbar-on'); 72 | } else { 73 | $html.addClass('perfect-scrollbar-off'); 74 | } 75 | })(); 76 | 77 | $(document).ready(function() { 78 | 79 | var scroll_start = 0; 80 | var startchange = $('.row'); 81 | var offset = startchange.offset(); 82 | var scrollElement = navigator.platform.indexOf('Win') > -1 ? $(".ps") : $(window); 83 | scrollElement.scroll(function() { 84 | 85 | scroll_start = $(this).scrollTop(); 86 | 87 | if (scroll_start > 50) { 88 | $(".navbar-minimize-fixed").css('opacity', '1'); 89 | } else { 90 | $(".navbar-minimize-fixed").css('opacity', '0'); 91 | } 92 | }); 93 | 94 | 95 | $(document).scroll(function() { 96 | scroll_start = $(this).scrollTop(); 97 | if (scroll_start > offset.top) { 98 | $(".navbar-minimize-fixed").css('opacity', '1'); 99 | } else { 100 | $(".navbar-minimize-fixed").css('opacity', '0'); 101 | } 102 | }); 103 | 104 | if ($('.full-screen-map').length == 0 && $('.bd-docs').length == 0) { 105 | // On click navbar-collapse the menu will be white not transparent 106 | $('.collapse').on('show.bs.collapse', function() { 107 | $(this).closest('.navbar').removeClass('navbar-transparent').addClass('bg-white'); 108 | }).on('hide.bs.collapse', function() { 109 | $(this).closest('.navbar').addClass('navbar-transparent').removeClass('bg-white'); 110 | }); 111 | } 112 | 113 | blackDashboard.initMinimizeSidebar(); 114 | 115 | $navbar = $('.navbar[color-on-scroll]'); 116 | scroll_distance = $navbar.attr('color-on-scroll') || 500; 117 | 118 | // Check if we have the class "navbar-color-on-scroll" then add the function to remove the class "navbar-transparent" so it will transform to a plain color. 119 | if ($('.navbar[color-on-scroll]').length != 0) { 120 | blackDashboard.checkScrollForTransparentNavbar(); 121 | $(window).on('scroll', blackDashboard.checkScrollForTransparentNavbar) 122 | } 123 | 124 | $('.form-control').on("focus", function() { 125 | $(this).parent('.input-group').addClass("input-group-focus"); 126 | }).on("blur", function() { 127 | $(this).parent(".input-group").removeClass("input-group-focus"); 128 | }); 129 | 130 | // Activate bootstrapSwitch 131 | $('.bootstrap-switch').each(function() { 132 | $this = $(this); 133 | data_on_label = $this.data('on-label') || ''; 134 | data_off_label = $this.data('off-label') || ''; 135 | 136 | $this.bootstrapSwitch({ 137 | onText: data_on_label, 138 | offText: data_off_label 139 | }); 140 | }); 141 | }); 142 | 143 | $(document).on('click', '.navbar-toggle', function() { 144 | var $toggle = $(this); 145 | 146 | if (blackDashboard.misc.navbar_menu_visible == 1) { 147 | $html.removeClass('nav-open'); 148 | blackDashboard.misc.navbar_menu_visible = 0; 149 | setTimeout(function() { 150 | $toggle.removeClass('toggled'); 151 | $('.bodyClick').remove(); 152 | }, 550); 153 | 154 | } else { 155 | setTimeout(function() { 156 | $toggle.addClass('toggled'); 157 | }, 580); 158 | 159 | var div = '
'; 160 | $(div).appendTo('body').click(function() { 161 | $html.removeClass('nav-open'); 162 | blackDashboard.misc.navbar_menu_visible = 0; 163 | setTimeout(function() { 164 | $toggle.removeClass('toggled'); 165 | $('.bodyClick').remove(); 166 | }, 550); 167 | }); 168 | 169 | $html.addClass('nav-open'); 170 | blackDashboard.misc.navbar_menu_visible = 1; 171 | } 172 | }); 173 | 174 | $(window).resize(function() { 175 | // reset the seq for charts drawing animations 176 | seq = seq2 = 0; 177 | 178 | if ($full_screen_map.length == 0 && $('.bd-docs').length == 0) { 179 | var isExpanded = $navbar.find('[data-toggle="collapse"]').attr("aria-expanded"); 180 | if ($navbar.hasClass('bg-white') && $(window).width() > 991) { 181 | $navbar.removeClass('bg-white').addClass('navbar-transparent'); 182 | } else if ($navbar.hasClass('navbar-transparent') && $(window).width() < 991 && isExpanded != "false") { 183 | $navbar.addClass('bg-white').removeClass('navbar-transparent'); 184 | } 185 | } 186 | }); 187 | 188 | blackDashboard = { 189 | misc: { 190 | navbar_menu_visible: 0 191 | }, 192 | 193 | initMinimizeSidebar: function() { 194 | if ($('.sidebar-mini').length != 0) { 195 | sidebar_mini_active = true; 196 | } 197 | 198 | $('#minimizeSidebar').click(function() { 199 | var $btn = $(this); 200 | 201 | if (sidebar_mini_active == true) { 202 | $('body').removeClass('sidebar-mini'); 203 | sidebar_mini_active = false; 204 | blackDashboard.showSidebarMessage('Sidebar mini deactivated...'); 205 | } else { 206 | $('body').addClass('sidebar-mini'); 207 | sidebar_mini_active = true; 208 | blackDashboard.showSidebarMessage('Sidebar mini activated...'); 209 | } 210 | 211 | // we simulate the window Resize so the charts will get updated in realtime. 212 | var simulateWindowResize = setInterval(function() { 213 | window.dispatchEvent(new Event('resize')); 214 | }, 180); 215 | 216 | // we stop the simulation of Window Resize after the animations are completed 217 | setTimeout(function() { 218 | clearInterval(simulateWindowResize); 219 | }, 1000); 220 | }); 221 | }, 222 | 223 | showSidebarMessage: function(message) { 224 | try { 225 | $.notify({ 226 | icon: "tim-icons ui-1_bell-53", 227 | message: message 228 | }, { 229 | type: 'info', 230 | timer: 4000, 231 | placement: { 232 | from: 'top', 233 | align: 'right' 234 | } 235 | }); 236 | } catch (e) { 237 | console.log('Notify library is missing, please make sure you have the notifications library added.'); 238 | } 239 | 240 | } 241 | 242 | }; 243 | 244 | function hexToRGB(hex, alpha) { 245 | var r = parseInt(hex.slice(1, 3), 16), 246 | g = parseInt(hex.slice(3, 5), 16), 247 | b = parseInt(hex.slice(5, 7), 16); 248 | 249 | if (alpha) { 250 | return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")"; 251 | } else { 252 | return "rgb(" + r + ", " + g + ", " + b + ")"; 253 | } 254 | } -------------------------------------------------------------------------------- /src/white-stubs/resources/views/pages/table_list.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app', ['activePage' => 'table', 'titlePage' => __('Table List')]) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
9 |
10 |

Simple Table

11 |

Here is a subtitle for this table

12 |
13 |
14 |
15 | 16 | 17 | 20 | 23 | 26 | 29 | 32 | 33 | 34 | 35 | 38 | 41 | 44 | 47 | 50 | 51 | 52 | 55 | 58 | 61 | 64 | 67 | 68 | 69 | 72 | 75 | 78 | 81 | 84 | 85 | 86 | 89 | 92 | 95 | 98 | 101 | 102 | 103 | 106 | 109 | 112 | 115 | 118 | 119 | 120 | 123 | 126 | 129 | 132 | 135 | 136 | 137 |
18 | ID 19 | 21 | Name 22 | 24 | Country 25 | 27 | City 28 | 30 | Salary 31 |
36 | 1 37 | 39 | Dakota Rice 40 | 42 | Niger 43 | 45 | Oud-Turnhout 46 | 48 | $36,738 49 |
53 | 2 54 | 56 | Minerva Hooper 57 | 59 | Curaçao 60 | 62 | Sinaai-Waas 63 | 65 | $23,789 66 |
70 | 3 71 | 73 | Sage Rodriguez 74 | 76 | Netherlands 77 | 79 | Baileux 80 | 82 | $56,142 83 |
87 | 4 88 | 90 | Philip Chaney 91 | 93 | Korea, South 94 | 96 | Overland Park 97 | 99 | $38,735 100 |
104 | 5 105 | 107 | Doris Greene 108 | 110 | Malawi 111 | 113 | Feldkirchen in Kärnten 114 | 116 | $63,542 117 |
121 | 6 122 | 124 | Mason Porter 125 | 127 | Chile 128 | 130 | Gloucester 131 | 133 | $78,615 134 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |

Table on Plain Background

146 |

Here is a subtitle for this table

147 |
148 |
149 |
150 | 151 | 152 | 155 | 158 | 161 | 164 | 167 | 168 | 169 | 170 | 173 | 176 | 179 | 182 | 185 | 186 | 187 | 190 | 193 | 196 | 199 | 202 | 203 | 204 | 207 | 210 | 213 | 216 | 219 | 220 | 221 | 224 | 227 | 230 | 233 | 236 | 237 | 238 | 241 | 244 | 247 | 250 | 253 | 254 | 255 | 258 | 261 | 264 | 267 | 270 | 271 | 272 |
153 | ID 154 | 156 | Name 157 | 159 | Country 160 | 162 | City 163 | 165 | Salary 166 |
171 | 1 172 | 174 | Dakota Rice 175 | 177 | Niger 178 | 180 | Oud-Turnhout 181 | 183 | $36,738 184 |
188 | 2 189 | 191 | Minerva Hooper 192 | 194 | Curaçao 195 | 197 | Sinaai-Waas 198 | 200 | $23,789 201 |
205 | 3 206 | 208 | Sage Rodriguez 209 | 211 | Netherlands 212 | 214 | Baileux 215 | 217 | $56,142 218 |
222 | 4 223 | 225 | Philip Chaney 226 | 228 | Korea, South 229 | 231 | Overland Park 232 | 234 | $38,735 235 |
239 | 5 240 | 242 | Doris Greene 243 | 245 | Malawi 246 | 248 | Feldkirchen in Kärnten 249 | 251 | $63,542 252 |
256 | 6 257 | 259 | Mason Porter 260 | 262 | Chile 263 | 265 | Gloucester 266 | 268 | $78,615 269 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 | @endsection -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/css/nucleo-icons.css: -------------------------------------------------------------------------------- 1 | /* -------------------------------- 2 | 3 | Nucleo Outline Web Font - nucleoapp.com/ 4 | License - nucleoapp.com/license/ 5 | Created using IcoMoon - icomoon.io 6 | 7 | -------------------------------- */ 8 | 9 | @font-face { 10 | font-family: 'Nucleo'; 11 | src: url('../fonts/nucleo.eot'); 12 | src: url('../fonts/nucleo.eot') format('embedded-opentype'), url('../fonts/nucleo.woff2') format('woff2'), url('../fonts/nucleo.woff') format('woff'), url('../fonts/nucleo.ttf') format('truetype'), url('../fonts/nucleo.svg') format('svg'); 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | 17 | /*------------------------ 18 | base class definition 19 | -------------------------*/ 20 | 21 | .tim-icons { 22 | display: inline-block; 23 | font: normal normal normal 1em/1 'Nucleo'; 24 | vertical-align: middle; 25 | speak: none; 26 | text-transform: none; 27 | /* Better Font Rendering */ 28 | -webkit-font-smoothing: antialiased; 29 | -moz-osx-font-smoothing: grayscale; 30 | } 31 | 32 | .font-icon-detail { 33 | text-align: center; 34 | padding: 45px 0 30px; 35 | border: 1px solid #e44cc4; 36 | border-radius: .1875rem; 37 | margin: 15px 0; 38 | min-height: 168px; 39 | } 40 | 41 | .font-icon-detail i { 42 | color: #FFFFFF; 43 | font-size: 1.5em; 44 | } 45 | 46 | .font-icon-detail p { 47 | color: #e44cc4 !important; 48 | margin-top: 30px; 49 | padding: 0 10px; 50 | font-size: .7142em; 51 | } 52 | 53 | /*------------------------ 54 | change icon size 55 | -------------------------*/ 56 | 57 | .tim-icons-sm { 58 | font-size: 0.8em; 59 | } 60 | 61 | .tim-icons-lg { 62 | font-size: 1.2em; 63 | } 64 | 65 | /* absolute units */ 66 | 67 | .tim-icons-16 { 68 | font-size: 16px; 69 | } 70 | 71 | .tim-icons-32 { 72 | font-size: 32px; 73 | } 74 | 75 | /*---------------------------------- 76 | add a square/circle background 77 | -----------------------------------*/ 78 | 79 | .tim-icons-bg-square, 80 | .tim-icons-bg-circle { 81 | padding: 0.35em; 82 | } 83 | 84 | .tim-icons-bg-circle { 85 | border-radius: 50%; 86 | } 87 | 88 | /*------------------------ 89 | list icons 90 | -------------------------*/ 91 | 92 | /*------------------------ 93 | spinning icons 94 | -------------------------*/ 95 | 96 | .tim-icons-is-spinning { 97 | -webkit-animation: tim-icons-spin 2s infinite linear; 98 | -moz-animation: tim-icons-spin 2s infinite linear; 99 | animation: tim-icons-spin 2s infinite linear; 100 | } 101 | 102 | @-webkit-keyframes tim-icons-spin { 103 | 0% { 104 | -webkit-transform: rotate(0deg); 105 | } 106 | 100% { 107 | -webkit-transform: rotate(360deg); 108 | } 109 | } 110 | 111 | @-moz-keyframes tim-icons-spin { 112 | 0% { 113 | -moz-transform: rotate(0deg); 114 | } 115 | 100% { 116 | -moz-transform: rotate(360deg); 117 | } 118 | } 119 | 120 | @keyframes tim-icons-spin { 121 | 0% { 122 | -webkit-transform: rotate(0deg); 123 | -moz-transform: rotate(0deg); 124 | -ms-transform: rotate(0deg); 125 | -o-transform: rotate(0deg); 126 | transform: rotate(0deg); 127 | } 128 | 100% { 129 | -webkit-transform: rotate(360deg); 130 | -moz-transform: rotate(360deg); 131 | -ms-transform: rotate(360deg); 132 | -o-transform: rotate(360deg); 133 | transform: rotate(360deg); 134 | } 135 | } 136 | 137 | /*------------------------ 138 | rotated/flipped icons 139 | -------------------------*/ 140 | 141 | /*------------------------ 142 | icons 143 | -------------------------*/ 144 | 145 | .icon-alert-circle-exc::before { 146 | content: "\ea02"; 147 | } 148 | 149 | .icon-align-center::before { 150 | content: "\ea03"; 151 | } 152 | 153 | .icon-align-left-2::before { 154 | content: "\ea04"; 155 | } 156 | 157 | .icon-app::before { 158 | content: "\ea05"; 159 | } 160 | 161 | .icon-atom::before { 162 | content: "\ea06"; 163 | } 164 | 165 | .icon-attach-87::before { 166 | content: "\ea07"; 167 | } 168 | 169 | .icon-badge::before { 170 | content: "\ea08"; 171 | } 172 | 173 | .icon-bag-16::before { 174 | content: "\ea09"; 175 | } 176 | 177 | .icon-bank::before { 178 | content: "\ea0a"; 179 | } 180 | 181 | .icon-basket-simple::before { 182 | content: "\ea0b"; 183 | } 184 | 185 | .icon-bell-55::before { 186 | content: "\ea0c"; 187 | } 188 | 189 | .icon-bold::before { 190 | content: "\ea0d"; 191 | } 192 | 193 | .icon-book-bookmark::before { 194 | content: "\ea0e"; 195 | } 196 | 197 | .icon-bulb-63::before { 198 | content: "\ea0f"; 199 | } 200 | 201 | .icon-bullet-list-67::before { 202 | content: "\ea10"; 203 | } 204 | 205 | .icon-bus-front-12::before { 206 | content: "\ea11"; 207 | } 208 | 209 | .icon-button-pause::before { 210 | content: "\ea12"; 211 | } 212 | 213 | .icon-button-power::before { 214 | content: "\ea13"; 215 | } 216 | 217 | .icon-calendar-60::before { 218 | content: "\ea14"; 219 | } 220 | 221 | .icon-camera-18::before { 222 | content: "\ea15"; 223 | } 224 | 225 | .icon-caps-small::before { 226 | content: "\ea16"; 227 | } 228 | 229 | .icon-cart::before { 230 | content: "\ea17"; 231 | } 232 | 233 | .icon-chart-bar-32::before { 234 | content: "\ea18"; 235 | } 236 | 237 | .icon-chart-pie-36::before { 238 | content: "\ea19"; 239 | } 240 | 241 | .icon-chat-33::before { 242 | content: "\ea1a"; 243 | } 244 | 245 | .icon-check-2::before { 246 | content: "\ea1b"; 247 | } 248 | 249 | .icon-cloud-download-93::before { 250 | content: "\ea1c"; 251 | } 252 | 253 | .icon-cloud-upload-94::before { 254 | content: "\ea1d"; 255 | } 256 | 257 | .icon-coins::before { 258 | content: "\ea1e"; 259 | } 260 | 261 | .icon-compass-05::before { 262 | content: "\ea1f"; 263 | } 264 | 265 | .icon-controller::before { 266 | content: "\ea20"; 267 | } 268 | 269 | .icon-credit-card::before { 270 | content: "\ea21"; 271 | } 272 | 273 | .icon-delivery-fast::before { 274 | content: "\ea22"; 275 | } 276 | 277 | .icon-double-left::before { 278 | content: "\ea23"; 279 | } 280 | 281 | .icon-double-right::before { 282 | content: "\ea24"; 283 | } 284 | 285 | .icon-email-85::before { 286 | content: "\ea25"; 287 | } 288 | 289 | .icon-gift-2::before { 290 | content: "\ea26"; 291 | } 292 | 293 | .icon-globe-2::before { 294 | content: "\ea27"; 295 | } 296 | 297 | .icon-headphones::before { 298 | content: "\ea28"; 299 | } 300 | 301 | .icon-heart-2::before { 302 | content: "\ea29"; 303 | } 304 | 305 | .icon-html5::before { 306 | content: "\ea2a"; 307 | } 308 | 309 | .icon-image-02::before { 310 | content: "\ea2b"; 311 | } 312 | 313 | .icon-istanbul::before { 314 | content: "\ea2c"; 315 | } 316 | 317 | .icon-key-25::before { 318 | content: "\ea2d"; 319 | } 320 | 321 | .icon-laptop::before { 322 | content: "\ea2e"; 323 | } 324 | 325 | .icon-light-3::before { 326 | content: "\ea2f"; 327 | } 328 | 329 | .icon-link-72::before { 330 | content: "\ea30"; 331 | } 332 | 333 | .icon-lock-circle::before { 334 | content: "\ea31"; 335 | } 336 | 337 | .icon-map-big::before { 338 | content: "\ea32"; 339 | } 340 | 341 | .icon-minimal-down::before { 342 | content: "\ea33"; 343 | } 344 | 345 | .icon-minimal-left::before { 346 | content: "\ea34"; 347 | } 348 | 349 | .icon-minimal-right::before { 350 | content: "\ea35"; 351 | } 352 | 353 | .icon-minimal-up::before { 354 | content: "\ea36"; 355 | } 356 | 357 | .icon-mobile::before { 358 | content: "\ea37"; 359 | } 360 | 361 | .icon-molecule-40::before { 362 | content: "\ea38"; 363 | } 364 | 365 | .icon-money-coins::before { 366 | content: "\ea39"; 367 | } 368 | 369 | .icon-notes::before { 370 | content: "\ea3a"; 371 | } 372 | 373 | .icon-palette::before { 374 | content: "\ea3b"; 375 | } 376 | 377 | .icon-paper::before { 378 | content: "\ea3c"; 379 | } 380 | 381 | .icon-pencil::before { 382 | content: "\ea3d"; 383 | } 384 | 385 | .icon-pin::before { 386 | content: "\ea3e"; 387 | } 388 | 389 | .icon-planet::before { 390 | content: "\ea3f"; 391 | } 392 | 393 | .icon-puzzle-10::before { 394 | content: "\ea40"; 395 | } 396 | 397 | .icon-satisfied::before { 398 | content: "\ea41"; 399 | } 400 | 401 | .icon-scissors::before { 402 | content: "\ea42"; 403 | } 404 | 405 | .icon-send::before { 406 | content: "\ea43"; 407 | } 408 | 409 | .icon-settings-gear-63::before { 410 | content: "\ea44"; 411 | } 412 | 413 | .icon-settings::before { 414 | content: "\ea45"; 415 | } 416 | 417 | .icon-simple-add::before { 418 | content: "\ea46"; 419 | } 420 | 421 | .icon-simple-delete::before { 422 | content: "\ea47"; 423 | } 424 | 425 | .icon-simple-remove::before { 426 | content: "\ea48"; 427 | } 428 | 429 | .icon-single-02::before { 430 | content: "\ea49"; 431 | } 432 | 433 | .icon-single-copy-04::before { 434 | content: "\ea4a"; 435 | } 436 | 437 | .icon-sound-wave::before { 438 | content: "\ea4b"; 439 | } 440 | 441 | .icon-spaceship::before { 442 | content: "\ea4c"; 443 | } 444 | 445 | .icon-square-pin::before { 446 | content: "\ea4d"; 447 | } 448 | 449 | .icon-support-17::before { 450 | content: "\ea4e"; 451 | } 452 | 453 | .icon-tablet-2::before { 454 | content: "\ea4f"; 455 | } 456 | 457 | .icon-tag::before { 458 | content: "\ea50"; 459 | } 460 | 461 | .icon-tap-02::before { 462 | content: "\ea51"; 463 | } 464 | 465 | .icon-tie-bow::before { 466 | content: "\ea52"; 467 | } 468 | 469 | .icon-time-alarm::before { 470 | content: "\ea53"; 471 | } 472 | 473 | .icon-trash-simple::before { 474 | content: "\ea54"; 475 | } 476 | 477 | .icon-triangle-right-17::before { 478 | content: "\ea55"; 479 | } 480 | 481 | .icon-trophy::before { 482 | content: "\ea56"; 483 | } 484 | 485 | .icon-tv-2::before { 486 | content: "\ea57"; 487 | } 488 | 489 | .icon-upload::before { 490 | content: "\ea58"; 491 | } 492 | 493 | .icon-user-run::before { 494 | content: "\ea59"; 495 | } 496 | 497 | .icon-vector::before { 498 | content: "\ea5a"; 499 | } 500 | 501 | .icon-video-66::before { 502 | content: "\ea5b"; 503 | } 504 | 505 | .icon-volume-98::before { 506 | content: "\ea5c"; 507 | } 508 | 509 | .icon-wallet-43::before { 510 | content: "\ea5d"; 511 | } 512 | 513 | .icon-watch-time::before { 514 | content: "\ea5e"; 515 | } 516 | 517 | .icon-wifi::before { 518 | content: "\ea5f"; 519 | } 520 | 521 | .icon-world::before { 522 | content: "\ea60"; 523 | } 524 | 525 | .icon-zoom-split::before { 526 | content: "\ea61"; 527 | } 528 | 529 | .icon-refresh-01::before { 530 | content: "\ea62"; 531 | } 532 | 533 | .icon-refresh-02::before { 534 | content: "\ea63"; 535 | } 536 | 537 | .icon-shape-star::before { 538 | content: "\ea64"; 539 | } 540 | 541 | .icon-components::before { 542 | content: "\ea65"; 543 | } -------------------------------------------------------------------------------- /src/white-stubs/resources/views/layouts/app.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | {{ config('app.name', 'White Dashboard') }} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | @auth() 25 |
26 | @include('layouts.navbars.sidebar') 27 |
28 | @include('layouts.navbars.navbar') 29 | 30 |
31 | @yield('content') 32 |
33 | 34 | @include('layouts.footer') 35 |
36 |
37 | 40 | @else 41 | @include('layouts.navbars.navbar') 42 |
43 |
44 |
45 |
46 | @yield('content') 47 |
48 |
49 | @include('layouts.footer') 50 |
51 |
52 | @endauth 53 |
54 | 86 |
87 | 88 | 89 | 90 | 91 | 92 | 93 | {{-- --}} 94 | 95 | {{-- --}} 96 | 97 | 98 | 99 | 100 | 101 | 102 | @stack('js') 103 | 104 | 209 | @stack('js') 210 | 211 | 212 | -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/js/plugins/bootstrap-notify.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | 4 | 5 | Creative Tim Modifications 6 | 7 | Lines: 238, 239 was changed from top: 5px to top: 50% and we added margin-top: -13px. In this way the close button will be aligned vertically 8 | Line:222 - modified when the icon is set, we add the class "alert-with-icon", so there will be enough space for the icon. 9 | 10 | 11 | 12 | 13 | */ 14 | 15 | 16 | /* 17 | * Project: Bootstrap Notify = v3.1.5 18 | * Description: Turns standard Bootstrap alerts into "Growl-like" notifications. 19 | * Author: Mouse0270 aka Robert McIntosh 20 | * License: MIT License 21 | * Website: https://github.com/mouse0270/bootstrap-growl 22 | */ 23 | 24 | /* global define:false, require: false, jQuery:false */ 25 | 26 | (function(factory) { 27 | if (typeof define === 'function' && define.amd) { 28 | // AMD. Register as an anonymous module. 29 | define(['jquery'], factory); 30 | } else if (typeof exports === 'object') { 31 | // Node/CommonJS 32 | factory(require('jquery')); 33 | } else { 34 | // Browser globals 35 | factory(jQuery); 36 | } 37 | }(function($) { 38 | // Create the defaults once 39 | var defaults = { 40 | element: 'body', 41 | position: null, 42 | type: "info", 43 | allow_dismiss: true, 44 | allow_duplicates: true, 45 | newest_on_top: false, 46 | showProgressbar: false, 47 | placement: { 48 | from: "top", 49 | align: "right" 50 | }, 51 | offset: 20, 52 | spacing: 10, 53 | z_index: 1060, 54 | delay: 5000, 55 | timer: 1000, 56 | url_target: '_blank', 57 | mouse_over: null, 58 | animate: { 59 | enter: 'animated fadeInDown', 60 | exit: 'animated fadeOutUp' 61 | }, 62 | onShow: null, 63 | onShown: null, 64 | onClose: null, 65 | onClosed: null, 66 | onClick: null, 67 | icon_type: 'class', 68 | template: '' 69 | }; 70 | 71 | String.format = function() { 72 | var args = arguments; 73 | var str = arguments[0]; 74 | return str.replace(/(\{\{\d\}\}|\{\d\})/g, function(str) { 75 | if (str.substring(0, 2) === "{{") return str; 76 | var num = parseInt(str.match(/\d/)[0]); 77 | return args[num + 1]; 78 | }); 79 | }; 80 | 81 | function isDuplicateNotification(notification) { 82 | var isDupe = false; 83 | 84 | $('[data-notify="container"]').each(function(i, el) { 85 | var $el = $(el); 86 | var title = $el.find('[data-notify="title"]').html().trim(); 87 | var message = $el.find('[data-notify="message"]').html().trim(); 88 | 89 | // The input string might be different than the actual parsed HTML string! 90 | // (
vs
for example) 91 | // So we have to force-parse this as HTML here! 92 | var isSameTitle = title === $("
" + notification.settings.content.title + "
").html().trim(); 93 | var isSameMsg = message === $("
" + notification.settings.content.message + "
").html().trim(); 94 | var isSameType = $el.hasClass('alert-' + notification.settings.type); 95 | 96 | if (isSameTitle && isSameMsg && isSameType) { 97 | //we found the dupe. Set the var and stop checking. 98 | isDupe = true; 99 | } 100 | return !isDupe; 101 | }); 102 | 103 | return isDupe; 104 | } 105 | 106 | function Notify(element, content, options) { 107 | // Setup Content of Notify 108 | var contentObj = { 109 | content: { 110 | message: typeof content === 'object' ? content.message : content, 111 | title: content.title ? content.title : '', 112 | icon: content.icon ? content.icon : '', 113 | url: content.url ? content.url : '#', 114 | target: content.target ? content.target : '-' 115 | } 116 | }; 117 | 118 | options = $.extend(true, {}, contentObj, options); 119 | this.settings = $.extend(true, {}, defaults, options); 120 | this._defaults = defaults; 121 | if (this.settings.content.target === "-") { 122 | this.settings.content.target = this.settings.url_target; 123 | } 124 | this.animations = { 125 | start: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart', 126 | end: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend' 127 | }; 128 | 129 | if (typeof this.settings.offset === 'number') { 130 | this.settings.offset = { 131 | x: this.settings.offset, 132 | y: this.settings.offset 133 | }; 134 | } 135 | 136 | //if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing 137 | if (this.settings.allow_duplicates || (!this.settings.allow_duplicates && !isDuplicateNotification(this))) { 138 | this.init(); 139 | } 140 | } 141 | 142 | $.extend(Notify.prototype, { 143 | init: function() { 144 | var self = this; 145 | 146 | this.buildNotify(); 147 | if (this.settings.content.icon) { 148 | this.setIcon(); 149 | } 150 | if (this.settings.content.url != "#") { 151 | this.styleURL(); 152 | } 153 | this.styleDismiss(); 154 | this.placement(); 155 | this.bind(); 156 | 157 | this.notify = { 158 | $ele: this.$ele, 159 | update: function(command, update) { 160 | var commands = {}; 161 | if (typeof command === "string") { 162 | commands[command] = update; 163 | } else { 164 | commands = command; 165 | } 166 | for (var cmd in commands) { 167 | switch (cmd) { 168 | case "type": 169 | this.$ele.removeClass('alert-' + self.settings.type); 170 | this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass('progress-bar-' + self.settings.type); 171 | self.settings.type = commands[cmd]; 172 | this.$ele.addClass('alert-' + commands[cmd]).find('[data-notify="progressbar"] > .progress-bar').addClass('progress-bar-' + commands[cmd]); 173 | break; 174 | case "icon": 175 | var $icon = this.$ele.find('[data-notify="icon"]'); 176 | if (self.settings.icon_type.toLowerCase() === 'class') { 177 | $icon.removeClass(self.settings.content.icon).addClass(commands[cmd]); 178 | } else { 179 | if (!$icon.is('img')) { 180 | $icon.find('img'); 181 | } 182 | $icon.attr('src', commands[cmd]); 183 | } 184 | self.settings.content.icon = commands[command]; 185 | break; 186 | case "progress": 187 | var newDelay = self.settings.delay - (self.settings.delay * (commands[cmd] / 100)); 188 | this.$ele.data('notify-delay', newDelay); 189 | this.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%'); 190 | break; 191 | case "url": 192 | this.$ele.find('[data-notify="url"]').attr('href', commands[cmd]); 193 | break; 194 | case "target": 195 | this.$ele.find('[data-notify="url"]').attr('target', commands[cmd]); 196 | break; 197 | default: 198 | this.$ele.find('[data-notify="' + cmd + '"]').html(commands[cmd]); 199 | } 200 | } 201 | var posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y); 202 | self.reposition(posX); 203 | }, 204 | close: function() { 205 | self.close(); 206 | } 207 | }; 208 | 209 | }, 210 | buildNotify: function() { 211 | var content = this.settings.content; 212 | this.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target)); 213 | this.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align); 214 | if (!this.settings.allow_dismiss) { 215 | this.$ele.find('[data-notify="dismiss"]').css('display', 'none'); 216 | } 217 | if ((this.settings.delay <= 0 && !this.settings.showProgressbar) || !this.settings.showProgressbar) { 218 | this.$ele.find('[data-notify="progressbar"]').remove(); 219 | } 220 | }, 221 | setIcon: function() { 222 | this.$ele.addClass('alert-with-icon'); 223 | 224 | if (this.settings.icon_type.toLowerCase() === 'class') { 225 | this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon); 226 | } else { 227 | if (this.$ele.find('[data-notify="icon"]').is('img')) { 228 | this.$ele.find('[data-notify="icon"]').attr('src', this.settings.content.icon); 229 | } else { 230 | this.$ele.find('[data-notify="icon"]').append('Notify Icon'); 231 | } 232 | } 233 | }, 234 | styleDismiss: function() { 235 | this.$ele.find('[data-notify="dismiss"]').css({ 236 | position: 'absolute', 237 | right: '10px', 238 | top: '50%', 239 | marginTop: '-13px', 240 | zIndex: this.settings.z_index + 2 241 | }); 242 | }, 243 | styleURL: function() { 244 | this.$ele.find('[data-notify="url"]').css({ 245 | backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)', 246 | height: '100%', 247 | left: 0, 248 | position: 'absolute', 249 | top: 0, 250 | width: '100%', 251 | zIndex: this.settings.z_index + 1 252 | }); 253 | }, 254 | placement: function() { 255 | var self = this, 256 | offsetAmt = this.settings.offset.y, 257 | css = { 258 | display: 'inline-block', 259 | margin: '0px auto', 260 | position: this.settings.position ? this.settings.position : (this.settings.element === 'body' ? 'fixed' : 'absolute'), 261 | transition: 'all .5s ease-in-out', 262 | zIndex: this.settings.z_index 263 | }, 264 | hasAnimation = false, 265 | settings = this.settings; 266 | 267 | $('[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])').each(function() { 268 | offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing)); 269 | }); 270 | if (this.settings.newest_on_top === true) { 271 | offsetAmt = this.settings.offset.y; 272 | } 273 | css[this.settings.placement.from] = offsetAmt + 'px'; 274 | 275 | switch (this.settings.placement.align) { 276 | case "left": 277 | case "right": 278 | css[this.settings.placement.align] = this.settings.offset.x + 'px'; 279 | break; 280 | case "center": 281 | css.left = 0; 282 | css.right = 0; 283 | break; 284 | } 285 | this.$ele.css(css).addClass(this.settings.animate.enter); 286 | $.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function(index, prefix) { 287 | self.$ele[0].style[prefix + 'AnimationIterationCount'] = 1; 288 | }); 289 | 290 | $(this.settings.element).append(this.$ele); 291 | 292 | if (this.settings.newest_on_top === true) { 293 | offsetAmt = (parseInt(offsetAmt) + parseInt(this.settings.spacing)) + this.$ele.outerHeight(); 294 | this.reposition(offsetAmt); 295 | } 296 | 297 | if ($.isFunction(self.settings.onShow)) { 298 | self.settings.onShow.call(this.$ele); 299 | } 300 | 301 | this.$ele.one(this.animations.start, function() { 302 | hasAnimation = true; 303 | }).one(this.animations.end, function() { 304 | self.$ele.removeClass(self.settings.animate.enter); 305 | if ($.isFunction(self.settings.onShown)) { 306 | self.settings.onShown.call(this); 307 | } 308 | }); 309 | 310 | setTimeout(function() { 311 | if (!hasAnimation) { 312 | if ($.isFunction(self.settings.onShown)) { 313 | self.settings.onShown.call(this); 314 | } 315 | } 316 | }, 600); 317 | }, 318 | bind: function() { 319 | var self = this; 320 | 321 | this.$ele.find('[data-notify="dismiss"]').on('click', function() { 322 | self.close(); 323 | }); 324 | 325 | if ($.isFunction(self.settings.onClick)) { 326 | this.$ele.on('click', function(event) { 327 | if (event.target != self.$ele.find('[data-notify="dismiss"]')[0]) { 328 | self.settings.onClick.call(this, event); 329 | } 330 | }); 331 | } 332 | 333 | this.$ele.mouseover(function() { 334 | $(this).data('data-hover', "true"); 335 | }).mouseout(function() { 336 | $(this).data('data-hover', "false"); 337 | }); 338 | this.$ele.data('data-hover', "false"); 339 | 340 | if (this.settings.delay > 0) { 341 | self.$ele.data('notify-delay', self.settings.delay); 342 | var timer = setInterval(function() { 343 | var delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer; 344 | if ((self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === "pause") || self.settings.mouse_over != "pause") { 345 | var percent = ((self.settings.delay - delay) / self.settings.delay) * 100; 346 | self.$ele.data('notify-delay', delay); 347 | self.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', percent).css('width', percent + '%'); 348 | } 349 | if (delay <= -(self.settings.timer)) { 350 | clearInterval(timer); 351 | self.close(); 352 | } 353 | }, self.settings.timer); 354 | } 355 | }, 356 | close: function() { 357 | var self = this, 358 | posX = parseInt(this.$ele.css(this.settings.placement.from)), 359 | hasAnimation = false; 360 | 361 | this.$ele.attr('data-closing', 'true').addClass(this.settings.animate.exit); 362 | self.reposition(posX); 363 | 364 | if ($.isFunction(self.settings.onClose)) { 365 | self.settings.onClose.call(this.$ele); 366 | } 367 | 368 | this.$ele.one(this.animations.start, function() { 369 | hasAnimation = true; 370 | }).one(this.animations.end, function() { 371 | $(this).remove(); 372 | if ($.isFunction(self.settings.onClosed)) { 373 | self.settings.onClosed.call(this); 374 | } 375 | }); 376 | 377 | setTimeout(function() { 378 | if (!hasAnimation) { 379 | self.$ele.remove(); 380 | if (self.settings.onClosed) { 381 | self.settings.onClosed(self.$ele); 382 | } 383 | } 384 | }, 600); 385 | }, 386 | reposition: function(posX) { 387 | var self = this, 388 | notifies = '[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])', 389 | $elements = this.$ele.nextAll(notifies); 390 | if (this.settings.newest_on_top === true) { 391 | $elements = this.$ele.prevAll(notifies); 392 | } 393 | $elements.each(function() { 394 | $(this).css(self.settings.placement.from, posX); 395 | posX = (parseInt(posX) + parseInt(self.settings.spacing)) + $(this).outerHeight(); 396 | }); 397 | } 398 | }); 399 | 400 | $.notify = function(content, options) { 401 | var plugin = new Notify(this, content, options); 402 | return plugin.notify; 403 | }; 404 | $.notifyDefaults = function(options) { 405 | defaults = $.extend(true, {}, defaults, options); 406 | return defaults; 407 | }; 408 | 409 | $.notifyClose = function(selector) { 410 | 411 | if (typeof selector === "undefined" || selector === "all") { 412 | $('[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 413 | } else if (selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger') { 414 | $('.alert-' + selector + '[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 415 | } else if (selector) { 416 | $(selector + '[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 417 | } else { 418 | $('[data-notify-position="' + selector + '"]').find('[data-notify="dismiss"]').trigger('click'); 419 | } 420 | }; 421 | 422 | $.notifyCloseExcept = function(selector) { 423 | 424 | if (selector === 'success' || selector === 'info' || selector === 'warning' || selector === 'danger') { 425 | $('[data-notify]').not('.alert-' + selector).find('[data-notify="dismiss"]').trigger('click'); 426 | } else { 427 | $('[data-notify]').not(selector).find('[data-notify="dismiss"]').trigger('click'); 428 | } 429 | }; 430 | 431 | 432 | })); -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/js/plugins/perfect-scrollbar.jquery.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * perfect-scrollbar v1.4.0 3 | * (c) 2018 Hyunje Jun 4 | * @license MIT 5 | */ 6 | !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.PerfectScrollbar=e()}(this,function(){"use strict";function t(t){return getComputedStyle(t)}function e(t,e){for(var i in e){var r=e[i];"number"==typeof r&&(r+="px"),t.style[i]=r}return t}function i(t){var e=document.createElement("div");return e.className=t,e}function r(t,e){if(!v)throw new Error("No element matching method supported");return v.call(t,e)}function l(t){t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}function n(t,e){return Array.prototype.filter.call(t.children,function(t){return r(t,e)})}function o(t,e){var i=t.element.classList,r=m.state.scrolling(e);i.contains(r)?clearTimeout(Y[e]):i.add(r)}function s(t,e){Y[e]=setTimeout(function(){return t.isAlive&&t.element.classList.remove(m.state.scrolling(e))},t.settings.scrollingThreshold)}function a(t,e){o(t,e),s(t,e)}function c(t){if("function"==typeof window.CustomEvent)return new CustomEvent(t);var e=document.createEvent("CustomEvent");return e.initCustomEvent(t,!1,!1,void 0),e}function h(t,e,i,r,l){var n=i[0],o=i[1],s=i[2],h=i[3],u=i[4],d=i[5];void 0===r&&(r=!0),void 0===l&&(l=!1);var f=t.element;t.reach[h]=null,f[s]<1&&(t.reach[h]="start"),f[s]>t[n]-t[o]-1&&(t.reach[h]="end"),e&&(f.dispatchEvent(c("ps-scroll-"+h)),e<0?f.dispatchEvent(c("ps-scroll-"+u)):e>0&&f.dispatchEvent(c("ps-scroll-"+d)),r&&a(t,h)),t.reach[h]&&(e||l)&&f.dispatchEvent(c("ps-"+h+"-reach-"+t.reach[h]))}function u(t){return parseInt(t,10)||0}function d(t){return r(t,"input,[contenteditable]")||r(t,"select,[contenteditable]")||r(t,"textarea,[contenteditable]")||r(t,"button,[contenteditable]")}function f(e){var i=t(e);return u(i.width)+u(i.paddingLeft)+u(i.paddingRight)+u(i.borderLeftWidth)+u(i.borderRightWidth)}function p(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function b(t,i){var r={width:i.railXWidth},l=Math.floor(t.scrollTop);i.isRtl?r.left=i.negativeScrollAdjustment+t.scrollLeft+i.containerWidth-i.contentWidth:r.left=t.scrollLeft,i.isScrollbarXUsingBottom?r.bottom=i.scrollbarXBottom-l:r.top=i.scrollbarXTop+l,e(i.scrollbarXRail,r);var n={top:l,height:i.railYHeight};i.isScrollbarYUsingRight?i.isRtl?n.right=i.contentWidth-(i.negativeScrollAdjustment+t.scrollLeft)-i.scrollbarYRight-i.scrollbarYOuterWidth:n.right=i.scrollbarYRight-t.scrollLeft:i.isRtl?n.left=i.negativeScrollAdjustment+t.scrollLeft+2*i.containerWidth-i.contentWidth-i.scrollbarYLeft-i.scrollbarYOuterWidth:n.left=i.scrollbarYLeft+t.scrollLeft,e(i.scrollbarYRail,n),e(i.scrollbarX,{left:i.scrollbarXLeft,width:i.scrollbarXWidth-i.railBorderXWidth}),e(i.scrollbarY,{top:i.scrollbarYTop,height:i.scrollbarYHeight-i.railBorderYWidth})}function g(t,e){function i(e){b[d]=g+Y*(e[a]-v),o(t,f),R(t),e.stopPropagation(),e.preventDefault()}function r(){s(t,f),t[p].classList.remove(m.state.clicking),t.event.unbind(t.ownerDocument,"mousemove",i)}var l=e[0],n=e[1],a=e[2],c=e[3],h=e[4],u=e[5],d=e[6],f=e[7],p=e[8],b=t.element,g=null,v=null,Y=null;t.event.bind(t[h],"mousedown",function(e){g=b[d],v=e[a],Y=(t[n]-t[l])/(t[c]-t[u]),t.event.bind(t.ownerDocument,"mousemove",i),t.event.once(t.ownerDocument,"mouseup",r),t[p].classList.add(m.state.clicking),e.stopPropagation(),e.preventDefault()})}var v="undefined"!=typeof Element&&(Element.prototype.matches||Element.prototype.webkitMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector),m={main:"ps",element:{thumb:function(t){return"ps__thumb-"+t},rail:function(t){return"ps__rail-"+t},consuming:"ps__child--consume"},state:{focus:"ps--focus",clicking:"ps--clicking",active:function(t){return"ps--active-"+t},scrolling:function(t){return"ps--scrolling-"+t}}},Y={x:null,y:null},X=function(t){this.element=t,this.handlers={}},w={isEmpty:{configurable:!0}};X.prototype.bind=function(t,e){void 0===this.handlers[t]&&(this.handlers[t]=[]),this.handlers[t].push(e),this.element.addEventListener(t,e,!1)},X.prototype.unbind=function(t,e){var i=this;this.handlers[t]=this.handlers[t].filter(function(r){return!(!e||r===e)||(i.element.removeEventListener(t,r,!1),!1)})},X.prototype.unbindAll=function(){var t=this;for(var e in t.handlers)t.unbind(e)},w.isEmpty.get=function(){var t=this;return Object.keys(this.handlers).every(function(e){return 0===t.handlers[e].length})},Object.defineProperties(X.prototype,w);var y=function(){this.eventElements=[]};y.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return e||(e=new X(t),this.eventElements.push(e)),e},y.prototype.bind=function(t,e,i){this.eventElement(t).bind(e,i)},y.prototype.unbind=function(t,e,i){var r=this.eventElement(t);r.unbind(e,i),r.isEmpty&&this.eventElements.splice(this.eventElements.indexOf(r),1)},y.prototype.unbindAll=function(){this.eventElements.forEach(function(t){return t.unbindAll()}),this.eventElements=[]},y.prototype.once=function(t,e,i){var r=this.eventElement(t),l=function(t){r.unbind(e,l),i(t)};r.bind(e,l)};var W=function(t,e,i,r,l){void 0===r&&(r=!0),void 0===l&&(l=!1);var n;if("top"===e)n=["contentHeight","containerHeight","scrollTop","y","up","down"];else{if("left"!==e)throw new Error("A proper axis should be provided");n=["contentWidth","containerWidth","scrollLeft","x","left","right"]}h(t,i,n,r,l)},L={isWebKit:"undefined"!=typeof document&&"WebkitAppearance"in document.documentElement.style,supportsTouch:"undefined"!=typeof window&&("ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch),supportsIePointer:"undefined"!=typeof navigator&&navigator.msMaxTouchPoints,isChrome:"undefined"!=typeof navigator&&/Chrome/i.test(navigator&&navigator.userAgent)},R=function(t){var e=t.element,i=Math.floor(e.scrollTop);t.containerWidth=e.clientWidth,t.containerHeight=e.clientHeight,t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight,e.contains(t.scrollbarXRail)||(n(e,m.element.rail("x")).forEach(function(t){return l(t)}),e.appendChild(t.scrollbarXRail)),e.contains(t.scrollbarYRail)||(n(e,m.element.rail("y")).forEach(function(t){return l(t)}),e.appendChild(t.scrollbarYRail)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),b(e,t),t.scrollbarXActive?e.classList.add(m.state.active("x")):(e.classList.remove(m.state.active("x")),t.scrollbarXWidth=0,t.scrollbarXLeft=0,e.scrollLeft=0),t.scrollbarYActive?e.classList.add(m.state.active("y")):(e.classList.remove(m.state.active("y")),t.scrollbarYHeight=0,t.scrollbarYTop=0,e.scrollTop=0)},T={"click-rail":function(t){t.event.bind(t.scrollbarY,"mousedown",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarYRail,"mousedown",function(e){var i=e.pageY-window.pageYOffset-t.scrollbarYRail.getBoundingClientRect().top>t.scrollbarYTop?1:-1;t.element.scrollTop+=i*t.containerHeight,R(t),e.stopPropagation()}),t.event.bind(t.scrollbarX,"mousedown",function(t){return t.stopPropagation()}),t.event.bind(t.scrollbarXRail,"mousedown",function(e){var i=e.pageX-window.pageXOffset-t.scrollbarXRail.getBoundingClientRect().left>t.scrollbarXLeft?1:-1;t.element.scrollLeft+=i*t.containerWidth,R(t),e.stopPropagation()})},"drag-thumb":function(t){g(t,["containerWidth","contentWidth","pageX","railXWidth","scrollbarX","scrollbarXWidth","scrollLeft","x","scrollbarXRail"]),g(t,["containerHeight","contentHeight","pageY","railYHeight","scrollbarY","scrollbarYHeight","scrollTop","y","scrollbarYRail"])},keyboard:function(t){function e(e,r){var l=Math.floor(i.scrollTop);if(0===e){if(!t.scrollbarYActive)return!1;if(0===l&&r>0||l>=t.contentHeight-t.containerHeight&&r<0)return!t.settings.wheelPropagation}var n=i.scrollLeft;if(0===r){if(!t.scrollbarXActive)return!1;if(0===n&&e<0||n>=t.contentWidth-t.containerWidth&&e>0)return!t.settings.wheelPropagation}return!0}var i=t.element,l=function(){return r(i,":hover")},n=function(){return r(t.scrollbarX,":focus")||r(t.scrollbarY,":focus")};t.event.bind(t.ownerDocument,"keydown",function(r){if(!(r.isDefaultPrevented&&r.isDefaultPrevented()||r.defaultPrevented)&&(l()||n())){var o=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(o){if("IFRAME"===o.tagName)o=o.contentDocument.activeElement;else for(;o.shadowRoot;)o=o.shadowRoot.activeElement;if(d(o))return}var s=0,a=0;switch(r.which){case 37:s=r.metaKey?-t.contentWidth:r.altKey?-t.containerWidth:-30;break;case 38:a=r.metaKey?t.contentHeight:r.altKey?t.containerHeight:30;break;case 39:s=r.metaKey?t.contentWidth:r.altKey?t.containerWidth:30;break;case 40:a=r.metaKey?-t.contentHeight:r.altKey?-t.containerHeight:-30;break;case 32:a=r.shiftKey?t.containerHeight:-t.containerHeight;break;case 33:a=t.containerHeight;break;case 34:a=-t.containerHeight;break;case 36:a=t.contentHeight;break;case 35:a=-t.contentHeight;break;default:return}t.settings.suppressScrollX&&0!==s||t.settings.suppressScrollY&&0!==a||(i.scrollTop-=a,i.scrollLeft+=s,R(t),e(s,a)&&r.preventDefault())}})},wheel:function(e){function i(t,i){var r=Math.floor(o.scrollTop),l=0===o.scrollTop,n=r+o.offsetHeight===o.scrollHeight,s=0===o.scrollLeft,a=o.scrollLeft+o.offsetWidth===o.scrollWidth;return!(Math.abs(i)>Math.abs(t)?l||n:s||a)||!e.settings.wheelPropagation}function r(t){var e=t.deltaX,i=-1*t.deltaY;return void 0!==e&&void 0!==i||(e=-1*t.wheelDeltaX/6,i=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,i*=10),e!==e&&i!==i&&(e=0,i=t.wheelDelta),t.shiftKey?[-i,-e]:[e,i]}function l(e,i,r){if(!L.isWebKit&&o.querySelector("select:focus"))return!0;if(!o.contains(e))return!1;for(var l=e;l&&l!==o;){if(l.classList.contains(m.element.consuming))return!0;var n=t(l);if([n.overflow,n.overflowX,n.overflowY].join("").match(/(scroll|auto)/)){var s=l.scrollHeight-l.clientHeight;if(s>0&&!(0===l.scrollTop&&r>0||l.scrollTop===s&&r<0))return!0;var a=l.scrollWidth-l.clientWidth;if(a>0&&!(0===l.scrollLeft&&i<0||l.scrollLeft===a&&i>0))return!0}l=l.parentNode}return!1}function n(t){var n=r(t),s=n[0],a=n[1];if(!l(t.target,s,a)){var c=!1;e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(a?o.scrollTop-=a*e.settings.wheelSpeed:o.scrollTop+=s*e.settings.wheelSpeed,c=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(s?o.scrollLeft+=s*e.settings.wheelSpeed:o.scrollLeft-=a*e.settings.wheelSpeed,c=!0):(o.scrollTop-=a*e.settings.wheelSpeed,o.scrollLeft+=s*e.settings.wheelSpeed),R(e),(c=c||i(s,a))&&!t.ctrlKey&&(t.stopPropagation(),t.preventDefault())}}var o=e.element;void 0!==window.onwheel?e.event.bind(o,"wheel",n):void 0!==window.onmousewheel&&e.event.bind(o,"mousewheel",n)},touch:function(e){function i(t,i){var r=Math.floor(h.scrollTop),l=h.scrollLeft,n=Math.abs(t),o=Math.abs(i);if(o>n){if(i<0&&r===e.contentHeight-e.containerHeight||i>0&&0===r)return 0===window.scrollY&&i>0&&L.isChrome}else if(n>o&&(t<0&&l===e.contentWidth-e.containerWidth||t>0&&0===l))return!0;return!0}function r(t,i){h.scrollTop-=i,h.scrollLeft-=t,R(e)}function l(t){return t.targetTouches?t.targetTouches[0]:t}function n(t){return!(t.pointerType&&"pen"===t.pointerType&&0===t.buttons||(!t.targetTouches||1!==t.targetTouches.length)&&(!t.pointerType||"mouse"===t.pointerType||t.pointerType===t.MSPOINTER_TYPE_MOUSE))}function o(t){if(n(t)){var e=l(t);u.pageX=e.pageX,u.pageY=e.pageY,d=(new Date).getTime(),null!==p&&clearInterval(p)}}function s(e,i,r){if(!h.contains(e))return!1;for(var l=e;l&&l!==h;){if(l.classList.contains(m.element.consuming))return!0;var n=t(l);if([n.overflow,n.overflowX,n.overflowY].join("").match(/(scroll|auto)/)){var o=l.scrollHeight-l.clientHeight;if(o>0&&!(0===l.scrollTop&&r>0||l.scrollTop===o&&r<0))return!0;var s=l.scrollLeft-l.clientWidth;if(s>0&&!(0===l.scrollLeft&&i<0||l.scrollLeft===s&&i>0))return!0}l=l.parentNode}return!1}function a(t){if(n(t)){var e=l(t),o={pageX:e.pageX,pageY:e.pageY},a=o.pageX-u.pageX,c=o.pageY-u.pageY;if(s(t.target,a,c))return;r(a,c),u=o;var h=(new Date).getTime(),p=h-d;p>0&&(f.x=a/p,f.y=c/p,d=h),i(a,c)&&t.preventDefault()}}function c(){e.settings.swipeEasing&&(clearInterval(p),p=setInterval(function(){e.isInitialized?clearInterval(p):f.x||f.y?Math.abs(f.x)<.01&&Math.abs(f.y)<.01?clearInterval(p):(r(30*f.x,30*f.y),f.x*=.8,f.y*=.8):clearInterval(p)},10))}if(L.supportsTouch||L.supportsIePointer){var h=e.element,u={},d=0,f={},p=null;L.supportsTouch?(e.event.bind(h,"touchstart",o),e.event.bind(h,"touchmove",a),e.event.bind(h,"touchend",c)):L.supportsIePointer&&(window.PointerEvent?(e.event.bind(h,"pointerdown",o),e.event.bind(h,"pointermove",a),e.event.bind(h,"pointerup",c)):window.MSPointerEvent&&(e.event.bind(h,"MSPointerDown",o),e.event.bind(h,"MSPointerMove",a),e.event.bind(h,"MSPointerUp",c)))}}},H=function(r,l){var n=this;if(void 0===l&&(l={}),"string"==typeof r&&(r=document.querySelector(r)),!r||!r.nodeName)throw new Error("no element is specified to initialize PerfectScrollbar");this.element=r,r.classList.add(m.main),this.settings={handlers:["click-rail","drag-thumb","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollingThreshold:1e3,scrollXMarginOffset:0,scrollYMarginOffset:0,suppressScrollX:!1,suppressScrollY:!1,swipeEasing:!0,useBothWheelAxes:!1,wheelPropagation:!0,wheelSpeed:1};for(var o in l)n.settings[o]=l[o];this.containerWidth=null,this.containerHeight=null,this.contentWidth=null,this.contentHeight=null;var s=function(){return r.classList.add(m.state.focus)},a=function(){return r.classList.remove(m.state.focus)};this.isRtl="rtl"===t(r).direction,this.isNegativeScroll=function(){var t=r.scrollLeft,e=null;return r.scrollLeft=-1,e=r.scrollLeft<0,r.scrollLeft=t,e}(),this.negativeScrollAdjustment=this.isNegativeScroll?r.scrollWidth-r.clientWidth:0,this.event=new y,this.ownerDocument=r.ownerDocument||document,this.scrollbarXRail=i(m.element.rail("x")),r.appendChild(this.scrollbarXRail),this.scrollbarX=i(m.element.thumb("x")),this.scrollbarXRail.appendChild(this.scrollbarX),this.scrollbarX.setAttribute("tabindex",0),this.event.bind(this.scrollbarX,"focus",s),this.event.bind(this.scrollbarX,"blur",a),this.scrollbarXActive=null,this.scrollbarXWidth=null,this.scrollbarXLeft=null;var c=t(this.scrollbarXRail);this.scrollbarXBottom=parseInt(c.bottom,10),isNaN(this.scrollbarXBottom)?(this.isScrollbarXUsingBottom=!1,this.scrollbarXTop=u(c.top)):this.isScrollbarXUsingBottom=!0,this.railBorderXWidth=u(c.borderLeftWidth)+u(c.borderRightWidth),e(this.scrollbarXRail,{display:"block"}),this.railXMarginWidth=u(c.marginLeft)+u(c.marginRight),e(this.scrollbarXRail,{display:""}),this.railXWidth=null,this.railXRatio=null,this.scrollbarYRail=i(m.element.rail("y")),r.appendChild(this.scrollbarYRail),this.scrollbarY=i(m.element.thumb("y")),this.scrollbarYRail.appendChild(this.scrollbarY),this.scrollbarY.setAttribute("tabindex",0),this.event.bind(this.scrollbarY,"focus",s),this.event.bind(this.scrollbarY,"blur",a),this.scrollbarYActive=null,this.scrollbarYHeight=null,this.scrollbarYTop=null;var h=t(this.scrollbarYRail);this.scrollbarYRight=parseInt(h.right,10),isNaN(this.scrollbarYRight)?(this.isScrollbarYUsingRight=!1,this.scrollbarYLeft=u(h.left)):this.isScrollbarYUsingRight=!0,this.scrollbarYOuterWidth=this.isRtl?f(this.scrollbarY):null,this.railBorderYWidth=u(h.borderTopWidth)+u(h.borderBottomWidth),e(this.scrollbarYRail,{display:"block"}),this.railYMarginHeight=u(h.marginTop)+u(h.marginBottom),e(this.scrollbarYRail,{display:""}),this.railYHeight=null,this.railYRatio=null,this.reach={x:r.scrollLeft<=0?"start":r.scrollLeft>=this.contentWidth-this.containerWidth?"end":null,y:r.scrollTop<=0?"start":r.scrollTop>=this.contentHeight-this.containerHeight?"end":null},this.isAlive=!0,this.settings.handlers.forEach(function(t){return T[t](n)}),this.lastScrollTop=Math.floor(r.scrollTop),this.lastScrollLeft=r.scrollLeft,this.event.bind(this.element,"scroll",function(t){return n.onScroll(t)}),R(this)};return H.prototype.update=function(){this.isAlive&&(this.negativeScrollAdjustment=this.isNegativeScroll?this.element.scrollWidth-this.element.clientWidth:0,e(this.scrollbarXRail,{display:"block"}),e(this.scrollbarYRail,{display:"block"}),this.railXMarginWidth=u(t(this.scrollbarXRail).marginLeft)+u(t(this.scrollbarXRail).marginRight),this.railYMarginHeight=u(t(this.scrollbarYRail).marginTop)+u(t(this.scrollbarYRail).marginBottom),e(this.scrollbarXRail,{display:"none"}),e(this.scrollbarYRail,{display:"none"}),R(this),W(this,"top",0,!1,!0),W(this,"left",0,!1,!0),e(this.scrollbarXRail,{display:""}),e(this.scrollbarYRail,{display:""}))},H.prototype.onScroll=function(t){this.isAlive&&(R(this),W(this,"top",this.element.scrollTop-this.lastScrollTop),W(this,"left",this.element.scrollLeft-this.lastScrollLeft),this.lastScrollTop=Math.floor(this.element.scrollTop),this.lastScrollLeft=this.element.scrollLeft)},H.prototype.destroy=function(){this.isAlive&&(this.event.unbindAll(),l(this.scrollbarX),l(this.scrollbarY),l(this.scrollbarXRail),l(this.scrollbarYRail),this.removePsClasses(),this.element=null,this.scrollbarX=null,this.scrollbarY=null,this.scrollbarXRail=null,this.scrollbarYRail=null,this.isAlive=!1)},H.prototype.removePsClasses=function(){this.element.className=this.element.className.split(" ").filter(function(t){return!t.match(/^ps([-_].+|)$/)}).join(" ")},H}); 7 | -------------------------------------------------------------------------------- /src/white-stubs/resources/assets/js/core/popper.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (C) Federico Zivolo 2017 3 | Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT). 4 | */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var f=a.commonAncestorContainer;if(e!==f&&t!==f||i.contains(n))return p(f)?f:r(f);var l=s(e);return l.host?d(l.host,t):d(e,s(t).host)}function a(e){var t=1=o.clientWidth&&i>=o.clientHeight}),f=0i[e]&&!t.escapeWithReference&&(n=z(p[o],i[e]-('right'===e?p.width:p.height))),pe({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=se({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=V,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var o=t.element;if('string'==typeof o){if(o=e.instance.popper.querySelector(o),!o)return e;}else if(!e.instance.popper.contains(o))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var i=e.placement.split('-')[0],n=e.offsets,r=n.popper,p=n.reference,s=-1!==['left','right'].indexOf(i),d=s?'height':'width',a=s?'top':'left',f=s?'left':'top',l=s?'bottom':'right',m=O(o)[d];p[l]-mr[l]&&(e.offsets.popper[a]+=p[a]+m-r[l]);var h=p[a]+p[d]/2-m/2,g=h-c(e.offsets.popper)[a];return g=_(z(r[d]-m,g),0),e.arrowElement=o,e.offsets.arrow={},e.offsets.arrow[a]=Math.round(g),e.offsets.arrow[f]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,f=e.offsets.reference,l=V,m='left'===i&&l(a.right)>l(f.left)||'right'===i&&l(a.left)l(f.top)||'bottom'===i&&l(a.top)l(o.right),g=l(a.top)l(o.bottom),b='left'===i&&h||'right'===i&&c||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=se({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[t]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=c(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right 'dashboard']) 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
9 |
10 |
Total Shipments
11 |

Performance

12 |
13 |
14 |
15 | 22 | 29 | 36 |
37 |
38 |
39 |
40 |
41 |
42 | 43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
Total Shipments
53 |

763,215

54 |
55 |
56 |
57 | 58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
Daily Sales
66 |

3,500€

67 |
68 |
69 |
70 | 71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
Completed Tasks
79 |

12,100K

80 |
81 |
82 |
83 | 84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
Tasks(5)
94 |

today

95 | 105 |
106 |
107 |
108 | 109 | 110 | 111 | 121 | 125 | 130 | 131 | 132 | 142 | 146 | 151 | 152 | 153 | 163 | 167 | 172 | 173 | 174 | 184 | 188 | 193 | 194 | 195 | 205 | 209 | 214 | 215 | 216 | 226 | 230 | 235 | 236 | 237 |
112 |
113 | 119 |
120 |
122 |

Update the Documentation

123 |

Dwuamish Head, Seattle, WA 8:47 AM

124 |
126 | 129 |
133 |
134 | 140 |
141 |
143 |

GDPR Compliance

144 |

The GDPR is a regulation that requires businesses to protect the personal data and privacy of Europe citizens for transactions that occur within EU member states.

145 |
147 | 150 |
154 |
155 | 161 |
162 |
164 |

Solve the issues

165 |

Fifty percent of all respondents said they would be more likely to shop at a company

166 |
168 | 171 |
175 |
176 | 182 |
183 |
185 |

Release v2.0.0

186 |

Ra Ave SW, Seattle, WA 98116, SUA 11:19 AM

187 |
189 | 192 |
196 |
197 | 203 |
204 |
206 |

Export the processed files

207 |

The report also shows that consumers will not easily forgive a company once a breach exposing their personal data occurs.

208 |
210 | 213 |
217 |
218 | 224 |
225 |
227 |

Arival at export process

228 |

Capitol Hill, Seattle, WA 12:34 AM

229 |
231 | 234 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |

Simple Table

246 |
247 |
248 |
249 | 250 | 251 | 252 | 255 | 258 | 261 | 264 | 265 | 266 | 267 | 268 | 271 | 274 | 277 | 280 | 281 | 282 | 285 | 288 | 291 | 294 | 295 | 296 | 299 | 302 | 305 | 308 | 309 | 310 | 313 | 316 | 319 | 322 | 323 | 324 | 327 | 330 | 333 | 336 | 337 | 338 | 341 | 344 | 347 | 350 | 351 | 352 | 355 | 358 | 361 | 364 | 365 | 366 |
253 | Name 254 | 256 | Country 257 | 259 | City 260 | 262 | Salary 263 |
269 | Dakota Rice 270 | 272 | Niger 273 | 275 | Oud-Turnhout 276 | 278 | $36,738 279 |
283 | Minerva Hooper 284 | 286 | Curaçao 287 | 289 | Sinaai-Waas 290 | 292 | $23,789 293 |
297 | Sage Rodriguez 298 | 300 | Netherlands 301 | 303 | Baileux 304 | 306 | $56,142 307 |
311 | Philip Chaney 312 | 314 | Korea, South 315 | 317 | Overland Park 318 | 320 | $38,735 321 |
325 | Doris Greene 326 | 328 | Malawi 329 | 331 | Feldkirchen in Kärnten 332 | 334 | $63,542 335 |
339 | Mason Porter 340 | 342 | Chile 343 | 345 | Gloucester 346 | 348 | $78,615 349 |
353 | Jon Porter 354 | 356 | Portugal 357 | 359 | Gloucester 360 | 362 | $98,615 363 |
367 |
368 |
369 |
370 |
371 |
372 | @endsection 373 | 374 | @push('js') 375 | 376 | 381 | @endpush 382 | --------------------------------------------------------------------------------