From 7fb67dc1616d79e65a5b761013de614496d65d67 Mon Sep 17 00:00:00 2001 From: prashant-webkul Date: Fri, 30 Nov 2018 20:37:41 +0530 Subject: [PATCH] mass operations and datagrid operations normalization --- .../Admin/src/DataGrids/AttributeDataGrid.php | 17 +- .../Admin/src/DataGrids/CurrencyDataGrid.php | 16 +- .../Admin/src/DataGrids/CustomerDataGrid.php | 12 +- .../Http/Controllers/DataGridController.php | 166 +- packages/Webkul/Admin/src/Http/routes.php | 12 +- .../Admin/src/Resources/lang/en/app.php | 11 +- .../Resources/views/layouts/master.blade.php | 2 + .../Http/Controllers/AttributeController.php | 36 +- .../Controllers/AttributeFamilyController.php | 34 + .../Http/Controllers/CategoryController.php | 34 + .../Http/Controllers/CurrencyController.php | 43 +- .../src/Repositories/CurrencyRepository.php | 12 +- .../Webkul/Ui/publishable/assets/css/ui.css | 1571 ++++++++- .../Webkul/Ui/publishable/assets/js/ui.js | 3028 ++++++++++++++++- .../Ui/publishable/assets/mix-manifest.json | 4 +- packages/Webkul/Ui/src/DataGrid/DataGrid.php | 7 +- .../Ui/src/Resources/assets/sass/app.scss | 2 + .../src/Resources/assets/sass/components.scss | 6 +- .../views/datagrid/table/body.blade.php | 4 +- .../views/datagrid/table/head.blade.php | 16 +- packages/Webkul/Ui/webpack.mix.js | 4 +- 21 files changed, 4812 insertions(+), 225 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php index df980d7ca..d83f684c9 100644 --- a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php @@ -32,23 +32,23 @@ class AttributeDataGrid 'aliased' => true, 'massoperations' => [ - // [ - // 'route' => route('admin.datagrid.delete'), - // 'method' => 'DELETE', - // 'label' => 'Delete', - // 'type' => 'button', - // ], + [ + 'route' => route('admin.catalog.attributes.massdelete'), + 'method' => 'DELETE', + 'label' => 'Delete', + 'type' => 'button', + ] ], 'actions' => [ [ 'type' => 'Edit', - 'route' => route('admin.datagrid.delete'), + 'route' => 'admin.catalog.attributes.edit', 'confirm_text' => 'Do you really want to edit this record?', 'icon' => 'icon pencil-lg-icon', ], [ 'type' => 'Delete', - 'route' => route('admin.datagrid.delete'), + 'route' => 'admin.catalog.attributes.edit', 'confirm_text' => 'Do you really want to delete this record?', 'icon' => 'icon trash-icon', ], @@ -57,7 +57,6 @@ class AttributeDataGrid 'join' => [], //use aliasing on secodary columns if join is performed - 'columns' => [ [ 'name' => 'id', diff --git a/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php index 8d08c4f15..8bdb16b55 100644 --- a/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php @@ -24,7 +24,7 @@ class CurrencyDataGrid public function createCurrencyDataGrid() { - return DataGrid::make([ + return DataGrid::make([ 'name' => 'Currencies', 'table' => 'currencies', 'select' => 'id', @@ -32,12 +32,12 @@ class CurrencyDataGrid 'aliased' => false, //use this with false as default and true in case of joins 'massoperations' =>[ - // [ - // 'route' => route('admin.datagrid.delete'), - // 'method' => 'DELETE', - // 'label' => 'Delete', - // 'type' => 'button', - // ], + [ + 'route' => route('admin.currencies.massdelete'), + 'method' => 'DELETE', + 'label' => 'Delete', + 'type' => 'button', + ] ], 'actions' => [ @@ -65,9 +65,7 @@ class CurrencyDataGrid ], //use aliasing on secodary columns if join is performed - 'columns' => [ - [ 'name' => 'id', 'alias' => 'currencyId', diff --git a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php index 960103f1c..9a32d520c 100644 --- a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php @@ -31,12 +31,12 @@ class CustomerDataGrid 'aliased' => true, //use this with false as default and true in case of joins 'massoperations' =>[ - [ - 'route' => route('admin.datagrid.delete'), - 'method' => 'DELETE', - 'label' => 'Delete', - 'type' => 'button', //select || button only - ], + // [ + // 'route' => route('admin.datagrid.delete'), + // 'method' => 'DELETE', + // 'label' => 'Delete', + // 'type' => 'button', //select || button only + // ], ], 'actions' => [ diff --git a/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php b/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php index d0aa132f3..8ffcb9388 100644 --- a/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/DataGridController.php @@ -11,172 +11,16 @@ use Webkul\Ui\DataGrid\Facades\DataGrid; * DataGrid controller * * @author Nikhil Malik @ysmnikhil + * @author Prashant Singh @prashant-webkul * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class DataGridController extends Controller { - - /** - * Display a listing of the resource. - * - * @return \Illuminate\Http\Response - */ - public function index() - { - DataGrid::make([ - 'name' => 'Admin Datagrid', - 'table' => 'admins as u', - 'select' => 'u.id', - 'aliased' => true , //boolean to validate aliasing on the basis of this. - 'perpage' => 2, - 'filterable' => [ - [ - 'column' => 'u.id', - 'type' => 'integer', - 'label' => 'Admin ID' - ], [ - 'column' => 'u.email', - 'type' => 'string', - 'label' => 'Admin Email', - ], [ - 'column' => 'u.name', - 'type' => 'string', - 'label' => 'Admin Name', - ] - ], - 'searchables' =>[ - [ - 'name' => 'u.id', - 'label' => 'ID', - 'label' => 'Admin ID', - ], - [ - 'name' => 'u.name', - 'label' => 'Name', - 'label' => 'Admin Name', - ] - ], - 'join' => [ - [ - 'join' => 'leftjoin', - 'table' => 'roles as r', - 'primaryKey' => 'u.role_id', - 'condition' => '=', - 'secondaryKey' => 'r.id', - ] - ], - 'columns' => [ - [ - 'name' => 'u.id', - 'type' => 'string', - 'label' => 'Admin ID', - 'sortable' => true, - 'filterable' => true - ], - [ - 'name' => 'u.email', - 'type' => 'string', - 'label' => 'Admin Email', - 'sortable' => true, - 'filterable' => true - ], - [ - 'name' => 'u.name', - 'type' => 'string', - 'label' => 'Admin Name', - 'sortable' => true, - 'filterable' => true, - // will create on run time query - // 'filter' => [ - // 'function' => 'orwhere', // orwhere - // 'condition' => ['name', 'like', 'u'] // multiarray - // ], - 'attributes' => [ - 'class' => 'class-a class-b', - 'data-attr' => 'whatever you want', - 'onclick' => "window.alert('alert from datagrid column')" - ], - 'wrapper' => function ($value, $object) { - return '' . $object->name . ''; - }, - ], - [ - 'name' => 'r.name as x', - 'type' => 'string', - 'label' => 'Admin\'s Role', - 'sortable' => true, - 'filterable' => true, - ], - [ - 'name' => 'r.id as xx', - 'type' => 'integer', - 'label' => 'Role ID', - 'sortable' => false, - 'filterable' => false - ], - ], - - 'operators' => [ - 'eq' => "=", - 'lt' => "<", - 'gt' => ">", - 'lte' => "<=", - 'gte' => ">=", - 'neqn' => "!=", - 'ceq' => "<=>", - 'like' => "like", - 'nlike' => "not like", - ], - 'mass_operations' =>[ - [ - 'route' => route('admin.datagrid.delete'), - 'method' => 'DELETE', - 'label' => 'Delete', - 'type' => 'button', - - ] - ], - // 'css' => [] - - ]); - $result = DataGrid::render(); - return $result; + public function massDelete() { + dd(request()->all()); } - //for performing mass actions - public function massAction() - { - $make = [ - 'operations' =>[ - // [ - // 'route' => 'datagrid/update', - // 'method' => 'post', - // 'label' => 'Update', - // 'type' => 'select', - // 'name' => 'status', - // 'values' => [ - // [ - // 'label' => 'Enable', - // 'value' => 1 - // ], [ - // 'label' => 'Disable', - // 'value' => 0 - // ] - // ], - // ], - [ - 'route' => route('admin.datagrid.delete'), - 'method' => 'DELETE', - 'label' => 'Delete', - 'type' => 'button' - ] - ] - ]; - $result = DataGrid::makeMassAction($make); - } - - public function massDelete(Request $r) - { - return $r; + public function massUpdate() { + dd(request()->all()); } } diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 710ea06f1..7875a87ec 100644 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -7,11 +7,11 @@ Route::group(['middleware' => ['web']], function () { 'view' => 'admin::users.sessions.create' ])->name('admin.session.create'); + //login post route to admin auth controller Route::post('/login', 'Webkul\User\Http\Controllers\SessionController@store')->defaults('_config', [ 'redirect' => 'admin.dashboard.index' ])->name('admin.session.store'); - // Forget Password Routes Route::get('/forget-password', 'Webkul\User\Http\Controllers\ForgetPasswordController@create')->defaults('_config', [ 'view' => 'admin::users.forget-password.create' @@ -19,7 +19,6 @@ Route::group(['middleware' => ['web']], function () { Route::post('/forget-password', 'Webkul\User\Http\Controllers\ForgetPasswordController@store')->name('admin.forget-password.store'); - // Reset Password Routes Route::get('/reset-password/{token}', 'Webkul\User\Http\Controllers\ResetPasswordController@create')->defaults('_config', [ 'view' => 'admin::users.reset-password.create' @@ -36,13 +35,11 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.session.create' ])->name('admin.session.destroy'); - // Dashboard Route Route::get('dashboard', 'Webkul\Admin\Http\Controllers\DashboardController@index')->defaults('_config', [ 'view' => 'admin::dashboard.index' ])->name('admin.dashboard.index'); - //Customers Management Routes Route::get('customers', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@index')->defaults('_config', [ 'view' => 'admin::customers.index' @@ -248,8 +245,9 @@ Route::group(['middleware' => ['web']], function () { 'redirect' => 'admin.catalog.attributes.index' ])->name('admin.catalog.attributes.update'); - Route::get('/attributes/delete/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@destroy')->name('admin.catalog.attributes.delete'); + Route::get('/attributes/delete/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@destroy')->name('admin.catalog.attributes.edit'); + Route::delete('/attributes/massdelete', 'Webkul\Attribute\Http\Controllers\AttributeController@massDestroy')->name('admin.catalog.attributes.massdelete'); // Catalog Family Routes Route::get('/families', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@index')->defaults('_config', [ @@ -283,7 +281,7 @@ Route::group(['middleware' => ['web']], function () { Route::any('datagrid/massaction/delete', 'Webkul\Admin\Http\Controllers\DataGridController@massDelete')->name('admin.datagrid.delete'); - Route::any('datagrid/massaction/edit','Webkul\Admin\Http\Controllers\DataGridController@massUpdate')->name('admin.datagrid.edit'); + Route::any('datagrid/massaction/update','Webkul\Admin\Http\Controllers\DataGridController@massUpdate')->name('admin.datagrid.update'); // User Routes @@ -379,6 +377,8 @@ Route::group(['middleware' => ['web']], function () { Route::get('/currencies/delete/{id}', 'Webkul\Core\Http\Controllers\CurrencyController@destroy')->name('admin.currencies.delete'); + Route::any('/currencies/massdelete', 'Webkul\Core\Http\Controllers\CurrencyController@massDestroy')->name('admin.currencies.massdelete'); + // Exchange Rates Routes Route::get('/exchange_rates', 'Webkul\Core\Http\Controllers\ExchangeRateController@index')->defaults('_config', [ diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 5eeb27264..86bf42f93 100644 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -2,7 +2,7 @@ return [ 'common' => [ - 'no-result-found' => 'We couldn\'t find any records.', + 'no-result-found' => 'We could not find any records.', 'country' => 'Country', 'state' => 'State' ], @@ -27,6 +27,15 @@ return [ 'stock-threshold' => 'Stock Threshold', 'qty-left' => ':qty Left', ], + + 'datagrid' => [ + 'mass-ops' => [ + 'method-error' => 'Error! Wrong method detected, please check mass action configuration', + 'delete-success' => 'Selected index of :resource were successfully deleted', + 'partial-action' => 'Some actions were not performed due restricted system constraints on :resource' + ] + ], + 'account' => [ 'title' => 'My Account', 'save-btn-title' => 'Save', diff --git a/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php b/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php index 0572aecbb..8adc8b98b 100644 --- a/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/layouts/master.blade.php @@ -42,6 +42,8 @@ window.flashMessages = [{'type': 'alert-warning', 'message': "{{ $warning }}" }]; @elseif($error = session('error')) window.flashMessages = [{'type': 'alert-error', 'message': "{{ $error }}" }]; + @elseif($info = session('info')) + window.flashMessages = [{'type': 'alert-error', 'message': "{{ $info }}" }]; @endif window.serverErrors = []; diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php index d44c3c933..fbd0a5a48 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeController.php @@ -128,7 +128,7 @@ class AttributeController extends Controller public function destroy($id) { $attribute = $this->attribute->findOrFail($id); - + if(!$attribute->is_user_defined) { session()->flash('error', 'Can not delete system attribute.'); } else { @@ -143,4 +143,38 @@ class AttributeController extends Controller return redirect()->back(); } + + /** + * Remove the specified resources from database + * + * @return response \Illuminate\Http\Response + */ + public function massDestroy() { + $suppressFlash = false; + + if(request()->isMethod('delete')) { + $indexes = explode(',', request()->input('indexes')); + + foreach($indexes as $key => $value) { + try { + $this->attribute->delete($value); + } catch(\Exception $e) { + $suppressFlash = true; + + continue; + } + } + + if(!$suppressFlash) + session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success')); + else + session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'attributes'])); + + return redirect()->back(); + } else { + session()->flash('error', trans('admin::app.datagrid.mass-ops.method-error')); + + return redirect()->back(); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php index 8effe7125..d3a3f448a 100644 --- a/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php +++ b/packages/Webkul/Attribute/src/Http/Controllers/AttributeFamilyController.php @@ -149,4 +149,38 @@ class AttributeFamilyController extends Controller return redirect()->back(); } + + /** + * Remove the specified resources from database + * + * @return response \Illuminate\Http\Response + */ + public function massDestroy() { + $suppressFlash = false; + + if(request()->isMethod('delete')) { + $indexes = explode(',', request()->input('indexes')); + + foreach($indexes as $key => $value) { + try { + $this->attributeFamily->delete($value); + } catch(\Exception $e) { + $suppressFlash = true; + + continue; + } + } + + if(!$suppressFlash) + session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success')); + else + session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'Attribute Family'])); + + return redirect()->back(); + } else { + session()->flash('error', trans('admin::app.datagrid.mass-ops.method-error')); + + return redirect()->back(); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index 351be4f2b..27186ab17 100644 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -139,4 +139,38 @@ class CategoryController extends Controller return redirect()->back(); } + + /** + * Remove the specified resources from database + * + * @return response \Illuminate\Http\Response + */ + public function massDestroy() { + $suppressFlash = false; + + if(request()->isMethod('delete')) { + $indexes = explode(',', request()->input('indexes')); + + foreach($indexes as $key => $value) { + try { + $this->category->delete($value); + } catch(\Exception $e) { + $suppressFlash = true; + + continue; + } + } + + if(!$suppressFlash) + session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success')); + else + session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'Attribute Family'])); + + return redirect()->back(); + } else { + session()->flash('error', trans('admin::app.datagrid.mass-ops.method-error')); + + return redirect()->back(); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php index a8c64f87b..65e0c3639 100644 --- a/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php +++ b/packages/Webkul/Core/src/Http/Controllers/CurrencyController.php @@ -125,14 +125,47 @@ class CurrencyController extends Controller */ public function destroy($id) { - if($this->currency->count() == 1) { - session()->flash('error', 'At least one currency is required.'); - } else { - $this->currency->delete($id); + $result = $this->currency->delete($id); + if($result) session()->flash('success', 'Currency deleted successfully.'); - } + else + session()->flash('error', 'At least one currency is required.'); return redirect()->back(); } + + /** + * Remove the specified resources from database + * + * @return response \Illuminate\Http\Response + */ + public function massDestroy() { + $suppressFlash = false; + + if(request()->isMethod('delete')) { + $indexes = explode(',', request()->input('indexes')); + + foreach($indexes as $key => $value) { + try { + $this->currency->delete($value); + } catch(\Exception $e) { + $suppressFlash = true; + + continue; + } + } + + if(!$suppressFlash) + session()->flash('success', trans('admin::app.datagrid.mass-ops.delete-success', ['resource' => 'currencies'])); + else + session()->flash('info', trans('admin::app.datagrid.mass-ops.partial-action', ['resource' => 'currencies'])); + + return redirect()->back(); + } else { + session()->flash('error', trans('admin::app.datagrid.mass-ops.method-error')); + + return redirect()->back(); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Core/src/Repositories/CurrencyRepository.php b/packages/Webkul/Core/src/Repositories/CurrencyRepository.php index a60a694bf..2b356afdd 100644 --- a/packages/Webkul/Core/src/Repositories/CurrencyRepository.php +++ b/packages/Webkul/Core/src/Repositories/CurrencyRepository.php @@ -1,7 +1,7 @@ -model->count() == 1) { + return false; + } else { + $this->currency->delete($id); + } + } } \ No newline at end of file diff --git a/packages/Webkul/Ui/publishable/assets/css/ui.css b/packages/Webkul/Ui/publishable/assets/css/ui.css index 69cceda22..ade675643 100644 --- a/packages/Webkul/Ui/publishable/assets/css/ui.css +++ b/packages/Webkul/Ui/publishable/assets/css/ui.css @@ -1 +1,1570 @@ -.active.configuration-icon,.catalog-icon,.configuration-icon,.customer-icon,.dashboard-icon,.sales-icon,.settings-icon{width:48px;height:48px;display:inline-block;background-size:cover}.icon{display:inline-block;background-size:cover}.dashboard-icon{background-image:url("../images/Icon-Dashboard.svg")}.sales-icon{background-image:url("../images/Icon-Sales.svg")}.catalog-icon{background-image:url("../images/Icon-Catalog.svg")}.customer-icon{background-image:url("../images/Icon-Customers.svg")}.configuration-icon{background-image:url("../images/Icon-Configure.svg")}.settings-icon{background-image:url("../images/Icon-Settings.svg")}.angle-right-icon{background-image:url("../images/Angle-Right.svg");width:17px;height:17px}.angle-left-icon{background-image:url("../images/Angle-Left.svg");width:17px;height:17px}.arrow-down-icon{background-image:url("../images/Arrow-Down-Light.svg");width:14px;height:8px}.arrow-right-icon{background-image:url("../images/Arrow-Right.svg");width:18px;height:18px}.white-cross-sm-icon{background-image:url("../images/Icon-Sm-Cross-White.svg");width:18px;height:18px}.accordian-up-icon{background-image:url("../images/Accordion-Arrow-Up.svg");width:24px;height:24px}.accordian-down-icon{background-image:url("../images/Accordion-Arrow-Down.svg");width:24px;height:24px}.cross-icon{background-image:url("../images/Icon-Crossed.svg");width:18px;height:18px}.trash-icon{background-image:url("../images/Icon-Trash.svg");width:24px;height:24px}.remove-icon{background-image:url("../images/Icon-remove.svg");width:24px;height:24px}.pencil-lg-icon{background-image:url("../images/Icon-Pencil-Large.svg");width:24px;height:24px}.search-icon{background-image:url("../images/icon-search.svg");width:24px;height:24px}.sortable-icon{background-image:url("../images/Icon-Sortable.svg");width:24px;height:24px}.sort-down-icon,.sort-up-icon{background-image:url("../images/Icon-Sort-Down.svg");width:18px;height:18px}.sort-up-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.primary-back-icon{background-image:url("../images/Icon-Back-Primary.svg");width:24px;height:24px}.checkbox-dash-icon{background-image:url("../images/Checkbox-Dash.svg");width:24px;height:24px}.account-icon{background-image:url("../images/icon-account.svg");width:24px;height:24px}.expand-icon{background-image:url("../images/Expand-Light.svg");width:18px;height:18px}.expand-on-icon{background-image:url("../images/Expand-Light-On.svg");width:18px;height:18px}.dark-left-icon{background-image:url("../images/arrow-left-dark.svg");width:18px;height:18px}.light-right-icon{background-image:url("../images/arrow-right-light.svg");width:18px;height:18px}.folder-icon{background-image:url("../images/Folder-Icon.svg");width:24px;height:24px}.star-icon{background-image:url("../images/Star-Icon.svg");width:24px;height:24px}.arrow-down-white-icon{background-image:url("../images/down-arrow-white.svg");width:17px;height:13px}.arrow-up-white-icon{background-image:url("../images/up-arrow-white.svg");width:17px;height:13px}.profile-pic-icon{background-image:url("../images/Profile-Pic.svg");width:60px;height:60px}.graph-up-icon{background-image:url("../images/Icon-Graph-Green.svg");width:24px;height:24px}.graph-down-icon{background-image:url("../images/Icon-Graph-Red.svg");width:24px;height:24px}.no-result-icon{background-image:url("../images/limited-icon.svg");width:52px;height:47px}.active .dashboard-icon{background-image:url("../images/Icon-Dashboard-Active.svg")}.active .sales-icon{background-image:url("../images/Icon-Sales-Active.svg")}.active .catalog-icon{background-image:url("../images/Icon-Catalog-Active.svg")}.active .customer-icon{background-image:url("../images/Icon-Customers-Active.svg")}.active .settings-icon{background-image:url("../images/Icon-Settings-Active.svg")}.active .configuration-icon{background-image:url("../images/Icon-Configure-Active.svg")}.active>.arrow-down-icon{background-image:url("../images/Arrow-Down.svg");width:14px;height:8px}.active>.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.active.dashboard-icon{background-image:url("../images/Icon-Dashboard-Active.svg")}.active.customer-icon{background-image:url("../images/Icon-Customers-Active.svg")}.active.sales-icon{background-image:url("../images/Icon-Sales-Active.svg")}.active.settings-icon{background-image:url("../images/Icon-Settings-Active.svg")}.active.configuration-icon{background-image:url("../images/Icon-Configure-Active.svg")}.active.arrow-down-icon{background-image:url("../images/Arrow-Down.svg");width:14px;height:8px}.active.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.icon-404{background-image:url("../images/404-image.svg");width:255px;height:255px}.grid-container{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-container .filter-wrapper{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.grid-container .filter-wrapper .filter-row-one,.grid-container .filter-wrapper .filter-row-two{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.grid-container .filter-wrapper .filter-row-one{height:40px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-container .filter-wrapper .filter-row-one .search-filter .control{font-family:montserrat,sans-serif;padding-left:10px;width:380px;height:36px;border:2px solid #c7c7c7;border-radius:3px;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;font-size:14px}.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper{display:block;height:36px;width:36px;border:2px solid #c7c7c7;border-left:none;border-radius:2px}.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper .search-icon{margin-left:4px;margin-top:4px;height:24px;width:24px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters{margin-right:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-family:montserrat,sans-serif;padding-left:5px;height:36px;width:150px;border:2px solid #c7c7c7;border-radius:2px;background-color:#fff;color:#8e8e8e;font-size:14px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header{width:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header .arrow-down-icon{margin-right:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li.filter-column-dropdown .filter-column-select{width:100%;background:#fff;border:2px solid #c7c7c7;border-radius:3px;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 5px;font-family:montserrat,sans-serif;margin-top:10px;margin-bottom:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li input,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li select{background:#fff;border:2px solid #c7c7c7;border-radius:3px;height:36px;max-width:100%;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 5px;font-family:montserrat,sans-serif;margin-top:10px;margin-bottom:5px}.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-datetime,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-number,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-string,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-boolean,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-datetime,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-number,.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-string{display:none}.grid-container .filter-wrapper .filter-row-two{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:6px;margin-bottom:6px}.grid-container .filter-wrapper .filter-row-two .filter-one{margin-right:10px}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-name{margin-right:5px}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;background:#e7e7e7;padding-left:5px;color:#000311;vertical-align:middle}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .f-value{margin:auto}.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .cross-icon{margin:5px;height:18px!important;width:18px!important;cursor:pointer}.grid-container .table thead .mass-action-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.grid-container .table thead .mass-action-wrapper .massaction-remove{margin-top:10px;margin-right:10px}.grid-container .table thead .mass-action-wrapper form{margin-top:8px}.grid-container .table thead .mass-action-wrapper .selected-items{margin-right:15px}.grid-container .table thead tr th.grid_head .sort-down-icon,.grid-container .table thead tr th.grid_head .sort-up-icon{margin-left:5px;margin-top:-3px;vertical-align:middle}.grid-container .table thead tr th.grid_head.sortable{cursor:pointer}.grid-container .table thead tr th{text-transform:capitalize}.grid-container .table tbody td.action a:first-child{margin-right:10px}.grid-container .table .pagination{margin-top:20px}@-webkit-keyframes jelly{0%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}70%{-webkit-transform:translateY(5px) scale(1.05);transform:translateY(5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}}@keyframes jelly{0%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}70%{-webkit-transform:translateY(5px) scale(1.05);transform:translateY(5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}}@-webkit-keyframes jelly-out{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}30%{-webkit-transform:translateY(-5px) scale(1.05);transform:translateY(-5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}}@keyframes jelly-out{0%{-webkit-transform:translateY(0) scale(1);transform:translateY(0) scale(1);opacity:1}30%{-webkit-transform:translateY(-5px) scale(1.05);transform:translateY(-5px) scale(1.05);opacity:1}to{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:0}}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus{outline:none}a:active,a:focus,a:hover,a:link,a:visited{text-decoration:none;color:#0041ff}ul{margin:0;padding:0;list-style:none}h1{font-size:28px;margin-top:0}h1,h2{color:#3a3a3a}h2{font-size:18px}.tooltip{position:relative;border-bottom:1px solid #000}.tooltip .tooltiptext{visibility:hidden;width:120px;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1}.tooltip:hover .tooltiptext{visibility:visible}.hide{display:none!important}.btn{-webkit-box-shadow:0 1px 4px 0 rgba(0,0,0,.2),0 0 8px 0 rgba(0,0,0,.1);box-shadow:0 1px 4px 0 rgba(0,0,0,.2),0 0 8px 0 rgba(0,0,0,.1);border-radius:3px;border:none;color:#fff;cursor:pointer;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);font:inherit;display:inline-block}.btn:active,.btn:focus,.btn:hover{opacity:.75;border:none}.btn.btn-sm{padding:6px 12px}.btn.btn-md{padding:8px 16px}.btn.btn-lg{padding:10px 20px}.btn.btn-xl{padding:12px 24px;font-size:16px}.btn.btn-primary{background:#0041ff;color:#fff}.btn:disabled,.btn[disabled=disabled],.btn[disabled=disabled]:active,.btn[disabled=disabled]:hover{cursor:not-allowed;background:#b1b1ae;-webkit-box-shadow:none;box-shadow:none;opacity:1}.dropdown-open{position:relative}.dropdown-list{width:200px;margin-bottom:20px;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 0 9px 0 rgba(0,0,0,.16);border-radius:3px;background-color:#fff;position:absolute;display:none;z-index:10;text-align:left}.dropdown-list.bottom-left{top:42px;left:0}.dropdown-list.bottom-right{top:42px;right:0}.dropdown-list.top-left{bottom:42px;left:0}.dropdown-list.top-right{bottom:42px;right:0}.dropdown-list .search-box{padding:20px;border-bottom:1px solid hsla(0,0%,64%,.2)}.dropdown-list .search-box .control{background:#fff;border:2px solid #c7c7c7;border-radius:3px;width:100%;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 10px;font-size:15px}.dropdown-list .search-box .control:focus{border-color:#0041ff}.dropdown-list .dropdown-container{padding:20px;overflow-y:auto;max-height:280px}.dropdown-list .dropdown-container label{font-size:15px;display:inline-block;text-transform:uppercase;color:#9e9e9e;font-weight:700;padding-bottom:5px}.dropdown-list .dropdown-container ul{margin:0;list-style-type:none;padding:0}.dropdown-list .dropdown-container ul li{padding:5px 0}.dropdown-list .dropdown-container ul li a:active,.dropdown-list .dropdown-container ul li a:focus,.dropdown-list .dropdown-container ul li a:link,.dropdown-list .dropdown-container ul li a:visited{color:#333;display:block}.dropdown-list .dropdown-container ul li a:hover{color:#0041ff}.dropdown-list .dropdown-container ul li .checkbox{margin:0}.dropdown-list .dropdown-container ul li .control-group label{color:#3a3a3a;font-size:15px;font-weight:500;text-transform:capitalize;width:100%}.dropdown-list .dropdown-container .btn{width:100%;margin-top:10px}.table{width:100%;overflow-x:auto}.table table{width:100%;border-collapse:collapse;text-align:left}.table table thead th{font-weight:700;padding:12px 10px;background:#f8f9fa;color:#3a3a3a}.table table tbody td{padding:10px;border-bottom:1px solid #d3d3d3;color:#3a3a3a;vertical-align:middle}.table table tbody td.actions{text-align:right}.table table tbody td.actions .icon{cursor:pointer;vertical-align:middle}.table table tbody td.empty{text-align:center}.table table tbody tr:last-child td{border-bottom:none}.table .control-group{width:100%;margin-bottom:0}.table .control-group .control{width:100%;margin:0}.dropdown-btn{min-width:150px;text-align:left;background:#fff;border:2px solid #c7c7c7;border-radius:3px;font-size:14px;padding:8px 35px 8px 10px;cursor:pointer;position:relative}.dropdown-btn:active,.dropdown-btn:focus,.dropdown-btn:hover{opacity:.75;border:2px solid #c7c7c7}.dropdown-btn .icon{position:absolute;right:10px;top:50%;margin-top:-4px}.pagination .page-item{background:#fff;border:2px solid #c7c7c7;border-radius:3px;padding:7px 14px;margin-right:5px;font-size:16px;display:inline-block;color:#8e8e8e;vertical-align:middle;text-decoration:none}.pagination .page-item.next,.pagination .page-item.previous{padding:6px 9px}.pagination .page-item.active{background:#0041ff;color:#fff;border-color:#0041ff}.pagination .page-item .icon{vertical-align:middle;margin-bottom:3px}.checkbox{position:relative;display:block;vertical-align:middle;margin:10px 5px 5px 0}.checkbox input{left:0;opacity:0;position:absolute;top:0;z-index:100}.checkbox .checkbox-view{background-image:url("../images/Checkbox.svg");height:24px;width:24px;margin:0;display:inline-block!important;vertical-align:middle;margin-right:5px}.checkbox input:checked+.checkbox-view{background-image:url("../images/Checkbox-Checked.svg")}.checkbox input:disabled+.checkbox-view{opacity:.5;cursor:not-allowed}.radio{position:relative;display:block;margin:10px 5px 5px 0}.radio input{left:0;opacity:0;position:absolute;top:0;z-index:100}.radio .radio-view{background-image:url("../images/controls.svg");background-position:-21px 0;height:20px;width:20px;margin:0;display:inline-block!important;vertical-align:middle;margin-right:5px}.radio input:checked+.radio-view{background-position:-21px -21px}.radio input:disabled+.radio-view{opacity:.5;cursor:not-allowed}.control-group{display:block;margin-bottom:25px;font-size:15px;color:#333;width:750px;max-width:100%;position:relative}.control-group label{display:block;color:#3a3a3a}.control-group label.required:after{content:"*";color:#fc6868;font-weight:700;display:inline-block}.control-group textarea.control{height:100px;padding:10px}.control-group .control{background:#fff;border:2px solid #c7c7c7;border-radius:3px;width:70%;height:36px;display:inline-block;vertical-align:middle;-webkit-transition:.2s cubic-bezier(.4,0,.2,1);transition:.2s cubic-bezier(.4,0,.2,1);padding:0 10px;font-size:15px;margin-top:10px;margin-bottom:5px}.control-group .control:focus{border-color:#0041ff}.control-group .control[disabled=disabled]{border-color:#d3d3d3;background-color:#d3d3d3;cursor:not-allowed}.control-group .control[multiple]{height:100px}.control-group.date:after,.control-group.datetime:after{background-image:url("../images/Icon-Calendar.svg");width:24px;height:24px;content:"";display:inline-block;vertical-align:middle;margin-left:-34px;margin-top:2px}.control-group .control-info{display:block;font-style:italic;color:#6f6f6f}.control-group .control-error{display:none;color:#ff5656;margin-top:5px}.control-group.has-error .control{border-color:#fc6868}.control-group.has-error .control-error{display:block}.control-group.price .currency-code{vertical-align:middle;display:inline-block}.button-group{margin-top:20px;margin-bottom:20px}.alert-wrapper{width:300px;top:10px;right:10px;position:fixed;z-index:6;text-align:left}.alert-wrapper .alert{width:300px;padding:15px;border-radius:3px;display:inline-block;-webkit-box-shadow:0 4px 15.36px .64px rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.12);box-shadow:0 4px 15.36px .64px rgba(0,0,0,.1),0 2px 6px 0 rgba(0,0,0,.12);position:relative;-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;-webkit-transform-origin:center top;transform-origin:center top;z-index:500;margin-bottom:10px}.alert-wrapper .alert.alert-error{background:#fc6868}.alert-wrapper .alert.alert-info{background:#204d74}.alert-wrapper .alert.alert-success{background:#4caf50}.alert-wrapper .alert.alert-warning{background:#ffc107}.alert-wrapper .alert .icon{position:absolute;right:10px;top:10px;cursor:pointer}.alert-wrapper .alert p{color:#fff;margin:0;padding:0;font-size:15px}.tabs ul{border-bottom:1px solid hsla(0,0%,64%,.2)}.tabs ul li{display:inline-block}.tabs ul li a{padding:15px 20px;cursor:pointer;margin:0 2px;text-align:center;color:#000311;display:block}.tabs ul li.active a{border-bottom:3px solid #0041ff}.accordian,accordian{display:inline-block;width:100%}.accordian .accordian-header,.accordian div[slot*=header],accordian .accordian-header,accordian div[slot*=header]{width:100%;display:inline-block;font-size:18px;color:#3a3a3a;border-bottom:1px solid hsla(0,0%,64%,.2);padding:20px 15px;cursor:pointer}.accordian .accordian-header .expand-icon,.accordian div[slot*=header] .expand-icon,accordian .accordian-header .expand-icon,accordian div[slot*=header] .expand-icon{background-image:url("../images/Expand-Light.svg");margin-right:10px;margin-top:3px}.accordian .accordian-header h1,.accordian div[slot*=header] h1,accordian .accordian-header h1,accordian div[slot*=header] h1{margin:0;font-size:20px;display:inline-block}.accordian .accordian-header .icon,.accordian div[slot*=header] .icon,accordian .accordian-header .icon,accordian div[slot*=header] .icon{float:right}.accordian .accordian-header .icon.left,.accordian div[slot*=header] .icon.left,accordian .accordian-header .icon.left,accordian div[slot*=header] .icon.left{float:left}.accordian .accordian-content,.accordian div[slot*=body],accordian .accordian-content,accordian div[slot*=body]{width:100%;padding:20px 15px;display:none;-webkit-transition:all .3s ease;transition:all .3s ease}.accordian.active>.accordian-content,accordian.active>.accordian-content{display:inline-block}.accordian.active>.accordian-header .expand-icon,accordian.active>.accordian-header .expand-icon{background-image:url("../images/Expand-Light-On.svg")}.tree-container .tree-item{padding-left:30px;display:inline-block;margin-top:10px;width:100%}.tree-container .tree-item>.tree-item{display:none}.tree-container .tree-item.active>.tree-item{display:inline-block}.tree-container .tree-item .checkbox,.tree-container .tree-item .radio{margin:0;display:inline-block}.tree-container .tree-item .expand-icon{display:inline-block;margin-right:10px;cursor:pointer;background-image:url("../images/Expand-Light.svg");width:18px;height:18px;vertical-align:middle}.tree-container .tree-item .folder-icon{vertical-align:middle;margin-right:10px}.tree-container .tree-item.active>.expand-icon{background-image:url("../images/Expand-Light-On.svg")}.tree-container>.tree-item{padding-left:0}.panel{-webkit-box-shadow:0 2px 25px 0 rgba(0,0,0,.15);box-shadow:0 2px 25px 0 rgba(0,0,0,.15);border-radius:5px;background:#fff}.panel .panel-content{padding:20px}.modal-open{overflow:hidden}.modal-overlay{display:none;overflow-y:auto;z-index:10;top:0;right:0;bottom:0;left:0;position:fixed;background:#000;opacity:.75}.modal-open .modal-overlay{display:block}.modal-container{-webkit-animation:fade-in-white .3s ease-in-out;animation:fade-in-white .3s ease-in-out;z-index:11;margin-left:-350px;width:600px;max-width:80%;background:#fff;position:fixed;left:50%;top:100px;margin-bottom:100px;-webkit-box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);box-shadow:0 15px 25px 0 rgba(0,0,0,.03),0 20px 45px 5px rgba(0,0,0,.2);-webkit-animation:jelly .5s ease-in-out;animation:jelly .5s ease-in-out;border-radius:5px}.modal-container .modal-header{padding:20px}.modal-container .modal-header h3{display:inline-block;font-size:20px;color:#3a3a3a;margin:0}.modal-container .modal-header .icon{float:right;cursor:pointer}.modal-container .modal-body{padding:20px}.modal-container .modal-body .control-group .control{width:100%}.label{background:#e7e7e7;border-radius:2px;padding:8px;color:#000311;display:inline-block}.label.label-sm{padding:5px}.label.label-md{padding:8px}.label.label-lg{padding:11px}.label.label-xl{padding:14px}.badge{border-radius:50px;color:#fff;padding:8px}.badge.badge-sm{padding:5px}.badge.badge-md{padding:3px 10px}.badge.badge-lg{padding:11px}.badge.badge-xl{padding:14px}.badge.badge-success{background-color:#4caf50}.badge.badge-info{background-color:#0041ff}.badge.badge-danger{background-color:#fc6868}.badge.badge-warning{background-color:#ffc107}.image-wrapper{margin-bottom:20px;display:inline-block;width:100%}.image-wrapper .image-item{width:200px;height:200px;margin-right:20px;background:#f8f9fa;border-radius:3px;display:inline-block;position:relative;background-image:url("../images/placeholder-icon.svg");background-repeat:no-repeat;background-position:50%;margin-bottom:20px}.image-wrapper .image-item img.preview{width:100%;height:100%}.image-wrapper .image-item input{display:none}.image-wrapper .image-item .remove-image{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.08)),to(rgba(0,0,0,.24)));background-image:linear-gradient(-180deg,rgba(0,0,0,.08),rgba(0,0,0,.24));border-radius:0 0 4px 4px;position:absolute;bottom:0;width:100%;padding:10px;text-align:center;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.24);margin-right:20px;cursor:pointer}.image-wrapper .image-item:hover .remove-image{display:block}.image-wrapper .image-item.has-image{background-image:none}.cp-spinner{width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box}.cp-round:before{border-radius:50%;border:6px solid #bababa}.cp-round:after,.cp-round:before{content:" ";width:48px;height:48px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:0;left:0}.cp-round:after{border-radius:50%;border-top:6px solid #0041ff;border-right:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid transparent;-webkit-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}} \ No newline at end of file +.dashboard-icon, .sales-icon, .catalog-icon, .customer-icon, .configuration-icon, .settings-icon, .active.configuration-icon { + width: 48px; + height: 48px; + display: inline-block; + background-size: cover; +} + +.icon { + display: inline-block; + background-size: cover; +} + +.dashboard-icon { + background-image: url("../images/Icon-Dashboard.svg"); +} + +.sales-icon { + background-image: url("../images/Icon-Sales.svg"); +} + +.catalog-icon { + background-image: url("../images/Icon-Catalog.svg"); +} + +.customer-icon { + background-image: url("../images/Icon-Customers.svg"); +} + +.configuration-icon { + background-image: url("../images/Icon-Configure.svg"); +} + +.settings-icon { + background-image: url("../images/Icon-Settings.svg"); +} + +.angle-right-icon { + background-image: url("../images/Angle-Right.svg"); + width: 17px; + height: 17px; +} + +.angle-left-icon { + background-image: url("../images/Angle-Left.svg"); + width: 17px; + height: 17px; +} + +.arrow-down-icon { + background-image: url("../images/Arrow-Down-Light.svg"); + width: 14px; + height: 8px; +} + +.arrow-right-icon { + background-image: url("../images/Arrow-Right.svg"); + width: 18px; + height: 18px; +} + +.white-cross-sm-icon { + background-image: url("../images/Icon-Sm-Cross-White.svg"); + width: 18px; + height: 18px; +} + +.accordian-up-icon { + background-image: url("../images/Accordion-Arrow-Up.svg"); + width: 24px; + height: 24px; +} + +.accordian-down-icon { + background-image: url("../images/Accordion-Arrow-Down.svg"); + width: 24px; + height: 24px; +} + +.cross-icon { + background-image: url("../images/Icon-Crossed.svg"); + width: 18px; + height: 18px; +} + +.trash-icon { + background-image: url("../images/Icon-Trash.svg"); + width: 24px; + height: 24px; +} + +.remove-icon { + background-image: url("../images/Icon-remove.svg"); + width: 24px; + height: 24px; +} + +.pencil-lg-icon { + background-image: url("../images/Icon-Pencil-Large.svg"); + width: 24px; + height: 24px; +} + +.search-icon { + background-image: url("../images/icon-search.svg"); + width: 24px; + height: 24px; +} + +.sortable-icon { + background-image: url("../images/Icon-Sortable.svg"); + width: 24px; + height: 24px; +} + +.sort-down-icon { + background-image: url("../images/Icon-Sort-Down.svg"); + width: 18px; + height: 18px; +} + +.sort-up-icon { + background-image: url("../images/Icon-Sort-Down.svg"); + width: 18px; + height: 18px; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.primary-back-icon { + background-image: url("../images/Icon-Back-Primary.svg"); + width: 24px; + height: 24px; +} + +.checkbox-dash-icon { + background-image: url("../images/Checkbox-Dash.svg"); + width: 24px; + height: 24px; +} + +.account-icon { + background-image: url("../images/icon-account.svg"); + width: 24px; + height: 24px; +} + +.expand-icon { + background-image: url("../images/Expand-Light.svg"); + width: 18px; + height: 18px; +} + +.expand-on-icon { + background-image: url("../images/Expand-Light-On.svg"); + width: 18px; + height: 18px; +} + +.dark-left-icon { + background-image: url("../images/arrow-left-dark.svg"); + width: 18px; + height: 18px; +} + +.light-right-icon { + background-image: url("../images/arrow-right-light.svg"); + width: 18px; + height: 18px; +} + +.folder-icon { + background-image: url("../images/Folder-Icon.svg"); + width: 24px; + height: 24px; +} + +.star-icon { + background-image: url("../images/Star-Icon.svg"); + width: 24px; + height: 24px; +} + +.arrow-down-white-icon { + background-image: url("../images/down-arrow-white.svg"); + width: 17px; + height: 13px; +} + +.arrow-up-white-icon { + background-image: url("../images/up-arrow-white.svg"); + width: 17px; + height: 13px; +} + +.profile-pic-icon { + background-image: url("../images/Profile-Pic.svg"); + width: 60px; + height: 60px; +} + +.graph-up-icon { + background-image: url("../images/Icon-Graph-Green.svg"); + width: 24px; + height: 24px; +} + +.graph-down-icon { + background-image: url("../images/Icon-Graph-Red.svg"); + width: 24px; + height: 24px; +} + +.no-result-icon { + background-image: url("../images/limited-icon.svg"); + width: 52px; + height: 47px; +} + +.active .dashboard-icon { + background-image: url("../images/Icon-Dashboard-Active.svg"); +} + +.active .sales-icon { + background-image: url("../images/Icon-Sales-Active.svg"); +} + +.active .catalog-icon { + background-image: url("../images/Icon-Catalog-Active.svg"); +} + +.active .customer-icon { + background-image: url("../images/Icon-Customers-Active.svg"); +} + +.active .settings-icon { + background-image: url("../images/Icon-Settings-Active.svg"); +} + +.active .configuration-icon { + background-image: url("../images/Icon-Configure-Active.svg"); +} + +.active > .arrow-down-icon { + background-image: url("../images/Arrow-Down.svg"); + width: 14px; + height: 8px; +} + +.active > .expand-icon { + background-image: url("../images/Expand-Light-On.svg"); +} + +.active.dashboard-icon { + background-image: url("../images/Icon-Dashboard-Active.svg"); +} + +.active.customer-icon { + background-image: url("../images/Icon-Customers-Active.svg"); +} + +.active.sales-icon { + background-image: url("../images/Icon-Sales-Active.svg"); +} + +.active.settings-icon { + background-image: url("../images/Icon-Settings-Active.svg"); +} + +.active.configuration-icon { + background-image: url("../images/Icon-Configure-Active.svg"); +} + +.active.arrow-down-icon { + background-image: url("../images/Arrow-Down.svg"); + width: 14px; + height: 8px; +} + +.active.expand-icon { + background-image: url("../images/Expand-Light-On.svg"); +} + +.icon-404 { + background-image: url("../images/404-image.svg"); + width: 255px; + height: 255px; +} + +/* Data grid css starts here */ +.grid-container { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.grid-container .filter-wrapper { + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.grid-container .filter-wrapper .filter-row-one, +.grid-container .filter-wrapper .filter-row-two { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; +} + +.grid-container .filter-wrapper .filter-row-one { + height: 40px; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.grid-container .filter-wrapper .filter-row-one .search-filter .control { + font-family: "montserrat", sans-serif; + padding-left: 10px; + width: 380px; + height: 36px; + border: 2px solid #C7C7C7; + border-radius: 3px; + border-right: 0px; + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + font-size: 14px; +} + +.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper { + display: block; + height: 36px; + width: 36px; + border: 2px solid #C7C7C7; + border-left: none; + border-radius: 2px; +} + +.grid-container .filter-wrapper .filter-row-one .search-filter .ic-wrapper .search-icon { + margin-left: 4px; + margin-top: 4px; + height: 24px; + width: 24px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters { + margin-right: 5px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + font-family: "montserrat", sans-serif; + padding-left: 5px; + height: 36px; + width: 150px; + border: 2px solid #C7C7C7; + border-radius: 2px; + background-color: #ffffff; + color: #8e8e8e; + font-size: 14px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header { + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-toggle .dropdown-header .arrow-down-icon { + margin-right: 5px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li.filter-column-dropdown .filter-column-select { + width: 100%; + background: #ffffff; + border: 2px solid #C7C7C7; + border-radius: 3px; + height: 36px; + display: inline-block; + vertical-align: middle; + -webkit-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + padding: 0px 5px; + font-family: "montserrat", sans-serif; + margin-top: 10px; + margin-bottom: 5px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li select { + background: #ffffff; + border: 2px solid #C7C7C7; + border-radius: 3px; + height: 36px; + max-width: 100%; + display: inline-block; + vertical-align: middle; + -webkit-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + padding: 0px 5px; + font-family: "montserrat", sans-serif; + margin-top: 10px; + margin-bottom: 5px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul li input { + background: #fff; + border: 2px solid #c7c7c7; + border-radius: 3px; + height: 36px; + max-width: 100%; + display: inline-block; + vertical-align: middle; + -webkit-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + padding: 0px 5px; + font-family: "montserrat", sans-serif; + margin-top: 10px; + margin-bottom: 5px; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-string { + display: none; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-number { + display: none; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-condition-dropdown-datetime { + display: none; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-string { + display: none; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-boolean { + display: none; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-datetime { + display: none; +} + +.grid-container .filter-wrapper .filter-row-one .dropdown-filters .more-filters .dropdown-list .dropdown-container ul .filter-response-number { + display: none; +} + +.grid-container .filter-wrapper .filter-row-two { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-top: 6px; + margin-bottom: 6px; +} + +.grid-container .filter-wrapper .filter-row-two .filter-one { + margin-right: 10px; +} + +.grid-container .filter-wrapper .filter-row-two .filter-one .filter-name { + margin-right: 5px; +} + +.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + background: #e7e7e7; + padding-left: 5px; + color: #000311; + vertical-align: middle; +} + +.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .f-value { + margin: auto; +} + +.grid-container .filter-wrapper .filter-row-two .filter-one .filter-value .cross-icon { + margin: 5px; + height: 18px !important; + width: 18px !important; + cursor: pointer; +} + +.grid-container .table thead .mass-action-wrapper { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-pack: start; + -ms-flex-pack: start; + justify-content: flex-start; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.grid-container .table thead .mass-action-wrapper .massaction-remove { + margin-top: 4px; + margin-right: 10px; +} + +.grid-container .table thead .mass-action-wrapper .selected-items { + margin-right: 15px; +} + +.grid-container .table thead tr th.grid_head .sort-down-icon, .grid-container .table thead tr th.grid_head .sort-up-icon { + margin-left: 5px; + margin-top: -3px; + vertical-align: middle; +} + +.grid-container .table thead tr th.grid_head.sortable { + cursor: pointer; +} + +.grid-container .table thead tr th { + text-transform: capitalize; +} + +.grid-container .table tbody td.action a:first-child { + margin-right: 10px; +} + +.grid-container .table .pagination { + margin-top: 20px; +} + +/* DataGrid css ends in here */ +@-webkit-keyframes jelly { + 0% { + -webkit-transform: translateY(0px) scale(0.7); + transform: translateY(0px) scale(0.7); + opacity: 0; + } + 70% { + -webkit-transform: translateY(5px) scale(1.05); + transform: translateY(5px) scale(1.05); + opacity: 1; + } + 100% { + -webkit-transform: translateY(0px) scale(1); + transform: translateY(0px) scale(1); + opacity: 1; + } +} +@keyframes jelly { + 0% { + -webkit-transform: translateY(0px) scale(0.7); + transform: translateY(0px) scale(0.7); + opacity: 0; + } + 70% { + -webkit-transform: translateY(5px) scale(1.05); + transform: translateY(5px) scale(1.05); + opacity: 1; + } + 100% { + -webkit-transform: translateY(0px) scale(1); + transform: translateY(0px) scale(1); + opacity: 1; + } +} + +@-webkit-keyframes jelly-out { + 0% { + -webkit-transform: translateY(0px) scale(1); + transform: translateY(0px) scale(1); + opacity: 1; + } + 30% { + -webkit-transform: translateY(-5px) scale(1.05); + transform: translateY(-5px) scale(1.05); + opacity: 1; + } + 100% { + -webkit-transform: translateY(0px) scale(0.7); + transform: translateY(0px) scale(0.7); + opacity: 0; + } +} + +@keyframes jelly-out { + 0% { + -webkit-transform: translateY(0px) scale(1); + transform: translateY(0px) scale(1); + opacity: 1; + } + 30% { + -webkit-transform: translateY(-5px) scale(1.05); + transform: translateY(-5px) scale(1.05); + opacity: 1; + } + 100% { + -webkit-transform: translateY(0px) scale(0.7); + transform: translateY(0px) scale(0.7); + opacity: 0; + } +} + +* { + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +*:focus { + outline: none; +} + +a:link, +a:hover, +a:visited, +a:focus, +a:active { + text-decoration: none; + color: #0041FF; +} + +ul { + margin: 0; + padding: 0; + list-style: none; +} + +h1 { + font-size: 28px; + color: #3a3a3a; + margin-top: 0; +} + +h2 { + font-size: 18px; + color: #3a3a3a; +} + +.tooltip { + position: relative; + border-bottom: 1px solid black; +} + +.tooltip .tooltiptext { + visibility: hidden; + width: 120px; + background-color: black; + color: #fff; + text-align: center; + border-radius: 6px; + padding: 5px 0; + /* Position the tooltip */ + position: absolute; + z-index: 1; +} + +.tooltip:hover .tooltiptext { + visibility: visible; +} + +.hide { + display: none !important; +} + +.btn { + -webkit-box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2), 0 0 8px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2), 0 0 8px 0 rgba(0, 0, 0, 0.1); + border-radius: 3px; + border: none; + color: #fff; + cursor: pointer; + -webkit-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + font: inherit; + display: inline-block; +} + +.btn:hover, .btn:active, .btn:focus { + opacity: 0.75; + border: none; +} + +.btn.btn-sm { + padding: 6px 12px; +} + +.btn.btn-md { + padding: 8px 16px; +} + +.btn.btn-lg { + padding: 10px 20px; +} + +.btn.btn-xl { + padding: 12px 24px; + font-size: 16px; +} + +.btn.btn-primary { + background: #0041FF; + color: #ffffff; +} + +.btn:disabled, .btn[disabled="disabled"], .btn[disabled="disabled"]:hover, .btn[disabled="disabled"]:active { + cursor: not-allowed; + background: #b1b1ae; + -webkit-box-shadow: none; + box-shadow: none; + opacity: 1; +} + +.dropdown-open { + position: relative; +} + +.dropdown-list { + width: 200px; + margin-bottom: 20px; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 0 9px 0 rgba(0, 0, 0, 0.16); + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 0 9px 0 rgba(0, 0, 0, 0.16); + border-radius: 3px; + background-color: #ffffff; + position: absolute; + display: none; + z-index: 10; + text-align: left; +} + +.dropdown-list.bottom-left { + top: 42px; + left: 0px; +} + +.dropdown-list.bottom-right { + top: 42px; + right: 0px; +} + +.dropdown-list.top-left { + bottom: 42px; + left: 0px; +} + +.dropdown-list.top-right { + bottom: 42px; + right: 0px; +} + +.dropdown-list .search-box { + padding: 20px; + border-bottom: 1px solid rgba(162, 162, 162, 0.2); +} + +.dropdown-list .search-box .control { + background: #fff; + border: 2px solid #C7C7C7; + border-radius: 3px; + width: 100%; + height: 36px; + display: inline-block; + vertical-align: middle; + -webkit-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + padding: 0px 10px; + font-size: 15px; +} + +.dropdown-list .search-box .control:focus { + border-color: #0041FF; +} + +.dropdown-list .dropdown-container { + padding: 20px; + overflow-y: auto; + max-height: 280px; +} + +.dropdown-list .dropdown-container label { + font-size: 15px; + display: inline-block; + text-transform: uppercase; + color: #9e9e9e; + font-weight: 700; + padding-bottom: 5px; +} + +.dropdown-list .dropdown-container ul { + margin: 0px; + list-style-type: none; + padding: 0px; +} + +.dropdown-list .dropdown-container ul li { + padding: 5px 0px; +} + +.dropdown-list .dropdown-container ul li a:link, +.dropdown-list .dropdown-container ul li a:active, +.dropdown-list .dropdown-container ul li a:visited, +.dropdown-list .dropdown-container ul li a:focus { + color: #333333; + display: block; +} + +.dropdown-list .dropdown-container ul li a:hover { + color: #0041FF; +} + +.dropdown-list .dropdown-container ul li .checkbox { + margin: 0; +} + +.dropdown-list .dropdown-container ul li .control-group label { + color: #3a3a3a; + font-size: 15px; + font-weight: 500; + text-transform: capitalize; + width: 100%; +} + +.dropdown-list .dropdown-container .btn { + width: 100%; + margin-top: 10px; +} + +.table { + width: 100%; + overflow-x: auto; +} + +.table table { + width: 100%; + border-collapse: collapse; + text-align: left; +} + +.table table thead th { + font-weight: 700; + padding: 12px 10px; + background: #f8f9fa; + color: #3a3a3a; +} + +.table table tbody td { + padding: 10px; + border-bottom: solid 1px #d3d3d3; + color: #3a3a3a; + vertical-align: middle; +} + +.table table tbody td.actions { + text-align: right; +} + +.table table tbody td.actions .icon { + cursor: pointer; + vertical-align: middle; +} + +.table table tbody td.empty { + text-align: center; +} + +.table table tbody tr:last-child td { + border-bottom: none; +} + +.table .control-group { + width: 100%; + margin-bottom: 0; +} + +.table .control-group .control { + width: 100%; + margin: 0; +} + +.dropdown-btn { + min-width: 150px; + text-align: left; + background: #ffffff; + border: 2px solid #C7C7C7; + border-radius: 3px; + font-size: 14px; + padding: 8px 35px 8px 10px; + cursor: pointer; + position: relative; +} + +.dropdown-btn:hover, .dropdown-btn:active, .dropdown-btn:focus { + opacity: 0.75; + border: 2px solid #C7C7C7; +} + +.dropdown-btn .icon { + position: absolute; + right: 10px; + top: 50%; + margin-top: -4px; +} + +.pagination .page-item { + background: #ffffff; + border: 2px solid #C7C7C7; + border-radius: 3px; + padding: 7px 14px; + margin-right: 5px; + font-size: 16px; + display: inline-block; + color: #8e8e8e; + vertical-align: middle; + text-decoration: none; +} + +.pagination .page-item.previous, .pagination .page-item.next { + padding: 6px 9px; +} + +.pagination .page-item.active { + background: #0041ff; + color: #fff; + border-color: #0041ff; +} + +.pagination .page-item .icon { + vertical-align: middle; + margin-bottom: 3px; +} + +.checkbox { + position: relative; + display: block; + vertical-align: middle; + margin: 10px 5px 5px 0px; +} + +.checkbox input { + left: 0; + opacity: 0; + position: absolute; + top: 0; + z-index: 100; +} + +.checkbox .checkbox-view { + background-image: url("../images/Checkbox.svg"); + height: 24px; + width: 24px; + margin: 0; + display: inline-block !important; + vertical-align: middle; + margin-right: 5px; +} + +.checkbox input:checked + .checkbox-view { + background-image: url("../images/Checkbox-Checked.svg"); +} + +.checkbox input:disabled + .checkbox-view { + opacity: 0.5; + cursor: not-allowed; +} + +.radio { + position: relative; + display: block; + margin: 10px 5px 5px 0px; +} + +.radio input { + left: 0; + opacity: 0; + position: absolute; + top: 0; + z-index: 100; +} + +.radio .radio-view { + background-image: url("../images/controls.svg"); + background-position: -21px 0px; + height: 20px; + width: 20px; + margin: 0; + display: inline-block !important; + vertical-align: middle; + margin-right: 5px; +} + +.radio input:checked + .radio-view { + background-position: -21px -21px; +} + +.radio input:disabled + .radio-view { + opacity: 0.5; + cursor: not-allowed; +} + +.control-group { + display: block; + margin-bottom: 25px; + font-size: 15px; + color: #333333; + width: 750px; + max-width: 100%; + position: relative; +} + +.control-group label { + display: block; + color: #3a3a3a; +} + +.control-group label.required::after { + content: "*"; + color: #FC6868; + font-weight: 700; + display: inline-block; +} + +.control-group textarea.control { + height: 100px; + padding: 10px; +} + +.control-group .control { + background: #fff; + border: 2px solid #C7C7C7; + border-radius: 3px; + width: 70%; + height: 36px; + display: inline-block; + vertical-align: middle; + -webkit-transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1); + padding: 0px 10px; + font-size: 15px; + margin-top: 10px; + margin-bottom: 5px; +} + +.control-group .control:focus { + border-color: #0041FF; +} + +.control-group .control[disabled="disabled"] { + border-color: #d3d3d3; + background-color: #d3d3d3; + cursor: not-allowed; +} + +.control-group .control[multiple] { + height: 100px; +} + +.control-group.date::after, .control-group.datetime::after { + background-image: url("../images/Icon-Calendar.svg"); + width: 24px; + height: 24px; + content: ''; + display: inline-block; + vertical-align: middle; + margin-left: -34px; + margin-top: 2px; +} + +.control-group .control-info { + display: block; + font-style: italic; + color: #6f6f6f; +} + +.control-group .control-error { + display: none; + color: #ff5656; + margin-top: 5px; +} + +.control-group.has-error .control { + border-color: #FC6868; +} + +.control-group.has-error .control-error { + display: block; +} + +.control-group.price .currency-code { + vertical-align: middle; + display: inline-block; +} + +.button-group { + margin-top: 20px; + margin-bottom: 20px; +} + +.alert-wrapper { + width: 300px; + top: 10px; + right: 10px; + position: fixed; + z-index: 6; + text-align: left; +} + +.alert-wrapper .alert { + width: 300px; + padding: 15px; + border-radius: 3px; + display: inline-block; + -webkit-box-shadow: 0px 4px 15.36px 0.64px rgba(0, 0, 0, 0.1), 0px 2px 6px 0px rgba(0, 0, 0, 0.12); + box-shadow: 0px 4px 15.36px 0.64px rgba(0, 0, 0, 0.1), 0px 2px 6px 0px rgba(0, 0, 0, 0.12); + position: relative; + -webkit-animation: jelly 0.5s ease-in-out; + animation: jelly 0.5s ease-in-out; + -webkit-transform-origin: center top; + transform-origin: center top; + z-index: 500; + margin-bottom: 10px; +} + +.alert-wrapper .alert.alert-error { + background: #FC6868; +} + +.alert-wrapper .alert.alert-info { + background: #204d74; +} + +.alert-wrapper .alert.alert-success { + background: #4CAF50; +} + +.alert-wrapper .alert.alert-warning { + background: #FFC107; +} + +.alert-wrapper .alert .icon { + position: absolute; + right: 10px; + top: 10px; + cursor: pointer; +} + +.alert-wrapper .alert p { + color: #ffffff; + margin: 0px; + padding: 0px; + font-size: 15px; +} + +.tabs ul { + border-bottom: solid 1px rgba(162, 162, 162, 0.2); +} + +.tabs ul li { + display: inline-block; +} + +.tabs ul li a { + padding: 15px 20px; + cursor: pointer; + margin: 0px 2px; + text-align: center; + color: #000311; + display: block; +} + +.tabs ul li.active a { + border-bottom: 3px solid #0041FF; +} + +.accordian, accordian { + display: inline-block; + width: 100%; +} + +.accordian .accordian-header, .accordian div[slot*="header"], accordian .accordian-header, accordian div[slot*="header"] { + width: 100%; + display: inline-block; + font-size: 18px; + color: #3a3a3a; + border-bottom: solid 1px rgba(162, 162, 162, 0.2); + padding: 20px 15px; + cursor: pointer; +} + +.accordian .accordian-header .expand-icon, .accordian div[slot*="header"] .expand-icon, accordian .accordian-header .expand-icon, accordian div[slot*="header"] .expand-icon { + background-image: url("../images/Expand-Light.svg"); + margin-right: 10px; + margin-top: 3px; +} + +.accordian .accordian-header h1, .accordian div[slot*="header"] h1, accordian .accordian-header h1, accordian div[slot*="header"] h1 { + margin: 0; + font-size: 20px; + display: inline-block; +} + +.accordian .accordian-header .icon, .accordian div[slot*="header"] .icon, accordian .accordian-header .icon, accordian div[slot*="header"] .icon { + float: right; +} + +.accordian .accordian-header .icon.left, .accordian div[slot*="header"] .icon.left, accordian .accordian-header .icon.left, accordian div[slot*="header"] .icon.left { + float: left; +} + +.accordian .accordian-content, .accordian div[slot*="body"], accordian .accordian-content, accordian div[slot*="body"] { + width: 100%; + padding: 20px 15px; + display: none; + -webkit-transition: 0.3s ease all; + transition: 0.3s ease all; +} + +.accordian.active > .accordian-content, accordian.active > .accordian-content { + display: inline-block; +} + +.accordian.active > .accordian-header .expand-icon, accordian.active > .accordian-header .expand-icon { + background-image: url("../images/Expand-Light-On.svg"); +} + +.tree-container .tree-item { + padding-left: 30px; + display: inline-block; + margin-top: 10px; + width: 100%; +} + +.tree-container .tree-item > .tree-item { + display: none; +} + +.tree-container .tree-item.active > .tree-item { + display: inline-block; +} + +.tree-container .tree-item .checkbox { + margin: 0; + display: inline-block; +} + +.tree-container .tree-item .radio { + margin: 0; + display: inline-block; +} + +.tree-container .tree-item .expand-icon { + display: inline-block; + margin-right: 10px; + cursor: pointer; + background-image: url("../images/Expand-Light.svg"); + width: 18px; + height: 18px; + vertical-align: middle; +} + +.tree-container .tree-item .folder-icon { + vertical-align: middle; + margin-right: 10px; +} + +.tree-container .tree-item.active > .expand-icon { + background-image: url("../images/Expand-Light-On.svg"); +} + +.tree-container > .tree-item { + padding-left: 0; +} + +.panel { + -webkit-box-shadow: 0 2px 25px 0 rgba(0, 0, 0, 0.15); + box-shadow: 0 2px 25px 0 rgba(0, 0, 0, 0.15); + border-radius: 5px; + background: #fff; +} + +.panel .panel-content { + padding: 20px; +} + +.modal-open { + overflow: hidden; +} + +.modal-overlay { + display: none; + overflow-y: auto; + z-index: 10; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + position: fixed; + background: #000; + opacity: 0.75; +} + +.modal-open .modal-overlay { + display: block; +} + +.modal-container { + -webkit-animation: fade-in-white 0.3s ease-in-out; + animation: fade-in-white 0.3s ease-in-out; + z-index: 11; + margin-left: -350px; + width: 600px; + max-width: 80%; + background: #ffffff; + position: fixed; + left: 50%; + top: 100px; + margin-bottom: 100px; + -webkit-box-shadow: 0px 15px 25px 0px rgba(0, 0, 0, 0.03), 0px 20px 45px 5px rgba(0, 0, 0, 0.2); + box-shadow: 0px 15px 25px 0px rgba(0, 0, 0, 0.03), 0px 20px 45px 5px rgba(0, 0, 0, 0.2); + -webkit-animation: jelly 0.5s ease-in-out; + animation: jelly 0.5s ease-in-out; + border-radius: 5px; +} + +.modal-container .modal-header { + padding: 20px; +} + +.modal-container .modal-header h3 { + display: inline-block; + font-size: 20px; + color: #3a3a3a; + margin: 0; +} + +.modal-container .modal-header .icon { + float: right; + cursor: pointer; +} + +.modal-container .modal-body { + padding: 20px; +} + +.modal-container .modal-body .control-group .control { + width: 100%; +} + +.label { + background: #E7E7E7; + border-radius: 2px; + padding: 8px; + color: #000311; + display: inline-block; +} + +.label.label-sm { + padding: 5px; +} + +.label.label-md { + padding: 8px; +} + +.label.label-lg { + padding: 11px; +} + +.label.label-xl { + padding: 14px; +} + +.badge { + border-radius: 50px; + color: white; + padding: 8px; +} + +.badge.badge-sm { + padding: 5px; +} + +.badge.badge-md { + padding: 3px 10px; +} + +.badge.badge-lg { + padding: 11px; +} + +.badge.badge-xl { + padding: 14px; +} + +.badge.badge-success { + background-color: #4CAF50; +} + +.badge.badge-info { + background-color: #0041FF; +} + +.badge.badge-danger { + background-color: #FC6868; +} + +.badge.badge-warning { + background-color: #FFC107; +} + +.image-wrapper { + margin-bottom: 20px; + display: inline-block; + width: 100%; +} + +.image-wrapper .image-item { + width: 200px; + height: 200px; + margin-right: 20px; + background: #F8F9FA; + border-radius: 3px; + display: inline-block; + position: relative; + background-image: url("../images/placeholder-icon.svg"); + background-repeat: no-repeat; + background-position: center; + margin-bottom: 20px; +} + +.image-wrapper .image-item img.preview { + width: 100%; + height: 100%; +} + +.image-wrapper .image-item input { + display: none; +} + +.image-wrapper .image-item .remove-image { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.08)), to(rgba(0, 0, 0, 0.24))); + background-image: linear-gradient(-180deg, rgba(0, 0, 0, 0.08) 0%, rgba(0, 0, 0, 0.24) 100%); + border-radius: 0 0 4px 4px; + position: absolute; + bottom: 0; + width: 100%; + padding: 10px; + text-align: center; + color: #fff; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.24); + margin-right: 20px; + cursor: pointer; +} + +.image-wrapper .image-item:hover .remove-image { + display: block; +} + +.image-wrapper .image-item.has-image { + background-image: none; +} + +.cp-spinner { + width: 48px; + height: 48px; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.cp-round:before { + border-radius: 50%; + content: " "; + width: 48px; + height: 48px; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-top: solid 6px #bababa; + border-right: solid 6px #bababa; + border-bottom: solid 6px #bababa; + border-left: solid 6px #bababa; + position: absolute; + top: 0; + left: 0; +} + +.cp-round:after { + border-radius: 50%; + content: " "; + width: 48px; + height: 48px; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-top: solid 6px #0041FF; + border-right: solid 6px transparent; + border-bottom: solid 6px transparent; + border-left: solid 6px transparent; + position: absolute; + top: 0; + left: 0; + -webkit-animation: spin 1s ease-in-out infinite; + animation: spin 1s ease-in-out infinite; +} + +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} diff --git a/packages/Webkul/Ui/publishable/assets/js/ui.js b/packages/Webkul/Ui/publishable/assets/js/ui.js index 079b24614..2d1e248c4 100644 --- a/packages/Webkul/Ui/publishable/assets/js/ui.js +++ b/packages/Webkul/Ui/publishable/assets/js/ui.js @@ -1 +1,3027 @@ -!function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i(i.s=0)}({"+wdr":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={data:function(){return{sample:"",image_file:"",file:null,newImage:""}},mounted:function(){this.sample="";var e=this.$el.getElementsByTagName("input")[0],t=this;e.onchange=function(){var i=new FileReader;i.readAsDataURL(e.files[0]),i.onload=function(e){this.img=document.getElementsByTagName("input")[0],this.img.src=e.target.result,t.newImage=this.img.src,t.changePreview()}}},methods:{removePreviewImage:function(){this.sample=""},changePreview:function(){this.sample=this.newImage}},computed:{getInputImage:function(){console.log(this.imageData)}}}},0:function(e,t,i){i("J66Q"),i("Oy72"),e.exports=i("MT9B")},"13ON":function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"tabs"},[i("ul",e._l(e.tabs,function(t){return i("li",{class:{active:t.isActive},on:{click:function(i){e.selectTab(t)}}},[i("a",[e._v(e._s(t.name))])])}))]),e._v(" "),i("div",{staticClass:"tabs-content"},[e._t("default")],2)])},staticRenderFns:[]}},"2JMG":function(e,t,i){var n=i("VU/8")(i("G3lE"),null,!1,null,null,null);e.exports=n.exports},"31/P":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default={name:"tree-view",inheritAttrs:!1,props:{inputType:String,nameField:String,idField:String,captionField:String,childrenField:String,valueField:String,items:{type:[Array,String,Object],required:!1,default:null},value:{type:Array,required:!1,default:null},behavior:{type:String,required:!1,default:"reactive"},savedValues:{type:Array,required:!1,default:null}},created:function(){-1!==this.savedValues.indexOf(this.items[this.valueField])&&this.value.push(this.items)},computed:{caption:function(){return this.items[this.captionField]},allChildren:function(){var e=this,t=[];return function i(r){if(r[e.childrenField]&&e.getLength(r[e.childrenField])>0)if("object"==n(r[e.childrenField]))for(var s in r[e.childrenField])i(r[e.childrenField][s]);else r[e.childrenField].forEach(function(e){return i(e)});else t.push(r)}(this.items),t},hasChildren:function(){return!!this.items[this.childrenField]&&this.getLength(this.items[this.childrenField])>0},hasSelection:function(){return!!this.value&&this.value.length>0},isAllChildrenSelected:function(){var e=this;return this.hasChildren&&this.hasSelection&&this.allChildren.every(function(t){return e.value.some(function(i){return i[e.idField]===t[e.idField]})})},isSomeChildrenSelected:function(){var e=this;return this.hasChildren&&this.hasSelection&&this.allChildren.some(function(t){return e.value.some(function(i){return i[e.idField]===t[e.idField]})})}},methods:{getLength:function(e){if("object"==(void 0===e?"undefined":n(e))){var t=0;for(var i in e)t++;return t}return e.length},generateRoot:function(){var e=this;return"checkbox"==this.inputType?"reactive"==this.behavior?this.$createElement("tree-checkbox",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],inputValue:this.hasChildren?this.isSomeChildrenSelected:this.value,value:this.hasChildren?this.isAllChildrenSelected:this.items},on:{change:function(t){e.hasChildren?(e.isAllChildrenSelected?e.allChildren.forEach(function(t){var i=e.value.indexOf(t);e.value.splice(i,1)}):e.allChildren.forEach(function(t){var i=!1;e.value.forEach(function(e){e.key==t.key&&(i=!0)}),i||e.value.push(t)}),e.$emit("input",e.value)):e.$emit("input",t)}}}):this.$createElement("tree-checkbox",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],inputValue:this.value,value:this.items}}):"radio"==this.inputType?this.$createElement("tree-radio",{props:{id:this.items[this.idField],label:this.caption,nameField:this.nameField,modelValue:this.items[this.valueField],value:this.savedValues}}):void 0},generateChild:function(e){var t=this;return this.$createElement("tree-item",{on:{input:function(e){t.$emit("input",e)}},props:{items:e,value:this.value,savedValues:this.savedValues,nameField:this.nameField,inputType:this.inputType,captionField:this.captionField,childrenField:this.childrenField,valueField:this.valueField,idField:this.idField,behavior:this.behavior}})},generateChildren:function(){var e=this,t=[];if(this.items[this.childrenField])if("object"==n(this.items[this.childrenField]))for(var i in this.items[this.childrenField])t.push(this.generateChild(this.items[this.childrenField][i]));else this.items[this.childrenField].forEach(function(i){t.push(e.generateChild(i))});return t},generateIcon:function(){var e=this;return this.$createElement("i",{class:["expand-icon"],on:{click:function(t){e.$el.classList.toggle("active")}}})},generateFolderIcon:function(){return this.$createElement("i",{class:["icon","folder-icon"]})}},render:function(e){return e("div",{class:["tree-item","active",this.hasChildren?"has-children":""]},[this.generateIcon(),this.generateFolderIcon(),this.generateRoot()].concat(function(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);te||height0},attrs:{for:e._uid}},[i("input",{attrs:{type:"hidden",name:e.finalInputName}}),e._v(" "),i("input",{ref:"imageInput",attrs:{type:"file",accept:"image/*",name:e.finalInputName,id:e._uid},on:{change:function(t){e.addImageView(t)}}}),e._v(" "),e.imageData.length>0?i("img",{staticClass:"preview",attrs:{src:e.imageData}}):e._e(),e._v(" "),i("label",{staticClass:"remove-image",on:{click:function(t){e.removeImage()}}},[e._v(e._s(e.removeButtonLabel))])])},staticRenderFns:[]}},"Tty+":function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["id","isOpen"],created:function(){this.closeModal()},computed:{isModalOpen:function(){return this.addClassToBody(),this.isOpen}},methods:{closeModal:function(){this.$root.$set(this.$root.modalIds,this.id,!1)},addClassToBody:function(){var e=document.querySelector("body");this.isOpen?e.classList.add("modal-open"):e.classList.remove("modal-open")}}}},UHEH:function(e,t,i){var n=i("VU/8")(i("7z1m"),i("n2S5"),!1,null,null,null);e.exports=n.exports},"VU/8":function(e,t){e.exports=function(e,t,i,n,r,s){var a,o=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(a=e,o=e.default);var u,d="function"==typeof o?o.options:o;if(t&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0),i&&(d.functional=!0),r&&(d._scopeId=r),s?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},d._ssrRegister=u):n&&(u=n),u){var c=d.functional,h=c?d.render:d.beforeCreate;c?(d._injectStyles=u,d.render=function(e,t){return u.call(t),h(e,t)}):d.beforeCreate=h?[].concat(h,u):[u]}return{esModule:a,exports:o,options:d}}},VrhZ:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.isModalOpen?i("div",{staticClass:"modal-container"},[i("div",{staticClass:"modal-header"},[e._t("header",[e._v("\n Default header\n ")]),e._v(" "),i("i",{staticClass:"icon remove-icon",on:{click:e.closeModal}})],2),e._v(" "),i("div",{staticClass:"modal-body"},[e._t("body",[e._v("\n Default body\n ")])],2)]):e._e()},staticRenderFns:[]}},YjnE:function(e,t,i){var n=i("VU/8")(i("7aQn"),null,!1,null,null,null);e.exports=n.exports},Z7s4:function(e,t,i){var n=i("VU/8")(i("qyM9"),i("44Sb"),!1,null,null,null);e.exports=n.exports},atAl:function(e,t,i){var n=i("VU/8")(i("wtqv"),i("AOOz"),!1,null,null,null);e.exports=n.exports},by3Y:function(e,t){e.exports={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{directives:[{name:"show",rawName:"v-show",value:this.isActive,expression:"isActive"}]},[this._t("default")],2)},staticRenderFns:[]}},fXJ7:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"preview-image"},[e._t("default"),e._v(" "),i("div",{staticClass:"preview-wrapper"},[i("img",{staticClass:"image-preview",attrs:{src:e.sample}})]),e._v(" "),i("div",{staticClass:"remove-preview"},[i("button",{staticClass:"btn btn-md btn-primary",on:{click:function(t){return t.preventDefault(),e.removePreviewImage(t)}}},[e._v("Remove Image")])])],2)},staticRenderFns:[]}},fuLy:function(e,t,i){var n=i("VU/8")(i("6wXy"),i("yfX9"),!1,null,null,null);e.exports=n.exports},"i//U":function(e,t,i){var n=i("VU/8")(i("8skS"),i("Rsk5"),!1,null,null,null);e.exports=n.exports},iT8k:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:{name:{required:!0},selected:{default:!1}},data:function(){return{isActive:!1}},mounted:function(){this.isActive=this.selected}}},k4Ds:function(e,t,i){var n=i("VU/8")(i("31/P"),null,!1,null,null,null);e.exports=n.exports},kIKU:function(e,t,i){var n=i("VU/8")(i("rolU"),i("rMY+"),!1,null,null,null);e.exports=n.exports},n2S5:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition-group",{staticClass:"alert-wrapper",attrs:{tag:"div",name:"flash-wrapper"}},e._l(e.flashes,function(t){return i("flash",{key:t.uid,attrs:{flash:t},on:{onRemoveFlash:function(t){e.removeFlash(t)}}})}))},staticRenderFns:[]}},o0bH:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={bind:function(e,t,i){e.addEventListener("input",function(e){setTimeout(function(){e.target.value=e.target.value.toString().replace(/[^\w_ ]+/g,"").trim().replace(/ +/g,"-")},100)})}}},o3eH:function(e,t,i){var n=i("VU/8")(i("sTtw"),i("13ON"),!1,null,null,null);e.exports=n.exports},pM6D:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={bind:function(e,t,i){e.addEventListener("click",function(i){i.preventDefault();var n="Are your sure you want to perform this action ?";t.value&&""!=t.value&&(n=t.value),confirm(n)&&(window.location.href=e.href)})}}},qyM9:function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"tree-radio",props:["id","label","nameField","modelValue","value"],computed:{isActive:function(){return!!this.value.length&&this.value[0]==this.modelValue}}}},"rMY+":function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"image-wrapper"},e._l(e.items,function(t,n){return i("image-item",{key:t.id,attrs:{image:t,"input-name":e.inputName,"remove-button-label":e.removeButtonLabel},on:{onRemoveImage:function(t){e.removeImage(t)}}})})),e._v(" "),i("label",{staticClass:"btn btn-lg btn-primary",staticStyle:{display:"inline-block",width:"auto"},on:{click:e.createFileType}},[e._v(e._s(e.buttonLabel))])])},staticRenderFns:[]}},rjj0:function(e,t,i){var n="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!n)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var r=i("tTVk"),s={},a=n&&(document.head||document.getElementsByTagName("head")[0]),o=null,l=0,u=!1,d=function(){},c=null,h="data-vue-ssr-id",f="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(e){for(var t=0;ti.parts.length&&(n.parts.length=i.parts.length)}else{var a=[];for(r=0;r 0) { + if (_typeof(items[_this.childrenField]) == 'object') { + for (var key in items[_this.childrenField]) { + searchTree(items[_this.childrenField][key]); + } + } else { + items[_this.childrenField].forEach(function (child) { + return searchTree(child); + }); + } + } else { + leafs.push(items); + } + }; + + searchTree(this.items); + + return leafs; + }, + hasChildren: function hasChildren() { + return !!this.items[this.childrenField] && this.getLength(this.items[this.childrenField]) > 0; + }, + hasSelection: function hasSelection() { + return !!this.value && this.value.length > 0; + }, + isAllChildrenSelected: function isAllChildrenSelected() { + var _this2 = this; + + return this.hasChildren && this.hasSelection && this.allChildren.every(function (leaf) { + return _this2.value.some(function (sel) { + return sel[_this2.idField] === leaf[_this2.idField]; + }); + }); + }, + isSomeChildrenSelected: function isSomeChildrenSelected() { + var _this3 = this; + + return this.hasChildren && this.hasSelection && this.allChildren.some(function (leaf) { + return _this3.value.some(function (sel) { + return sel[_this3.idField] === leaf[_this3.idField]; + }); + }); + } + }, + + methods: { + getLength: function getLength(items) { + if ((typeof items === 'undefined' ? 'undefined' : _typeof(items)) == 'object') { + var length = 0; + + for (var item in items) { + length++; + } + + return length; + } + + return items.length; + }, + generateRoot: function generateRoot() { + var _this4 = this; + + if (this.inputType == 'checkbox') { + if (this.behavior == 'reactive') { + return this.$createElement('tree-checkbox', { + props: { + id: this.items[this.idField], + label: this.caption, + nameField: this.nameField, + modelValue: this.items[this.valueField], + inputValue: this.hasChildren ? this.isSomeChildrenSelected : this.value, + value: this.hasChildren ? this.isAllChildrenSelected : this.items + }, + on: { + change: function change(selection) { + if (_this4.hasChildren) { + if (_this4.isAllChildrenSelected) { + _this4.allChildren.forEach(function (leaf) { + var index = _this4.value.indexOf(leaf); + _this4.value.splice(index, 1); + }); + } else { + _this4.allChildren.forEach(function (leaf) { + var exists = false; + _this4.value.forEach(function (item) { + if (item['key'] == leaf['key']) { + exists = true; + } + }); + + if (!exists) { + _this4.value.push(leaf); + } + }); + } + + _this4.$emit('input', _this4.value); + } else { + _this4.$emit('input', selection); + } + } + } + }); + } else { + return this.$createElement('tree-checkbox', { + props: { + id: this.items[this.idField], + label: this.caption, + nameField: this.nameField, + modelValue: this.items[this.valueField], + inputValue: this.value, + value: this.items + } + }); + } + } else if (this.inputType == 'radio') { + return this.$createElement('tree-radio', { + props: { + id: this.items[this.idField], + label: this.caption, + nameField: this.nameField, + modelValue: this.items[this.valueField], + value: this.savedValues + } + }); + } + }, + generateChild: function generateChild(child) { + var _this5 = this; + + return this.$createElement('tree-item', { + on: { + input: function input(selection) { + _this5.$emit('input', selection); + } + }, + props: { + items: child, + value: this.value, + savedValues: this.savedValues, + nameField: this.nameField, + inputType: this.inputType, + captionField: this.captionField, + childrenField: this.childrenField, + valueField: this.valueField, + idField: this.idField, + behavior: this.behavior + } + }); + }, + generateChildren: function generateChildren() { + var _this6 = this; + + var childElements = []; + if (this.items[this.childrenField]) { + if (_typeof(this.items[this.childrenField]) == 'object') { + for (var key in this.items[this.childrenField]) { + childElements.push(this.generateChild(this.items[this.childrenField][key])); + } + } else { + this.items[this.childrenField].forEach(function (child) { + childElements.push(_this6.generateChild(child)); + }); + } + } + + return childElements; + }, + generateIcon: function generateIcon() { + var _this7 = this; + + return this.$createElement('i', { + class: ['expand-icon'], + on: { + click: function click(selection) { + _this7.$el.classList.toggle("active"); + } + } + }); + }, + generateFolderIcon: function generateFolderIcon() { + return this.$createElement('i', { + class: ['icon', 'folder-icon'] + }); + } + }, + + render: function render(createElement) { + return createElement('div', { + class: ['tree-item', 'active', this.hasChildren ? 'has-children' : ''] + }, [this.generateIcon(), this.generateFolderIcon(), this.generateRoot()].concat(_toConsumableArray(this.generateChildren()))); + } +}); + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +var disposed = false +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(23) +/* template */ +var __vue_template__ = __webpack_require__(24) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = null +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "src/Resources/assets/js/components/tree-view/tree-checkbox.vue" + +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-0c27ec9b", Component.options) + } else { + hotAPI.reload("data-v-0c27ec9b", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} + +module.exports = Component.exports + + +/***/ }), +/* 23 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'tree-checkbox', + + props: ['id', 'label', 'nameField', 'modelValue', 'inputValue', 'value'], + + computed: { + isMultiple: function isMultiple() { + return Array.isArray(this.internalValue); + }, + isActive: function isActive() { + var _this = this; + + var value = this.value; + var input = this.internalValue; + + if (this.isMultiple) { + return input.some(function (item) { + return _this.valueComparator(item, value); + }); + } + + return value ? this.valueComparator(value, input) : Boolean(input); + }, + + + internalValue: { + get: function get() { + return this.lazyValue; + }, + set: function set(val) { + this.lazyValue = val; + this.$emit('input', val); + } + } + }, + + data: function data(vm) { + return { + lazyValue: vm.inputValue + }; + }, + + watch: { + inputValue: function inputValue(val) { + this.internalValue = val; + } + }, + + methods: { + inputChanged: function inputChanged() { + var _this2 = this; + + var value = this.value; + var input = this.internalValue; + + if (this.isMultiple) { + var length = input.length; + + input = input.filter(function (item) { + return !_this2.valueComparator(item, value); + }); + + if (input.length === length) { + input.push(value); + } + } else { + input = !input; + } + + this.$emit('change', input); + }, + valueComparator: function valueComparator(a, b) { + var _this3 = this; + + if (a === b) return true; + + if (a !== Object(a) || b !== Object(b)) { + return false; + } + + var props = Object.keys(a); + + if (props.length !== Object.keys(b).length) { + return false; + } + + return props.every(function (p) { + return _this3.valueComparator(a[p], b[p]); + }); + } + } +}); + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("span", { staticClass: "checkbox" }, [ + _c("input", { + attrs: { type: "checkbox", id: _vm.id, name: [_vm.nameField + "[]"] }, + domProps: { value: _vm.modelValue, checked: _vm.isActive }, + on: { + change: function($event) { + _vm.inputChanged() + } + } + }), + _vm._v(" "), + _c("label", { staticClass: "checkbox-view", attrs: { for: _vm.id } }), + _vm._v(" "), + _c("span", { attrs: { for: _vm.id } }, [_vm._v(_vm._s(_vm.label))]) + ]) +} +var staticRenderFns = [] +render._withStripped = true +module.exports = { render: render, staticRenderFns: staticRenderFns } +if (false) { + module.hot.accept() + if (module.hot.data) { + require("vue-hot-reload-api") .rerender("data-v-0c27ec9b", module.exports) + } +} + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +var disposed = false +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(26) +/* template */ +var __vue_template__ = __webpack_require__(27) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = null +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "src/Resources/assets/js/components/tree-view/tree-radio.vue" + +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-7b7bb153", Component.options) + } else { + hotAPI.reload("data-v-7b7bb153", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} + +module.exports = Component.exports + + +/***/ }), +/* 26 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'tree-radio', + + props: ['id', 'label', 'nameField', 'modelValue', 'value'], + + computed: { + isActive: function isActive() { + if (this.value.length) { + return this.value[0] == this.modelValue ? true : false; + } + + return false; + } + } +}); + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("span", { staticClass: "radio" }, [ + _c("input", { + attrs: { type: "radio", id: _vm.id, name: _vm.nameField }, + domProps: { value: _vm.modelValue, checked: _vm.isActive } + }), + _vm._v(" "), + _c("label", { staticClass: "radio-view", attrs: { for: _vm.id } }), + _vm._v(" "), + _c("span", { attrs: { for: _vm.id } }, [_vm._v(_vm._s(_vm.label))]) + ]) +} +var staticRenderFns = [] +render._withStripped = true +module.exports = { render: render, staticRenderFns: staticRenderFns } +if (false) { + module.hot.accept() + if (module.hot.data) { + require("vue-hot-reload-api") .rerender("data-v-7b7bb153", module.exports) + } +} + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var disposed = false +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(29) +/* template */ +var __vue_template__ = __webpack_require__(30) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = null +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "src/Resources/assets/js/components/modal.vue" + +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-463f5591", Component.options) + } else { + hotAPI.reload("data-v-463f5591", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} + +module.exports = Component.exports + + +/***/ }), +/* 29 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + props: ['id', 'isOpen'], + + created: function created() { + this.closeModal(); + }, + + + computed: { + isModalOpen: function isModalOpen() { + this.addClassToBody(); + + return this.isOpen; + } + }, + + methods: { + closeModal: function closeModal() { + this.$root.$set(this.$root.modalIds, this.id, false); + }, + addClassToBody: function addClassToBody() { + var body = document.querySelector("body"); + if (this.isOpen) { + body.classList.add("modal-open"); + } else { + body.classList.remove("modal-open"); + } + } + } +}); + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.isModalOpen + ? _c("div", { staticClass: "modal-container" }, [ + _c( + "div", + { staticClass: "modal-header" }, + [ + _vm._t("header", [ + _vm._v("\n Default header\n ") + ]), + _vm._v(" "), + _c("i", { + staticClass: "icon remove-icon", + on: { click: _vm.closeModal } + }) + ], + 2 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "modal-body" }, + [_vm._t("body", [_vm._v("\n Default body\n ")])], + 2 + ) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true +module.exports = { render: render, staticRenderFns: staticRenderFns } +if (false) { + module.hot.accept() + if (module.hot.data) { + require("vue-hot-reload-api") .rerender("data-v-463f5591", module.exports) + } +} + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +var disposed = false +function injectStyle (ssrContext) { + if (disposed) return + __webpack_require__(32) +} +var normalizeComponent = __webpack_require__(0) +/* script */ +var __vue_script__ = __webpack_require__(37) +/* template */ +var __vue_template__ = __webpack_require__(38) +/* template functional */ +var __vue_template_functional__ = false +/* styles */ +var __vue_styles__ = injectStyle +/* scopeId */ +var __vue_scopeId__ = null +/* moduleIdentifier (server only) */ +var __vue_module_identifier__ = null +var Component = normalizeComponent( + __vue_script__, + __vue_template__, + __vue_template_functional__, + __vue_styles__, + __vue_scopeId__, + __vue_module_identifier__ +) +Component.options.__file = "src/Resources/assets/js/components/image/image-upload.vue" + +/* hot reload */ +if (false) {(function () { + var hotAPI = require("vue-hot-reload-api") + hotAPI.install(require("vue"), false) + if (!hotAPI.compatible) return + module.hot.accept() + if (!module.hot.data) { + hotAPI.createRecord("data-v-5431fa9a", Component.options) + } else { + hotAPI.reload("data-v-5431fa9a", Component.options) + } + module.hot.dispose(function (data) { + disposed = true + }) +})()} + +module.exports = Component.exports + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +// style-loader: Adds some css to the DOM by adding a